首页 > 闲鱼新闻

在闲鱼实习做Flutter是什么感受?

21-09-30闲鱼新闻围观665

简介 前言我是广东工业大学16级软件工程专业的学生,实习3个月。在闲鱼完成了玩家发布页、AndroidQ适配、租赁等任务。在这成熟的完成,从依靠闲鱼,我了Android到Flutter的一个技术栈的行动。这

  前言

微信号:pps188888
添加微信,免费试用软件
复制微信号

  我是广东工业大学16级软件工程专业的学生,实习3个月。在闲鱼完成了玩家发布页、AndroidQ适配、租赁等任务。在这成熟的完成,从依靠闲鱼,我了Android到Flutter的一个技术栈的行动。这篇文章主要分享一下我三个月的学习以及心得体会。

  了解项目工程

  通过项目来学习,似乎是我们这一行的入门方法。

  在最初的未来,师兄先让我对 Flutter 与 Dart 进行学习,体验了一个使用 Fish-Redux 发布页面的任务,让我快速上手 Flutter,研究项目工程。这个界面看起来很简单,但实际上他有很多复杂的交互要处理。发布页如下图所示:总过程困难重重,首先是我对Flutter的认识不足,当时我什至知道StatefulWidget跟StatelessWidget的区别是什么,其次是对Fish-Redux的理解。这就像建楼从楼顶开始建起一样,是不可能的。后来我决定花点时间,去认识各种Widget,Dart Api,Future等等。并写了一个小demo,包括了很多Tab、列表、图片、网络等场景。通过这些学习,整体上大大提高了我对 Flutter 的认识与理解。这期间闲鱼公众号里的文章对真的有用吗。

  当然,除了一些常见的问题,这个页面还有很多坑,因为他的交互方式了。包括页面进入自动获取焦点,点击输入框外部接收起键盘,自动捕捉焦点点击自动检测输入并提交,按钮输入框并弹出键盘等等。一开始诡异的方案很美好,可惜可以写,事与违,经常遇到键盘弹起无法起,键盘弹起隐藏输入,很多收集到了焦点等问题。后来通过分析FocusNode和FocusManager的相关代码以及在师的帮助下,成功解决了这对兄的问题。这里也很感谢师兄给我足足的时间的时间,让我在工作的同时,还有很多可能的时间去深入到Flutter内部去学习各种组件的原理。

  熟悉项目流程

  我在大三来闲鱼实习之前,在学校的工作室过待过,也有一些项目。工作室跟公司对比起来天边之别。在学校开发的项目中,没有详细的产品需求文档,交互设计全靠自己发挥,更没有测试,代码自己也想找到哪一个,导致产品的质量往往不如人意。八月份初,我终于有机会去接触一个完整的FDD项目管理流程。下图是某业务的看板:

  各个阶段对我来说是承认的也是充满挑战的,深刻的理解了闲鱼项目管理的精彩和精彩。那个的测试和发布是最突然的一个动态了。可能给测出低级BUG是原因之一(TC后测试最近例不过的BUG就是低级BUG,我也是知道)现在每次给提BUG,首先要看是不是低级BUG。8月份‘喜提’的两个低级BUG,另外中间的各种验证,还是对我的思维能力的要求,审核涉及到的各种问题,是我们估算时间的重要考虑,考虑不周会影响到筑地的开发。

  突破与沉淀

  在这个项目开发中,也利用了解自己的 Flutter 知识,对自己的框架进行优化。FDRfreshWidget是一个闲鱼内部的控件,提供了下拉刷新,上拉加载更多的能力。但是在实际使用的过程中发现了体验,并且在滚动时在细节上的设备上卡顿问题表现得很明显。在Android中我们认知的列表图片的优化方案包括:①中间延迟②滚动时不加载③图片质量压缩等等。在订单列表的场景下卡顿的原因主要是因为滚动时这个场景出现了大量的图片加载请求导致 CPU 与内存占用过多,因此方案②对于解决问题是很合适的。

  优化后的方案如下:通过使用继承的Widget缓存加载控制的标记,根据ScrollView的通知修改标记位,部分的ImageView根据标记来决定是否加载图片,并通过上层Widget缓存整个ListView最终断了构建的过程,避免了悦的重建。优化之后,内存占用降低了100多MB,同时帧率在浏览时也得到了很大的提升。同事们对这个效果表示满意。最终这个插件也集成到了基础代码里,为闲鱼里多个使用了 FDRfreshWidget 的地方提供了一个能力的增强。另外还有一些其他的基础能力的建设,包括Flutter到Weex的通信,DynamicAction能力增强等等就不多做分享了。下图总结了我在闲鱼里玩Flutter相关的所有技术。

  适合学习F的同学提供一个目的地学习路线:

  学习dart语言的基本语法

  学习一把基础小工具的使用方式

  学习各种密钥的使用以及作用

  了解Naviagator的实现方式

  了解setState的过程

  了解Dart的异步机制

  了解Redux,Bloc等架构

  收获

  在阿里训练的三个月,期间还有一些剧烈的活动,比如百技(经历了三天的突然事件),各个方向大神的经历还有很多新人等等。在闲鱼实习的三个月,说短过短,说长过短,但是非常的不长不长,他给我带来了一些思维上的转变,让我产生了浅薄,让我从一个生灵变成了一个工作人员。

  再给我一个新人犯的故事,是我工作中的一个错误经验教训

  敢于问问题。在大型团队英雄项目里,问题的原因可能是别人的原因导致的,还有其他的问题其他同学已经走过坑了,请教办法其他是最好的。本身也不能遇到问题,还需要自己判断。

  提早提出问题。一些项目中遇到的问题,有必要的话要引起大问题,同步组员,有时一切都不眼的小问题可能是导致大问题的原因。

  主动行为。在闲鱼,接到任务要主动推进,因为有的项目可能是跨多团队的,你不将项目当做自己的推进,主动,其他团队更不可能主动推进。

  打通任务的上下流。一个任务完成是原著的,还要注意与他相关的一些页面,没有受到影响。

  多思考,多总结。

  闲鱼团队是Flutter+Dart FaaS前集成新的行业领军者,就是现在!客户端/服务端java/摄像头/前端/工程师通通期待你的加入,基地杭州阿里巴巴西溪园区,一起做有创想空间的社区产品、做痛痛的快乐项目,一起去探索技术成就成果质量天使!

  *投喂简历给小闲鱼→贵菜。gxy@alibaba-inc。电脑

  更多系列文章、公开项目、关键话题、深度解读

  请认准闲鱼技术

Tags:

复制成功

微信号: pps188888
添加微信,免费试用软件

我知道了
添加微信

微信号: pps188888
添加微信,免费试用软件

一键复制加过了
18749471747
微信号:pps188888添加微信
pps188888