# Demo体验 Hippy 采用 `monorepo` 进行代码管理,多仓库 SDK 统一版本,前端可以直接引入对应的 NPM 包,终端可通过发布分支源码接入或通过对应的包管理仓库引入。 Demo的Native工程代码位于framework/examples目录,前端工程代码位于driver/js/examples目录,如果你对阅读代码更感兴趣,可直接进入github查看 - [Demo Native 工程代码](https://github.com/Tencent/Hippy/tree/main/framework/examples) - [Demo 前端工程代码](https://github.com/Tencent/Hippy/tree/main/driver/js/examples) 如果已经已经了解Hippy,可跳过Demo体验,参考[Native工程集成章节](development/native-integration?)把Hippy集成到工程。 --- # 快速体验 ## 环境准备 ### macOS开发环境 可以在macOS上开发iOS,Android应用,请求根据需要进行环境配置。 首先,通过Homebrew包管理工具安装git, git-lfs, node(v16) and npm(v7) ```shell brew install git git-lfs node@16 xcodegen cmake ``` #### 编译iOS Demo环境准备 1. Xcode 通过Apple App Store安装[Xcode](https://apps.apple.com/cn/app/xcode/id497799835?l=en-GB&mt=12) 2. 通过gem命令安装Cocoapods `sudo gem install cocoapods` #### 编译Android Demo环境准备 1. Android Studio 通过android开发者平台下载安装[Android Studio](https://developer.android.com/studio) 2. Android NDK 通过android开发者平台下载安装[NDK](https://developer.android.com/ndk?hl=en) ### Windows开发环境 可以Windows上开发Android应用,请安装以下依赖。 1. Android Studio 通过android开发者平台下载安装[Android Studio](https://developer.android.com/studio) 2. Android NDK 通过android开发者平台下载安装[NDK](https://developer.android.com/ndk?hl=en) 3. Git for Windows 通过(https://gitforwindows.org)下载安装Git for Windows 4. Node和NPM 通过指引安装[nodejs和npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),建议使用Node v16,NPM v7版本 ## 代码拉取 ```shell git clone https://github.com/Tencent/Hippy.git ``` ## 编译运行Demo 以下基于macOS平台,分别说明如何编译Android和iOS Demo。 ### 编译运行iOS Demo ```shell # 进入Hippy源码目录 cd ./framework/examples/ios-demo # 执行xcodegen生成工程 xcodegen # 打开workspace,编译运行即可 open HippyDemo.xcworkspace ``` ### 编译运行Android Demo 1. 使用 Android Studio 打开根目录 `Android Project` 项目。 2. 使用 USB 线连接 Android 设备,并确保设备 USB 调试模式已经开启(电脑 Terminal 执行 `adb devices` 检查手机连接状态)。 3. Android Studio 执行项目构建,并安装 APK运行。 ### 效果预览 Demo运行起来后,可见Demo首页类似 Demo效果 点击"New Page",进入页面管理 Demo效果 点击"+"号创建新的Hippy页面 Demo效果 点击Create按钮后,显示出了Hippy渲染的页面 Demo效果 ## 动手尝试 如果你不满足于简单把Demo跑起来,还可以动手尝试修改前端代码,可以按照以下指引进行。 ### 了解Demo项目代码 Demo项目Native代码位于framework/examples/,前端代码位于driver/js/examples目录 ```shell steven@STEVEN-MC Hippy % ls driver/js/examples total 0 drwxr-xr-x 8 steven staff 256 Oct 30 14:53 hippy-react-demo drwxr-xr-x 9 steven staff 288 Oct 30 14:53 hippy-vue-demo drwxr-xr-x 11 steven staff 352 Oct 30 14:53 hippy-vue-next-demo ``` 其中前端hippy-react-demo、hippy-vue-demo、hippy-vue-next-demo这3者为前端项目Demo,分别演示基于hippy-react、hippy-vue、hippy-vue-next开发项目。 ### 修改前端工程 以hippy-react-demo为例,打开hippy-react-demo/src/app.jsx,将内容替换为以下代码片段 ```jsx import React, { Component } from 'react'; import { View, Text } from '@hippy/react'; export default class App extends Component { render() { return ( Hello World! ); } } ``` ### 编译修改后的前端工程 先在Hippy**根目录**执行命令 ```shell npm install ``` 以hippy-react-demo为例说明编译流程 ```shell cd driver/js/ npm run init # 该命令由 `npm install && npx lerna bootstrap && npm run build` 组成,你也可以分别执行这几个命令。 # # npm install: 安装项目所需的脚本依赖。 # # `npx lerna bootstrap`: 安装每一个 JS 包的依赖。(Hippy 使用 [Lerna](https://lerna.js.org/) 管理多个 js 包) # # `npm run build`: 构建每一个 JS SDK 包。 # 编译hippy-react-demo npm run buildexample hippy-react-demo # 如果上一条命令有异常,可以执行以下命令 cd examples/hippy-react-demo npm install --legacy-peer-deps cd ../.. npm run buildexample hippy-react-demo ``` 执行完后,构建产物将会被打包放到examples/hippy-react-demo/dist目录中,目录内容类似 ```shell driver/js/examples/hippy-react-demo/dist ├── android │ ├── assets │ │ ├── defaultSource.jpg │ │ └── hippyLogoWhite.png │ ├── asyncComponentFromHttp.android.js │ ├── asyncComponentFromLocal.android.js │ ├── index.android.js │ ├── vendor-manifest.json │ └── vendor.android.js └── ios ├── assets │ ├── defaultSource.jpg │ └── hippyLogoWhite.png ├── asyncComponentFromHttp.ios.js ├── asyncComponentFromLocal.ios.js ├── index.ios.js ├── vendor-manifest.json └── vendor.ios.js 5 directories, 14 files ``` ### 运行前端编译产物 正常构建后产物会被拷贝到Android和iOS的res目录,如果发现未拷贝,可以手动执行。 把examples/hippy-react-demo/dist/ios目录内容整体拷贝到ios demo的res/react目录,当用Android来跑时,注意拷贝到Android对应的目录。 ```shell cp -R driver/js/examples/hippy-react-demo/dist/ios/* framework/examples/ios-demo/res/react cp -R driver/js/examples/hippy-react-demo/dist/android/* framework/examples/android-demo/res/react/ ``` 接下来,按照[编译运行Demo](#编译运行demo)一节运行Demo。 效果如图所示 Demo效果 恭喜你完成了Hippy的初步体验,下一步参考[Native工程集成章节](development/native-integration)将Hippy接入到你现有的工程吧。