原做者:徐爱卿
终于,终于写完了。这个项目是我从年前开始写的,而后今年过年没有回家,除了大年三十没有提交代码,有空余时间就一直在写,过完年大年初一就开始写了~~。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...