地址奉上: https://github.com/imWildCat/HappySdufe
React Native for Android 发布之后,自己一直想试试。不过在备考雅思,不想分心。
考完雅思用一周的时间写出来这个(当然之前有做设计和服务端),感觉还不错。写 React Native 还是比较愉快的,如果按照开发体验来排序: 原生 iOS ( Swift ) > React Native > 原生 iOS ( Objective-C ) > 原生 Android >> PhoneGap 。
虽然 React Native 的理念是“ Learn once, run everywhere ”,而非“ Write once, run everywhere ”。但是我这里还是用统一的 UI 实现的,一是因为没时间做两套设计,二是因为很多官方 Component 可以通用。
由于自己不是计算机专业学生,所以代码质量与见解可能比较不专业,见笑啦。
代码可以直接运行,我的服务端在 DO 。当然你也可以自己运行我开源的服务端,代码在 https://github.com/imWildCat/kalecgos-docker ,基于 docker (也是为了尝试新技术)。客户端代码中,需要把 https://github.com/imWildCat/HappySdufe/blob/master/src/utils/api_client.js#L41 中的 false 改为 __DEV__ 。已知问题: Android 平台下,自己实现的 MapView 存在内存泄漏。
使用感受
自己尝试过比较多的跨平台框架,包括 PhoneGap ( Ionic )、 Xamarin 、 Titiaium 、 RubyMotion 等等,目前感觉这之中最有前景的还是 React Native ,原因大概如下:
1. 开源,社区参与度高,方便 hack
2. 背后有大厂推动
3. 与 React 相呼应,有希望统一前端 和 移动端开发体验( flux 现在就可以通用)
4. 未来 native 库丰富后,可能只用 JavaScript 就写出来有趣的 App ,其他几个方案要么是第三方库比较少,或者是性能不足
5. React Native for Android 是个半成品,非常不完善
6. 要做出来像样的 App ,还是需要写不少 native 代码的。
结论
React Native 整体看起来非常赞,不过远不够成熟,在生产环境请慎用。如果你有闲暇时间,还是值得尝试一下的。
关于 SQLAlchemy 的一个问题
想顺便在这个帖子里问下,我的服务端,大约运行 12 小时之后就会提示:“ MySQL Server has gone away ”。我之前有在 https://github.com/imWildCat/kalecgos-docker/blob/master/kalecgos/kalecgos/db/database.py#L14 设置连接池,但是似乎没有用。