示例工程:sample project
一、前言
现在跨端的开发采取了前端的 DSL,也变成前端人员必备的开发技能之一了。
当前:
- react-native,weex,快应用(严格讲是跨手机)这种使用前端语言,视图部分交由原生渲染,所以 css 都是酌情支持。交互部分交由另外启动的 js 引擎来执行。
- 各类小程序这种使用前端语言,视图部分由 webview 渲染,所以大部分 css 都是支持。交互部分交由另外启动的 js 引擎来执行。
- fluter,自己整的渲染器和逻辑解析器,开发语言也是自己一套。硬要说也是和小程序一类吧,只不过小程序用的终端落地方案是现成的,fluter 都自己弄新的。
有了跨端解决方案,就有了跨端写法统一解决方案。比如:uni-app taro mpvue,chamelon,就是采用 vue 或者 react 的技术栈,然后可以编译成 rn,小程序等的编译产物。主打一个殊归同途。
前两种其实都是大同小异,都是前端 DSL,只不过是可用的标签和样式不一,一通百通,看看文档就可以了。fluter 都是完全不同的语言,有接触到再说。
二、启动
react-native ios 开发的第一个难点就是搭环境。参考官网《environment-setup》。
里面提到可以用沙盒模式开发,也就是先跳掉一系列的系统环境安装。但是我想这只适合体验一下,如果真的要开发 react-native,还是得配好一系列环境。何况中文官网还说了:
译注:沙盒环境大量依赖于国外网络环境,也不能直接安装第三方原生组件。不建议国内用户使用
所以还是老老实实从 Xcode 安装起吧。其中可能需要科学上网才能安装完,比如这个 CocoaPods,这个 ios 依赖包管理工具,就要下载很久。
ruby 版本
mac 默认的 ruby 版本是 2.6.8,当前 react-native 中用到的 ruby 版本是 2.7.5,需要更新。可以参考网上大佬的文章《React-native初始化项目(Installing Ruby Gems)》。
ios 依赖
在准备好工具后,就会开始初始化项目。会很久,安装完前端的依赖后,会进行 ios 的依赖的安装。这一步可能会有各种失败,比如安装 hermes 引擎就很容易失败。
这时候不用重新创建项目,确保外层的前端 node_modules 安装完后,进入 ios
文件夹执行 pod install
,或者在根目录执行 npx pod-install
,重试一直到完成。