七分設計感的純Flutter項目(Mung三部曲)

React版Mung

React-Native版Mung

Flutter版Mung

Mung-Flutter

1. Mung-Flutter:是一個基於Flutter編寫,使用豆瓣開源API開發的一個項目。

image

2. 功能概述

  • 啓動頁:添加了啓動頁主要是讓最開始進入時不至於顯示白屏。
  • 數據保存 :支持斷網加載緩存數據。
  • 主題換膚 :現在只支持切換主題顏色,本項目沒幾張圖片。
  • 查看電影詳情 :支持查看電影詳情包括評論。
  • 一鍵搜索: 支持標籤和語句查找相關的電影。
  • 查看劇照: 支持縮放圖片。

3.1 動態演示(Android版)

image

3.2 運行結果圖

image
image

4. 使用到的框架

  • flutter_swiper :Banner欄圖片輪播的效果。
  • rxdart :和Rxjava、RxJs、RxSwift差不多,這裏主要用它的BehaviorSubject配合Bloc模式實現狀態管理。
  • shared_preferences :簡單的數據保存,比較細緻的數據存儲如列表等還是建議使用數據庫。
  • dio :實現網絡請求,一個非常不錯的三方網絡包,功能非常多,如果剛入門或者項目比較急建議使用這個。
  • flutter_spinkit : 加載時顯示的加載組件,挺不錯,建議看下。
  • photo_view: 圖片縮放組件,因爲安卓裏的photoview正好選了,使用了一個簡單的功能,暫時沒發現問題。

5. 項目全局狀態管理

現在據我瞭解的比較成熟的狀態管理有。

    1. InheritedWidget(自帶的其他三方好像都是基於它開發,只是封裝了下,更加方便)
    1. scoped_model: 不錯。
    1. redux和前端的redux是一個意思,但我寫過demo用過,個人愚見:差遠了。
    1. Bloc:(Business Logic Component)paolo soares 和 cong hui 在2018年Google dartconf上提出的,它其實是一個模式InheritedWidget+stream配合使用。

本項目使用的就是Bloc。

6. 思考

這個開發的第一個flutter,都有這個項目來說該用的主流框架都恰到好處的用了,因爲項目太小,適合入門和快速開發。對於flutter個人感覺。

    1. 上個月看了一個消息Flutter團隊好像在今年不會推出熱更新功能,好像是基於安全和可實現性考慮,這裏要說下flutter編譯模式: 開發階段使用的是 Kernel Snapshot 模式編譯,生產模式使用AOT。
    1. flutter上月好像推出了web端和桌面的適配,這個應該對flutter發展有很大幫助。
    1. 我之前一年多一直使用React-Native開發項目,感覺Flutter的組件比RN多,而且多很多,組件兼容性更好,而且更精緻,但是嵌套的模式真心醜,而且巨亂,我開發時把組件拆分成多個函數這樣會讓界面清新一點。
    1. 狀態管理,暫時還沒有一個絕對好的狀態管理功能,現在有些項目使用bloc或者bloc+redux,但個人認爲不久的將來會有一個好的狀態管理功能佔據絕對的地址,想RN的redux、mobx一樣。
    1. 組件生命週期函數很少,尤其是開發大型項目時,之前使用RN開發時就覺得RN比原生安卓生命週期少,自己還得去添加全局監聽去管理生命週期,flutter就更少了。
    1. 性能,應該flutter,網上一大堆對比文章一番一大把,個人使用也明顯感覺到flutter性能很好,這是現實原理的問題,尤其是列表,比fRN好很多,而且動畫等也多,自定義組件還沒看,不做評價。
    1. 社區,毫無疑問RN社區會比Flutter對於現在這個時間段來說,而且RN支持熱更新對原生加(RN、Flutter)來說,RN也更站優勢,三方組件來說RN已經很多了,開源項目比較多。

7. 提示

2019-5-12左右豆瓣把開源API關了,現在使用的別的開發者的地址,項目Baser_url是抽出來的後期可以自己改,現在項目使用的是https://douban.uieee.com/v2,可以正常運行。

8.下載地址

  • 安卓版
  • ios版(沒有企業賬號-😊)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章