一直以来都希望自己具备多端开发能力,最终选择了flutter。下面简单说说作为一个ios从业者选择flutter的心路历程。
Hybrid混合开发
这个是最早接触,也是了解程度最深的一个技术,主要用框架有Cordova(前身PhoneGap),JSWebBridge这些。对于这些框架的原理也有深刻的认识,但是这样的跨平台开发,仍然受限于webView,而且作为只具备单端开发能力的人员来讲,仍然需要很大程度关注其他端的技术,优势是可以将之前web的内容平滑的迁移。对于之前web应用来说很是友好。性能受限于webView的性能。
React Native 与 Weex
团队中的项目有一些使用了React Native,自己也写过一些RN的交互插件,但是自己并不是太想对RN有深入的了解,由于Vue学习已经有了一定的深度,作为非前端人员,不太想了解太多js框架,一个就可以了。记得当年Weex横空出世的时候,自己充满了期待,后续结果相比大家也知道,只是Vue已经学了,放弃这个多少有点不舍。性能的话由于需要把js转换为原生代码,仍然比原生有一定差距。
Flutter
这个个人认为才是真正意义上的跨平台开发,Dart语言自己看了下和swift很多地方很像,另外flutter的响应式编程,这一块自己在从事原生开发时也在主推。flutter的布局方式等之前也有了解过。基本上一个星期把书看完,又花了一个星期就写出来了一个工具类小应用。最大的感触就是很大程度上降低了另一端开发的门槛。谷歌对开发者的友好程度,是苹果比不了的。也可能是要抢开发者(😀,感觉谷歌的野心很大)。另外flutter学习的过程中,UI的布局,绘制,以及布局算法,绘制算法。大家感兴趣的也可以看看。性能方面flutter非运行时编译的话,由于是自己研发的引擎,性能已经非常的接近原生了。
Flutter学习资料
《Flutter实战·第二版》,这本电子书强烈建议大家看下,技能和原理讲的都很详细,另外看完记得给作者打个赏(😀)
《从零开始学Flutter开发》这本书也挺不错的,里面关于单元测试,flutter和原生通信这一块,以及flutter发包写的挺不错的,两本书完善起来基本上就能具备独立的flutter开发能力了。
Flutter Widget仓库 这里面有各种各样的widget。学习的过程中也发现了一个现象,flutter相关书籍的作者基本上都是之前从事安卓开发,书中以及相关的博客里对于iOS这一块描述较少。
《Dart语言官方文档》
我这边创建了一个QQ交流群,欢迎有志于进行flutter学习的小伙伴进群交流学习。