最近终于做完了第一期flutter的项目,也是边学边做,说一下我的体会,以及项目中遇到的问题。

首先呢,肯定是认识了解flutter,了解dart语言。总体感觉dart语言很接近java和js,用法呢接近kotlin。所以呢学起来难度不大。可能稍微麻烦点的就是布局了,写布局也是纯demo,写的工程也看不到效果,只能通过频繁的调试去看。其实只要属性了众多控件的用法和属性,构建页面布局也不难,官方文档都有详细的实例可以参考。

原本以为flutter还很新,可能还不够成熟。但是他已经能够满足我们各方面的开发需求,而且丰富的组件库能够帮助到我们各方面的需求。

新项目开发吗,肯定要有开发应用框架的选择。我们的项目选择的是fish-redux,我认为呢这个框架比较适合大型的,页面较为复杂的项目。但是也有很多的缺陷存在,比如:构造太过复杂,代码冗余太多,不易扩展。

我呢本身是做android的,既然是flutter项目,那就是android和ios写一套代码了。所以呢也就开始和ios们亲密合作了。项目开发至今也确实遇到一些兼容性的问题,下面可以罗列一下:

1、dart sdk升级到2.12,也就是新增了空校验(参照kotlin),但是使用这个你不仅项目中要增加空校验,引入的三方库也要适配。ios那边直接升没问题,到了android这边就跑不起来了,会报一些三方库不支持空校验。这个问题可以在后面讲解下具体的解决方法。

2、获取手机存储位置,这个地方就是ios没有写对方法,所以看文档时一定注意有没说明只适配ios或者android,或者web什么的。

3、一定要注意android权限申请的问题,以及android系统碎片化的问题。

4、定位问题,ios可以使用一些定位的三方库,但是android不行(有些手机用不了Google的定位服务),所以还是接一下高德或者百度。

5、通知推送,接的个推,这里要注意下android和ios的推送区别还是挺大的,接受到消息的方法也是区分开得。

最后呢,就说一下在jenkins上构建flutter项目。我这里只配置了打apk包。因为之前jenkins配置过android的打包环境,所以只需要在服务器上再配置一下flutter的开发环境,还有代理和环境变量就行了。打包的指令呢就是flutter pub get            flutter build apk --release就行了!