说点啥好呢,看了看之前写的,最近的一篇也是2017年4月份的了,而且只是记录了一个知识点,没啥东西。2016年公司领导要求研发一个自有的APP,8月份开始研究iOS开发,开始记录知识点和各种坑,写的还算是用心,但是因为无意中接触到了facebook的react native,感觉非常不错。主要是小公司没那么多开发人员双端开发确实累,所以在领导的支持下开始改前端架构,主攻RN。到目前为止,项目接近尾声,APP也已经成型,就记录一下吧。主要也是为了总结一下,好让自己有点成就感。
-----------------------------------------------分割线-----------------------------------
RN我就不多介绍了,网上一搜一大片,属于比较火的一种前端开发框架,支持双端,奉行“一套代码,多端运行”,实际上本质还是原生,只不过是支持JS编码实现功能。客观的来讲,非常棒,尤其适合中小微创企业,2个前端人员即可搞出一个东西。但是,由于比较新,所以坑特别多,尤其是facebook基本一周到半月左右就出一个小版本,更新速度特别快,所以项目成型后升级起来特别复杂,主要是项目使用的第三方库的版本冲突和新版本的组件方法支持冲突等等。所以新项目一定要用最新版本的react native,这样后期开发结束的时候版本不至于差的太多。
由于项目还未结束,涉及到一些商业保密协议,所以我不会直接使用在用的项目代码。也不要找我要项目源码,除非我们考虑后期开源。
我们的项目定位是一款涉及多层用户的APP,支持iOS、android、h5、微信公众号。后台提供Web管理界面。在难度上来讲,算是比较困难的了,当然这是根据我们这种小公司的程序员来讲的,类似鹅厂等大公司肯定不会感觉那么难。我们的人员配置:项目总监兼总设计师兼总架构师兼服务端开发1人、专职后台开发1人、RN开发(兼Android开发)1人、RN开发(兼iOS开发)1人、h5兼微信公众号开发1人。从开始学习框架和开发语言到现在为止(完成app雏形、未上线),总共用了一年左右的时间。两个字累、难。
废话不说了,开始正文(本文不涉及具体功能和代码,仅用于个人记录项目情况)。
项目架构:后台采用JAVA,DB用的Mysql和Redis,前端React Native。传输一律采用RESTful接口形式。部分h5界面用的PHP服务。
工程结构:
index.android.js android入口
index.ios.js ios入口
ios ios原生代码
android android原生代码
app js文件
Root.js js根代码文件
Index.js 索引文件
router.js 路由文件
utils 工具
store redux store
screens 路由页面配置
Tab.js 导航
......
schema 实体
reducers redux reducer
pages 页面
images 图片 (后期与assets合并)
dao 实体处理类
constants 常量
components 组件
assets 资源文件
actions redux action
功能模块不做介绍。
具体代码不做介绍。
后期有时间我会整理一下我们在RN开发过程中使用的标准库和遇到的坑。顺便对一些比较常用的功能点做一下思路讲解。非常感谢!