寫在前面
前段時間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...