React版Mung
React-Native版Mung
Flutter版Mung
Mung-Flutter
1. Mung-Flutter:是一個基於Flutter編寫,使用豆瓣開源API開發的一個項目。
2. 功能概述
- 啓動頁:添加了啓動頁主要是讓最開始進入時不至於顯示白屏。
- 數據保存 :支持斷網加載緩存數據。
- 主題換膚 :現在只支持切換主題顏色,本項目沒幾張圖片。
- 查看電影詳情 :支持查看電影詳情包括評論。
- 一鍵搜索: 支持標籤和語句查找相關的電影。
- 查看劇照: 支持縮放圖片。
3.1 動態演示(Android版)
3.2 運行結果圖
4. 使用到的框架
- flutter_swiper :Banner欄圖片輪播的效果。
- rxdart :和Rxjava、RxJs、RxSwift差不多,這裏主要用它的BehaviorSubject配合Bloc模式實現狀態管理。
- shared_preferences :簡單的數據保存,比較細緻的數據存儲如列表等還是建議使用數據庫。
- dio :實現網絡請求,一個非常不錯的三方網絡包,功能非常多,如果剛入門或者項目比較急建議使用這個。
- flutter_spinkit : 加載時顯示的加載組件,挺不錯,建議看下。
- photo_view: 圖片縮放組件,因爲安卓裏的photoview正好選了,使用了一個簡單的功能,暫時沒發現問題。
5. 項目全局狀態管理
現在據我瞭解的比較成熟的狀態管理有。
- InheritedWidget(自帶的其他三方好像都是基於它開發,只是封裝了下,更加方便)
- scoped_model: 不錯。
- redux和前端的redux是一個意思,但我寫過demo用過,個人愚見:差遠了。
- Bloc:(Business Logic Component)paolo soares 和 cong hui 在2018年Google dartconf上提出的,它其實是一個模式InheritedWidget+stream配合使用。
本項目使用的就是Bloc。
6. 思考
這個開發的第一個flutter,都有這個項目來說該用的主流框架都恰到好處的用了,因爲項目太小,適合入門和快速開發。對於flutter個人感覺。
- 上個月看了一個消息Flutter團隊好像在今年不會推出熱更新功能,好像是基於安全和可實現性考慮,這裏要說下flutter編譯模式: 開發階段使用的是 Kernel Snapshot 模式編譯,生產模式使用AOT。
- flutter上月好像推出了web端和桌面的適配,這個應該對flutter發展有很大幫助。
- 我之前一年多一直使用React-Native開發項目,感覺Flutter的組件比RN多,而且多很多,組件兼容性更好,而且更精緻,但是嵌套的模式真心醜,而且巨亂,我開發時把組件拆分成多個函數這樣會讓界面清新一點。
- 狀態管理,暫時還沒有一個絕對好的狀態管理功能,現在有些項目使用bloc或者bloc+redux,但個人認爲不久的將來會有一個好的狀態管理功能佔據絕對的地址,想RN的redux、mobx一樣。
- 組件生命週期函數很少,尤其是開發大型項目時,之前使用RN開發時就覺得RN比原生安卓生命週期少,自己還得去添加全局監聽去管理生命週期,flutter就更少了。
- 性能,應該flutter,網上一大堆對比文章一番一大把,個人使用也明顯感覺到flutter性能很好,這是現實原理的問題,尤其是列表,比fRN好很多,而且動畫等也多,自定義組件還沒看,不做評價。
- 社區,毫無疑問RN社區會比Flutter對於現在這個時間段來說,而且RN支持熱更新對原生加(RN、Flutter)來說,RN也更站優勢,三方組件來說RN已經很多了,開源項目比較多。
7. 提示
2019-5-12左右豆瓣把開源API關了,現在使用的別的開發者的地址,項目Baser_url是抽出來的後期可以自己改,現在項目使用的是https://douban.uieee.com/v2,可以正常運行。
8.下載地址
- 安卓版
- ios版(沒有企業賬號-😊)