Base Station

Flutter 实践

gank.io flutter 版客户端开发有感

字数统计: 1.2k阅读时长: 4 min
2020/04/27
loading

前言

4月公司客户端业务没有什么大的动向,我自己自然也就落得清闲了。打算按照年前指定的计划,这段时间用来实战和深入了解一些 Flutter 相关的知识。个人感觉,学到的知识如果不能转化成成果,那么价值和留存率都是级低的。敲定目标后,打算做什么就很重要了。毕竟 UI 什么的可以自己想,但是数据可不是无源之水,去买感觉又不大必要;苦恼之际,正巧浏览的时候看到 gank 翻修改版了,也就打算做一个 Flutter 版本客户端,虽然没什么特色,但也聊胜于无,而且 API 现在是越来越稀缺了,只能要求自己做的劲量精细点,不要制造垃圾。

下面就是半个月的成果——gank-flutter

演示图

个人感触

目前就只有这些功能了。之所以功能并不多,有两点原因:一是目前新版客户端提供的 API 并不多;二是之前预想的是与 github 的部分 API 结合起来扩充个人中心的内容,但后来都胎死腹中了。因为目前 gank 的登录接口只提供了原始的 github OAuth 接口来直接登录授权,尝试了下合并无果就暂时搁置了这一部分的计划,等后续有接口了一起迭代,如果强行弄一起感觉就像缝合怪一样,并不想这样做。

闲聊完,来说说这次开发完的感觉,不得不说 flutter 的跨平台在 UI 方面对开发者和用户的体验感觉是目前最好的。常规的应用完全可以迅速的开发并进行多端布置,现阶段提供的 API和开源社区的库扩展可以覆盖大部分常规的功能场景。平台特点的功能也可以通过 plugin 的方式使用。可能针对硬件方面的功能会有一些缺陷,这个没有了解过。缺点也有,项目中常用的 webView 目前扩展性和功能都很单一,cookie 管理还是测试性功能,对国内 hybrid 生态比较重的环境来说并不是个好消息,不过因为 webView 的扩展库是官方管理的,可以相信其迭代的能力。总的来说,我觉得确实对得起这个正式的版号(1.x.x )。现阶段的 flutter 虽然各方面不一定是最好的,但是它未来的路线都画的很明确了,各大头部公司也在几级背书,身为一个客户端开发感觉还是很有学习的必要的。

学习路线

  1. 先学习 Dart语言基础。现代编程语言的语法特性都类似,Dart 较为特殊的就是它的异步 async await 和类似多继承的 mixinx 机制。这两点要着重理解。还有就是较为常规的函数、集合、stream 等。
  2. flutter.cn 跟着官方的中文文档从头到尾实践一遍,会对 flutter 开发有较为完整的认知。虽然较为碎片,但是后边实践会让迅速的将知识穿插起来。
  3. 看完官方文档基本还停留在写 demo 的阶段。这里我找了几个项目,编译和阅读了它们。flutter-goflutterUnit 是开源的 widget 合集,可以让你通过可视化以及代码修改编写来快速的熟悉官方的常用 widget。gsy_github_app_flutter 则可以让你对常用的开源库,自定义 widget 以及商业化的项目结构有一定的了解,读起来对我这种小白来说受益匪浅。
  4. 之后就打算将学习到的知识转化为实践,于是就花了半个月的时间开发了这款 gank-flutter

一圈下来算是快速了解了 flutter 生态、开发环境以及商业项目的实践应用。当然也仅仅做到 T 型的 — ,对具体实现、运作机制、性能优化、复杂的功能应用知之甚少。如果想成为一个合格的 Flutter 开发者,我想这些都是必不可少的。之后我也打算对 flutter 的具体实现进行进一步的了解.:dog:

挖坑

后续计划:

  • 了解 Flutter framework 的运行原理
  • 了解 widget 具体的代码实现和工作原理
  • 继续迭代 gank-flutter 项目
  • 对 gank-flutter 做一篇技术性的总结

2020 年的第一篇博客总算在五月之前发出来了,虽然灌水的既视感满满,但也对自己这段时间所做的事情有了一定的交代。希望之后的自己可以再接再厉,完成年初制定的一揽子计划。疫情的影响在国内也快逐渐淡去,希望之后国内的大环境也能尽快好起来:pizza:

CATALOG
  1. 1. 前言
  2. 2. 个人感触
  3. 3. 学习路线
  4. 4. 挖坑