环境安装
官网的搭建开发环境
这个是重要的参考,不过实际使用中会有细微的差异,根据情况进行调整
安装Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
这是一个辅助安装工具,一般都需要最先安装。
安装Node.js
- 通过Homebrew安装很方便,会自动安装最新稳定版本。
brew install node
- 如果需要安装指定版本,需要先安装
nvm
,这是一个node版本管理工具
MAC:通过NVM安装指定版本的node
这篇文章详细介绍了相关的命令,照着做就可以了。
实际试了一下,用nvm之后,用其他的方式安装指定版本的node都没有成功,比如n模块,tnpm等,原因不知道。
安装包管理工具
包管理工具是需要一个的,至于选择哪一种,根据情况定吧,没有强制要求。
-
Node.js
自带npm
包管理工具;由于网络原因,需要设置一下镜像,加速访问。
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
-
Facebook
提供的npm
替代工具Yarn
,安装完成后也要设置镜像,加速访问。
安装:
npm install -g yarn react-native-cli
设置镜像:
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
- 使用自己的包管理工具,比如阿里系的就有自己的一套工具。下面的文章和命令都需要在阿里内网访问(安装阿里郎)
安装tnpm(taobao npm)
npm install -g tnpm --registry=http://registry.npm.alibaba-inc.com
安装HPM
Hybrid-app Package Manager
tnpm install -g hpm
使用tnpm安装指定版本node
tnpm install --install-node=4.2.1
这个有点绕了。首先通过brew
安装node
,这样就有了npm
;然后通过npm
安装tnpm
;最后又通过tnpm
安装指定版本的node
。 ---- 感觉循环了吧
安装Watchman
brew install watchman
这是由Facebook
提供的监视文件系统变更的工具,一般都是要安装的。修改一下源文件,效果马上显示出来,就是这个工具的作用。
集成开发环境IDE
-
WebStorm
这个据说是最好用的前端开发工具,收费的,需要激活才能用。下面这篇文章介绍了激活的方法。
webstorm 2017 激活破解
WebStorm 激活 -
Visual Studio Code
这是微软提供的集成开发环境,用node.js
做服务,适合JavaScript
开发,能够断点调试。用weex
的时候用过,可以增加vue,eslint
等插件,比较好用。
关键是免费的,并且背后是微软,这个还是挺有优势的。 -
Sublime Text
这个更多地被认为是mac
平台的文本编辑工具,选择JavaScript
语法高亮,用来做JavaScript
编辑器是不错的。曾经用过,不过调试等功能就比较弱,后来换成了Visual Studio Code
。以前是免费的,现在的版本好像也要收费 -
Nuclide是由
Facebook
提供的基于atom
的集成开发环境。没有试过,不清楚效果。
Native开发工具
-
iOS
需要XCode
-
Android
需要Android Studio
JavaScript代码检查工具
-
ESLint
这个用的比较多ESLint - 简介 -
Flow是一个静态的JS类型检查工具。是Facebook自家的代码规范。
安装react native
npm install -g react-native-cli
如果说找不到react-native命令,可以通过这个解决
-bash: react-native: command not found
创建demo工程
react-native init AwesomeProject
cd AwesomeProject
react-native run-ios
技术方向选择
安全,速度(体验);动态特性,跨平台;由于这些特性不可兼得,所以导致移动开发形成了不同的技术方向
纯Native开发
-
这是苹果推荐的方式,语言由
Object-C
转向Swift
。Android
的话,语言由Java
向kotlin
转换。这是正规方式,安全性高,官方推荐,只要有可能,就应该坚持。 -
适合注重用户体验的应用。安全,快速,是静态编译型语言的天然优势。其他方式基本上都是引入
JavaScript
,获得动态性优势,性能损失在所难免。 -
可以紧跟苹果的步伐,获得一些新特性体验。比如最新的
ARKit
,还有Meta,SceneKit,SpriteKit
等等绚丽的特技。这些Android
一般也有相应的解决方案,不过体验上苹果的要好很多。实际使用中,大多数也是采用跨平台方案。比如游戏(C++写的Cocos2D)
Hybrid-App混合开发
-
基于混合开发框架
Cordova
-
基于 WebView,性能(体验)比较差
-
2012年左右很流行,现在热度较低,基本不考虑。不过用的公司还是有的,比如平安系的支付插件,由于历史原因,日积月累,很难改变。
weex
-
阿里出的,2016年才出来,现在用的也蛮多的
-
基于
React Native
的二次开发 -
主要是一个框架,主要功能还是需要自定义组件
-
比较小,比较灵活,适合从
Native
转JavaScript
方向;提供的组件不是很好用,以自定义组件为主。 -
采用
Vue.js
框架,官方有合作。
React Native
-
Facebook
出品 -
组件比较全面,比如本人当前的应用,纯
JavaScript
,没有一个自定义组件 -
适合从前端开发转移动开发的人员
-
从当前的面试要求来看,上海的基本上以
React Native
为主,weex
很少。杭州的话,两者差不多。 -
阿里系的蚂蚁金服选择了
React Native
,并没有采用阿里自己出品的weex
Ant Design
这个是蚂蚁的React Native
开发规范。对于通用组件,提供了设计和JavaScript
代码,这个做的很好。将UI和业务逻辑分离,设计和开发紧密配合,遵循相同的规范,这个很赞。
参考文章
写给移动开发者的 React Native 指南
可以看出,这篇文章的作者是Native
开发为主,应该是Android
,由于公司业务需要自然而然转向React Native
,并且经过独立思考,算是干货,推荐阅读。
React Native 从入门到原理
这个涉及到了原理,有点深度了。
网友评论