About this project

Hippy is a cross-platform development framework from Tencent that aims to let developers write once and run on multiple platforms, including iOS, Android and Web. It is positioned as friendly to web developers, particularly those already familiar with React or Vue, and provides official support for those two web frameworks. Key characteristics described in the README: - Same APIs across different platforms. - Communication between the JavaScript layer and native code via JS engine binding. - A built-in recyclable component intended for better performance. - A path to migrate smoothly to the web browser. - Full support for the Flex layout engine, via Tencent's Taitank project. The README states Hippy is used in Tencent products such as Mobile QQ, Mobile QQ Browser, Tencent Video, QQ Music and Tencent News. Getting started covers environment preparation (git, npm, git-lfs for so/gz/otf files), then building demos for iOS and Android. On macOS, Xcode with the iOS SDK, Android Studio with NDK, and Node.js are required; Homebrew is recommended for dependencies. On Windows, Android Studio with NDK and Node.js are supported, but iOS development is not possible. For iOS, the workflow is: clone the repository and run npm install at the root; cd into driver/js; run npm run init (which combines npm install, npx lerna bootstrap and npm run build); choose a demo with npm run buildexample (hippy-react-demo, hippy-vue-demo or hippy-vue-next-demo); install CocoaPods and cmake, run pod install in framework/examples/ios-demo; then open HippyDemo.xcworkspace in Xcode and build. For Android, the README recommends a real phone rather than an emulator, noting the X5 JS engine does not support x86 simulators and ARM simulators perform poorly. After the same init and buildexample steps, the root project is opened in Android Studio, a device is connected with USB debugging enabled, and the APK is run and installed. Debugging the JS demo involves running npm run init:example and npm run debugexample with a chosen demo and the dev flag. In debug mode, packages such as @hippy/react, @hippy/vue and @hippy/vue-next are linked to driver/js/packages dist directories rather than node_modules, so rebuilding is needed after source changes. Production builds use npm run hippy:vendor and npm run hippy:build to produce vendor and index bundles for Android and iOS, with DllPlugin splitting common and app chunks. The repository structure includes devtools, a DOM layer, driver layers (with the JS driver containing examples and packages such as hippy-react, hippy-react-web, hippy-vue, hippy-vue-css-loader, hippy-vue-loader, hippy-vue-native-components and hippy-vue-router), framework code for Android and iOS plus examples, a layout engine, modules for Android and footstone, renderers for Flutter and native (Android/iOS), and static assets. Documentation is available at framework.tds.qq.com, with examples in the repository and release notes in GitHub releases. The project is Apache-2.0 licensed and welcomes contributions under a contributing guide, with an ecosystem organization at hippy-contrib and the Taitank layout engine as a related project.