写在前面
前段时间Google I/O 2019大会上flutter再次狠狠的刷了一波存在感,随便看看无论是微博,推上仍是medium或者一些其它的技术社区上也是铺天盖地的讨论,优缺点搬运过来差很少是:git
优势:
- 贯彻始终的widget的设计思想和开发方式对各类背景仍是很亲切的
- 跨全平台的愿景很吸引人
- 写界面和相关的逻辑快速简单
- 文档还有编辑器,IDE的支持很完善和贴心
- 社区很活跃教程也不少(包括官方的youtube channel)
- 保持状态的hot reload,效率高到飞起
缺点:
- Desktop, Web平台的支持还处在preview或试验阶段
- 包的数量不多,质量也通常
- 各平台要想实现复杂效果的支持度不行,须要花费大量时间
- 目前采用flutter开发的上架App其实仍是不多
总结来讲就是目前还在初级阶段,简单业务为主的项目可能比较合适,追求体验的App可能会碰到不少坑,实现复杂体验所发的时间基本会抵消掉跨平台复用所带来的成本优点,可是须要合适的场景和项目才有机会体会到这些所有的优缺点。github
示例
不过仍是本着尝鲜还有无聊打发时间的想法,花了点时间学习和把之前作的一个iOS捷径写了一个Cat Catalog的简单App,支持:异步
- view cats of different breeds by tags
- search by simple keyword
- like your favorite cat(s)
- read further information on Wikipedia page
项目功能和逻辑都很简单,用到的API/widgets不多:编辑器
- JSON -serializing
- Animation
- 基础的布局控件
- 使用外部包和字体

代码放在Github: https://github.com/gnehcc/cat... 上了,有兴趣的同窗也能够看看,有用的话欢迎star。ide
使用感觉
最后就用到的功能谈几点简单感觉:布局
- Dart学习起来很是简单,只要有任何其余语言的使用经验,花点时间看看language tour基本就能够开始了
- 动画抽象程度高,用起来很简单,异步语法简洁,
- 用的VS Code + Dart插件 + Flutter插件,代码写起来流畅到飞起
- HOT RELOAD 开发起来特别顺手,大部分时间只须要保存代码以后Simulator就直接更新了,实在不行hot restart也挺快的
- Widget的嵌套用法让代码有点杂乱,若是Code Extraction作的勤快点的话勉强好点
- 第三方库的数量还有功能丰富度目前确实还比较原始
- 一个Code Base 基本无缝的跑在iOS和Andoid平台,但Flutter的控件其实有两套(Material 和 Cupertino),抛开平台特定功能,也须要至少须要特别处理。
我的以为若是有时间彻底能够一遍学一边写写玩玩(主要是也花不了多少时间,写着写着发现动漫也追完了...),若是满意的话上传到App商店也是件不错的事情。学习
发布在我的博客上的文章可能未及时同步过来,欢迎直接访问 https://gnehc.me字体
连接
捷径我的主页: https://sharecuts.cn/user/eOz...动画
Flutter Dev: https://flutter.dev/docsui
Flutter boring show
A tour of the Dart language: https://dart.dev/guides/langu...