個人Flutter學習與實踐 | 掘金技術徵文

若是你還在猶豫爲何要學Flutter,下面2個圖的應該足夠吸引你加入了吧,一套代碼多平臺使用

Flutter 是 Google 用以幫助開發者在 iOS 和 Android 兩個平臺開發高質量原生應用的全新移動 UI 框架。
Flutter又是谷歌欽定的下一代移動操做系統Fuchsia的UI框架。 做爲一名Android Developer,看到是Google出的,且還能開發iOS,仍是有必要學習下的!前端

最近經過學習Flutter,認識不少人,特別是後端的各類大佬也在瘋狂學習,做爲移動端的咱們亞歷山大!!!git

本文主要講了我本身的一個學習過程以及使用感覺,但願對正在學習Flutter的朋友有必定幫助,對想要入坑Flutter的朋友進行一些相關介紹github

主要學習資料

  1. Flutter官網
  2. Flutter中文
  3. 在線Dart學習
  4. Tensor Programming
  5. DartConf 2018系列
  6. 閒魚技術

代碼練習

  1. 選擇一個整片的時間進行學習編碼。
  2. 嘗試解決別人在羣裏或者私信中提出的問題,後來學習的人愈來愈多,這一塊也成了我主要的代碼練習塊。
  3. 從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實踐

zhrb.gif

學了那麼多基礎的知識,確定要本身嘗試寫一個App,將知識點整合到一塊兒使用。後端

完成

1.今日熱點
2.主題分類
3.文章詳情
4.抽屜列表增長緩存, 防止屢次拉去數據
5.評論列表
6.主題列表
7.主頁banner自動輪播,手指滑動是禁止輪播,放開則繼續
8.刷新數據失敗,增長重試按鈕
9.分享UI,登陸UI,聯動交互緩存

待優化

1.Flutter加載Html服務器

因爲Api有限沒法完成跟用戶相關的操做

1.註冊
2.登陸
3.發表評論
4.收藏網絡

Release_Android體驗包

源碼已上傳到Github

學習&使用的感覺

  1. 須要學習一門新的語言Dart,對於有移動端和前端開發基礎的人來講,不算很困難。
  2. 開發過程當中Hot Reload大大的提升開發效率。
  3. 樹型佈局,須要轉變本身的佈局思惟,一切都是widget,這個概念在在Flutter特別重要,由於在使用的過程當中你須要展示給用戶的UI都是依靠各類類型的組件,經過組合的方式生成。
  4. 對於你們認爲樹型佈局的嵌套層次較深,看起來極爲不直觀的問題,只須要將一個複雜的佈局進行拆解,作成獨立的widget,而後再進行組裝,這樣不只解決了閱讀代碼不直觀的問題,並且也大大提升了widget的複用性。
  5. 對於網絡請求的數據這一塊,若是服務器返回的數據嵌套層次較多,會讓開發者會較多的時間去整理,封裝,寫解析體。
  6. 本身自己是作開發Android的,因此習慣的使用了MVP的模式,實踐項目寫完之後感受有點笨重,可能須要摒棄一些移動端老的編碼觀念,在後續接觸到國外的一些開源項目,使用了的BLoC或者Redux,做爲響應式框架,我的感受這兩種架構比MVP更適合Flutter的開發。
  7. 開發的時候咱們在debug模式下會稍顯卡頓,後續作了個release包,分別在iOS和Android的真機上運行,從用戶體驗的角度去看,性能上幾乎和原生沒差異,是能夠接受的。
  8. 實踐的項目分別打release包,iOS版有16.16M,Android版有8.02M,相對原生較大。
  9. 成熟輪子較少,官方或者大廠維護的插件很少,例如第三方平臺登錄,支付,分享,國內地圖等,咱們須要本身作插件,這個就迫使咱們目前須要掌握2種平臺的開發iOS和Android,這個學習成本就相對高一點。

從 0 到 1:個人 Flutter 技術實踐 | 掘金技術徵文,徵文活動正在進行中架構

相關文章
相關標籤/搜索