若是你還在猶豫爲何要學Flutter,下面2個圖的應該足夠吸引你加入了吧,一套代碼多平臺使用
Flutter 是 Google 用以幫助開發者在 iOS 和 Android 兩個平臺開發高質量原生應用的全新移動 UI 框架。
Flutter又是谷歌欽定的下一代移動操做系統Fuchsia的UI框架。 做爲一名Android Developer,看到是Google出的,且還能開發iOS,仍是有必要學習下的!前端
最近經過學習Flutter,認識不少人,特別是後端的各類大佬也在瘋狂學習,做爲移動端的咱們亞歷山大!!!git
本文主要講了我本身的一個學習過程以及使用感覺,但願對正在學習Flutter的朋友有必定幫助,對想要入坑Flutter的朋友進行一些相關介紹github
主要學習資料
- Flutter官網
- Flutter中文
- 在線Dart學習
- Tensor Programming
- DartConf 2018系列
- 閒魚技術
代碼練習
- 選擇一個整片的時間進行學習編碼。
- 嘗試解決別人在羣裏或者私信中提出的問題,後來學習的人愈來愈多,這一塊也成了我主要的代碼練習塊。
- 從Github中的項目學習,主要是學習一些Flutter的編碼格式以及項目結構(以前被人吐槽過編碼格式不合理,查證後把不合理的代碼格式從新寫了一次)
學習代碼已整理成Demo上傳到Github, 每個知識點都有一個獨立的例子供參考:
1.基礎佈局
2.數據請求
3.MVP實現
4.上拉加載(監測到最底端直接刷新,待優化),下拉刷新
5.主題學習
6.路由
7.drawer
8.數據存儲三種方式(文件,SharedPreference,sqflite)
9.手勢
10.圖片加載
11.生命週期
12.網絡請求(dio,http,原生)
13.多點觸控
14.InheritedWidget
15.TabBarView & TabBar ,切換的時候,每次都會執行initState。
16.GlobalKey(簡單使用)
17.國際化
18.Notification自下而上傳遞數據
19.顯示/隱藏widget
20.drag
21.Animation
22.StreamController
23.Business Logic Component
24.Simple Redux & Simple BLoC
App實踐
學了那麼多基礎的知識,確定要本身嘗試寫一個App,將知識點整合到一塊兒使用。後端
完成
1.今日熱點
2.主題分類
3.文章詳情
4.抽屜列表增長緩存, 防止屢次拉去數據
5.評論列表
6.主題列表
7.主頁banner自動輪播,手指滑動是禁止輪播,放開則繼續
8.刷新數據失敗,增長重試按鈕
9.分享UI,登陸UI,聯動交互緩存
待優化
1.Flutter加載Html服務器
因爲Api有限沒法完成跟用戶相關的操做
1.註冊
2.登陸
3.發表評論
4.收藏網絡
學習&使用的感覺
- 須要學習一門新的語言Dart,對於有移動端和前端開發基礎的人來講,不算很困難。
- 開發過程當中Hot Reload大大的提升開發效率。
- 樹型佈局,須要轉變本身的佈局思惟,一切都是widget,這個概念在在Flutter特別重要,由於在使用的過程當中你須要展示給用戶的UI都是依靠各類類型的組件,經過組合的方式生成。
- 對於你們認爲樹型佈局的嵌套層次較深,看起來極爲不直觀的問題,只須要將一個複雜的佈局進行拆解,作成獨立的widget,而後再進行組裝,這樣不只解決了閱讀代碼不直觀的問題,並且也大大提升了widget的複用性。
- 對於網絡請求的數據這一塊,若是服務器返回的數據嵌套層次較多,會讓開發者會較多的時間去整理,封裝,寫解析體。
- 本身自己是作開發Android的,因此習慣的使用了MVP的模式,實踐項目寫完之後感受有點笨重,可能須要摒棄一些移動端老的編碼觀念,在後續接觸到國外的一些開源項目,使用了的BLoC或者Redux,做爲響應式框架,我的感受這兩種架構比MVP更適合Flutter的開發。
- 開發的時候咱們在debug模式下會稍顯卡頓,後續作了個release包,分別在iOS和Android的真機上運行,從用戶體驗的角度去看,性能上幾乎和原生沒差異,是能夠接受的。
- 實踐的項目分別打release包,iOS版有16.16M,Android版有8.02M,相對原生較大。
- 成熟輪子較少,官方或者大廠維護的插件很少,例如第三方平臺登錄,支付,分享,國內地圖等,咱們須要本身作插件,這個就迫使咱們目前須要掌握2種平臺的開發iOS和Android,這個學習成本就相對高一點。
從 0 到 1:個人 Flutter 技術實踐 | 掘金技術徵文,徵文活動正在進行中架構