Golang从1.5版本开始就可以编写android端、ios端的移动应用了,但貌似尝试的人很少
最近由于我闲得蛋疼,所以用Golang的写了个看小说的APP,下面说下开发中遇到的事。
原本我打算纯粹使用Golang做完整个APP的,结果发现如今的Golang做移动端,真心不适合做界面,因为没有一个好的UI库,一切都要靠自己手动去绘制,而光是画界面都能烦死人。
因此无奈之下只好选择React Native做界面,而Golang则是负责功能上的实现,包括网络请求,页面解析,数据采集,章节解析等功能
这么做有一个好处,那就是React Native做好界面后,android+ios双端共用,而Golang写好的功能也能够双端共用。
Golang+React Native做APP的好处
- 学好Golang就是真正的跨平台(PC端、服务器、移动端、WEB端)
- 不用学java kotlin swift oc等语言
- 一套代码双端运行(Golang和React Native都只需要编写一套代码就足够)
- 可以实现对应平台只有原生才能实现的功能(React Native真的只适合做界面,做其他的真是只能靠原生或者用类似Golang等语言来实现)
- 需要什么功能,编写一次就够了、改bug也极其方便
不过话说回来,如果你要做的APP仅仅是用来展示数据,那么React Native就能满足你的需求了,不过一旦你需要完成一些比较复杂的事情,那么就必须需要用到原生才行。
什么时候才需要用到Golang?
在做这个小说阅读APP的时候,我列了一个需要实现的功能列表
- 在线搜索小说
- 小说搜索失败时自动切换数据源重试
- 解析小说章节列表并提取小说信息
- 解析小说章节内容并去除文字广告
- 小说章节内容根据屏幕尺寸、字体大小、字体间距、字体行高等条件自动分页
- 小说章节列表内容自动缓存下载
- 小说指定章节更换数据来源
- 小说章节内容下载失败后自动更换数据源重试
其他更多细节上的功能就没列出来了,以上几点是一个小说阅读APP必须要实现的
在以上几点之中,如果纯粹使用React Native的话,那么React Native就只能实现部分功能并负责数据展示了,像解析章节列表、匹配章节内容,搜索小说等功能就只能由服务端提供接口返回数据了
在这样的情况下,为了不依赖服务器提供的接口,就必须使用Golang了,Golang实现上面的功能实在是不要太简单,做好之后只需要通过gomobile命令直接打包成对应的包提供给React Native调用就行。
通过Golang+React Native的配合,就可以实现一个不需要依赖服务端提供数据的小说阅读APP,因为完全可以自给自足。
PS:如果你已经学会了Golang,那么不妨试一试吧,现在官方对gomobile每天都在修修补补,真心值得一试