前言
google出品,必属精品?flutter框架Beta1版本才出来不到两年,但是这短短的时间已经不能抵挡它的发展速度了,github上flutter的star已经超过了发展几年的react-native。当然了生态肯定还是比不过RN的。不过flutter打包的release版本是真香啊,而且整个包也不大(当然肯定比原生的大,怎么也得尊重一下原生是吧),不管是热启动还是冷启动都跟原生没什么区别了
放两张笔者分别在android和ios模拟器上运行项目的截图,UI的一致性大大减少了分别适配android和ios的工作量,且性能相当优越。
准备好入坑了吗?先奉上flutter开发的一些必备资料
1、https://javiercbk.github.io/json_to_dart //json转dart类的实体
2、https://book.flutterchina.club //flutter中文文档
3、https://pub.dev //常用的库,还是挺丰富的。基本上都有
4、https://fluttericon.com //flutter的Icon库中的图标
5、......
6、安装环境,开干
学习一门新语言的怎么能不敲一遍hello world,是吧!
//app的入口 一般是叫main.dart的文件中
void main() {
runApp(MyApp());
}
这里备注一下,main.dart文件目录就让它默认的,不用移动到其它目录去,因为打包release的时候可能会找不到该文件
下面来说一下笔者在flutter项目开发中遇到的坑。
- 这里还是要吐槽一下flutter的json解析的,真的很不友好,虽然提供了json转dart类的实体的工具,但是还是有些坑的,解析时类型的转换就是一个问题。期待有大佬们出一个Gson之类的库
- 在android上还是挺顺利的,毕竟谷歌的亲儿子,可能遇到较多的问题就是android的gradle与依赖库的gradle版本冲突问题,如果碰到这种错误,换一个库试试,毕竟这么多优秀的库不一定非要用它。
- 在ios上可能会遇到遇到一些乱七八糟的问题,遇到问题不要慌,先坐下来抽支烟,然后在百度下。开个玩笑,笔者遇到的第一个问题就是mac os问题,因为我的是windows环境,因此摆在面前的就是只有android一个版本,那还跨平台个毛啊。解决最好的办法当然就是买一台特别香的16寸mac pro啊。打开app store开了下价格后默默的关上了网页,怎么搞勒?黑苹果整起,又是一通百度,先装VMware,然后下载一个制作好的“xx.cdr”格式的镜像,然后就开始愉快的黑苹果之旅了。安装的时候切记不要放在c盘,不然到时候c盘崩溃了哭着又重装系统,然后放弃。还有就是镜像一定要下载比较新的版本,起码要能下载最新的xcode吧,不然还玩个球。
- 配置好mac上flutter的环境后把主机上的项目拿过来,怎么拿过来啊,又遇到坑了吧!笔者是通过在主机设置共享文件夹,然后在虚拟机中找到该主机的方式把项目拷贝下来的。
- 开开心心打开xcode,然后open拷贝下来的项目,然后运行项目,不出意外又碰到一堆问题。这时候还是先在终端直接执行下flutter run吧,然后感动的一幕出现了,模拟器上显示了我的app首页,可能是从其他的电脑复制过来的,缺少本机的flutter设置。之后就能用xcode愉快的玩耍了。
至此,基于flutter开发的跨平台app就完成了,后于打包的环节网上也有很多解决方案。附一个iOS环境上折腾的问题集锦。
最后在附带笔者学习flutter的第一个项目