Golang从1.5版本开始就可以编写android端、ios端的移动应用了,但貌似尝试的人很少

最近由于我闲得蛋疼,所以用Golang的写了个看小说的APP,下面说下开发中遇到的事。

原本我打算纯粹使用Golang做完整个APP的,结果发现如今的Golang做移动端,真心不适合做界面,因为没有一个好的UI库,一切都要靠自己手动去绘制,而光是画界面都能烦死人。

因此无奈之下只好选择React Native做界面,而Golang则是负责功能上的实现,包括网络请求,页面解析,数据采集,章节解析等功能

这么做有一个好处,那就是React Native做好界面后,android+ios双端共用,而Golang写好的功能也能够双端共用。

Golang+React Native做APP的好处

  1. 学好Golang就是真正的跨平台(PC端、服务器、移动端、WEB端)
  2. 不用学java kotlin swift oc等语言
  3. 一套代码双端运行(Golang和React Native都只需要编写一套代码就足够)
  4. 可以实现对应平台只有原生才能实现的功能(React Native真的只适合做界面,做其他的真是只能靠原生或者用类似Golang等语言来实现)
  5. 需要什么功能,编写一次就够了、改bug也极其方便

不过话说回来,如果你要做的APP仅仅是用来展示数据,那么React Native就能满足你的需求了,不过一旦你需要完成一些比较复杂的事情,那么就必须需要用到原生才行。

什么时候才需要用到Golang?

在做这个小说阅读APP的时候,我列了一个需要实现的功能列表

  1. 在线搜索小说
  2. 小说搜索失败时自动切换数据源重试
  3. 解析小说章节列表并提取小说信息
  4. 解析小说章节内容并去除文字广告
  5. 小说章节内容根据屏幕尺寸、字体大小、字体间距、字体行高等条件自动分页
  6. 小说章节列表内容自动缓存下载
  7. 小说指定章节更换数据来源
  8. 小说章节内容下载失败后自动更换数据源重试

其他更多细节上的功能就没列出来了,以上几点是一个小说阅读APP必须要实现的

在以上几点之中,如果纯粹使用React Native的话,那么React Native就只能实现部分功能并负责数据展示了,像解析章节列表、匹配章节内容,搜索小说等功能就只能由服务端提供接口返回数据了

在这样的情况下,为了不依赖服务器提供的接口,就必须使用Golang了,Golang实现上面的功能实在是不要太简单,做好之后只需要通过gomobile命令直接打包成对应的包提供给React Native调用就行。

通过Golang+React Native的配合,就可以实现一个不需要依赖服务端提供数据的小说阅读APP,因为完全可以自给自足。

PS:如果你已经学会了Golang,那么不妨试一试吧,现在官方对gomobile每天都在修修补补,真心值得一试