原做者:徐愛卿
終於,終於寫完了。這個項目是我從年前開始寫的,而後今年過年沒有回家,除了大年三十沒有提交代碼,有空餘時間就一直在寫,過完年大年初一就開始寫了~~。android
功夫不負有心人,終於,如今來看是一個成熟度較爲滿意的做品,纔敢拿出來跟你們一塊兒分享。git
效果圖湊合看吧...gif控制大小太難了...原文效果圖更多,更真實,文末有apk下載。github
緣起面試
忘記關注哪一個公衆號了,真正接觸flutter是18年,算起來是比較晚的了。不過勤能補拙,如今也來的及,只要想學就不晚。若是學習一個知識點,就寫個demo就覺得掌握了,大錯特錯。咱們更多的是從實際出發利用知識點,完成實際任務。將衆多Widget靈活使用,不斷的碰壁,解決bug,最終就可以真正的理解這個Widget以及相關知識點。因此,我沒有寫個demo就完事了。我直接拿一個APP,盤它就行了。api
首先說一下,爲啥仿豆瓣。緩存
由於,整體來看(我的感觸,勿噴),豆瓣APP中的UI涉及到的動畫、排版,交互等等都是十分優秀的,最重要的是涉及到各類各樣的UI,對於學習flutter是一個很好的平臺。(還有一點:豆瓣有一些公開的api,這個最重要)其實對於一個Widget的功能點,咱們均可以娓娓道來,可是將衆多Widget糅合到一塊兒仍是有必定的挑戰的。挑戰意味着機會,意味着能力。性能優化
豆瓣API說明:架構
https://www.jianshu.com/p/a7e...性能
項目能學到什麼學習
定了一個小目標:看到的UI,100%還原。我就以這個爲基本線,最終達到了差很少90%的還原吧。
仿了豆瓣APP的90%的頁面,UI的樣式、頁面搭配等等,爭取到了90%還原。
整個項目涉及到Flutter 90%的基礎Widget,以及各類情景的搭配組合。
某些flutter沒有的Widget,這就須要我本身去找了,可是網上沒有合適的輪子。我就直接改源碼了。例如:
魔改源碼實現首頁頭部特效
網上沒有相似的,不過flutter原生有相似的。因此就翻源碼改。最終實現了同樣的效果。這番改動,使得我對flutter的AppBar以及flutter的動畫有了更深的認識。
打造100%抽屜
flutter中是沒有相似的Widget。因此,我只能本身幹。爲了實現100%還原這個頁面,耗費了我好幾個晚上的時間,最終成功了。通過這個洗禮,加深了我對Animation,ScrollNotificationListener,GestureRecognizer等的理解。
影視詳情動態背景色
在豆瓣APP中,最吸引我之一的就是豆瓣APP的影視詳情的背景色是動態的。每一個背景色均是不一樣的。固然,我這裏也實現了。
詳情的顏色根據海報的主題變更。
關於這些,我就是舉個簡單的例子。有些東西,要強迫本身一下。或許收穫到更多驚喜。這兩個比較難的組件,我在源碼中關於思路以及方法都有註釋,你們能夠去看下。
目的
我寫這個項目的初衷,就是跟你們分享知識的。因此,今天我會將GitHub上的項目設置爲公開。是時候展現真正的技術了哈~
這個項目中,90%的flutter基礎Widget都有使用到,各類百搭情景都有涉及。基本上每一個文件都有相關注釋。部分方法也有想對應的註釋。畢竟是爲了分享麼。目前的最新分支是master-new,你們能夠pull下來後直接在master-new上編譯。
開源
最重要的是,你們能夠提交代碼~~,目前新建了一個dev-open分支。因爲本豆芽APP還沒徹底寫完,想鍛鍊本身的能夠向這個分支提交代碼。
你們能夠向這個分支根據豆瓣UI作設計稿,提交代碼
將來版本計劃(歡迎Flutter愛好者前來認領)
歡迎Flutter愛好者共同完成,涉及到UI,可參考豆瓣。
萌新TASK
進階TASK
老手TASK
時至今日,看到一個完整的Flutter項目在本身手中一點點打造出來,滿滿的成就感。固然,更多的是要分享與你們。來,你們一塊兒學習Flutter,共同進步,提高本身的能力。謝謝你們~
apk體驗地址(30M)
https://img.xuvip.top/douya.apk
備用地址:
https://pan.baidu.com/s/1jtWg...
提取碼: iw64
源碼地址
https://github.com/kaina404/F...