Flutter豆瓣客户端(仿),诚心开源

栏目: IOS · Android · 发布时间: 5年前

内容简介:原作者:徐爱卿终于,终于写完了。这个项目是我从年前开始写的,然后今年过年没有回家,除了大年三十没有提交代码,有空余时间就一直在写,过完年大年初一就开始写了~~。功夫不负有心人,终于,现在来看是一个成熟度较为满意的作品,才敢拿出来跟大家一起分享。

原作者:徐爱卿

终于,终于写完了。这个项目是我从年前开始写的,然后今年过年没有回家,除了大年三十没有提交代码,有空余时间就一直在写,过完年大年初一就开始写了~~。

功夫不负有心人,终于,现在来看是一个成熟度较为满意的作品,才敢拿出来跟大家一起分享。

效果图凑合看吧...gif控制大小太难了...原文效果图更多,更真实,文末有apk下载。

Flutter豆瓣客户端(仿),诚心开源

Flutter豆瓣客户端(仿),诚心开源

缘起

忘记关注哪个公众号了,真正接触flutter是18年,算起来是比较晚的了。不过勤能补拙,现在也来的及,只要想学就不晚。如果学习一个知识点,就写个demo就以为掌握了,大错特错。我们更多的是从实际出发利用知识点,完成实际任务。将众多Widget灵活使用,不断的碰壁,解决bug,最终就能够真正的理解这个Widget以及相关知识点。所以,我没有写个demo就完事了。我直接拿一个APP,盘它就好了。

首先说一下,为啥仿豆瓣。

因为,总体来看(个人感触,勿喷),豆瓣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原生有类似的。所以就翻源码改。最终实现了一样的效果。这番改动,使得我对flutter的AppBar以及flutter的动画有了更深的认识。

打造100%抽屉

Flutter豆瓣客户端(仿),诚心开源

flutter中是没有类似的Widget。所以,我只能自己干。为了实现100%还原这个页面,耗费了我好几个晚上的时间,最终成功了。经过这个洗礼,加深了我对Animation,ScrollNotificationListener,GestureRecognizer等的理解。

影视详情动态背景色

在豆瓣APP中,最吸引我之一的就是豆瓣APP的影视详情的背景色是动态的。每个背景色均是不同的。当然,我这里也实现了。

详情的颜色根据海报的主题变动。

关于这些,我就是举个简单的例子。有些东西,要强迫自己一下。或许收获到更多惊喜。这两个比较难的组件,我在源码中关于思路以及方法都有注释,大家可以去看下。

目的

我写这个项目的初衷,就是跟大家分享知识的。所以,今天我会将GitHub上的项目设置为公开。是时候展示真正的技术了哈~

这个项目中,90%的flutter基础Widget都有使用到,各种百搭情景都有涉及。基本上每个文件都有相关注释。部分方法也有想对应的注释。毕竟是为了分享么。目前的最新分支是master-new,大家可以pull下来后直接在master-new上编译。

开源

最重要的是,大家可以提交代码~~,目前新建了一个dev-open分支。由于本豆芽APP还没完全写完,想锻炼自己的可以向这个分支提交代码。

大家可以向这个分支根据豆瓣UI做设计稿,提交代码

  1. 这个分支供广大Flutter开发者来学习Flutter
  2. 此分支囊括了Flutter 90%的组件的基本与组合使用,是初学者真正实践的不错选择
  3. 在此豆芽APP的首页实现与影片详情的UI特效,基于魔改Flutter源码。有兴趣可以看看
  4. 大家想实战自己的Flutter能力,可以将某瓣APP作为设计稿,完成需求,并提交
  5. 每位开发者提交的代码,我都会在文档中进行备注

未来版本计划(欢迎Flutter爱好者前来认领)

欢迎Flutter爱好者共同完成,涉及到UI,可参考豆瓣。

萌新TASK

  • 完成任意一个未实现的按钮
  • 完成任意一个未实现的页面
  • 优化原有Widget
  • 爱好者想实现但是未能实现的需求
  • More …

进阶TASK

老手TASK

时至今日,看到一个完整的Flutter项目在自己手中一点点打造出来,满满的成就感。当然,更多的是要分享与大家。来,大家一起学习Flutter,共同进步,提升自己的能力。谢谢大家~

apk体验地址(30M)

https://img.xuvip.top/douya.apk

备用地址:

https://pan.baidu.com/s/1jtWg...  

提取码: iw64 

源码地址

https://github.com/kaina404/F...

免费获取更多安卓开发架构的资料(包括Fultter、高级UI、性能优化、架构师课程、 NDK、Kotlin、混合式开发(ReactNative+Weex)和一线互联网公司关于android面试的题目汇总可以加入 【腾讯@安卓中高级进阶】


以上所述就是小编给大家介绍的《Flutter豆瓣客户端(仿),诚心开源》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Think Python

Think Python

Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99

Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具