一项改变游戏规则的技术 - Flutter
''A fast app is great, but a smooth app is even better.''
使用Flutter beta版上线了一个APP的故事
2018年的11月底 , 我第一次打开Flutter的官网 , 想看看Flutter到底是什么;3个星期后 , 我们赶在Apple的App Store审核团队圣诞节休假前 , 提交了第一个使用Flutter开发的App 。 当然 , 是iOS和Android双端同时提交 。
我们使用Flutter开发的产品是一个图片feed流 , 作为一个模块嵌入到一个美颜相机里面 。
在接下来的2个月内 , 我们保持着每2个星期发版的频率 , 成功上线了以下核心功能:
- 登陆
- 作品发布
- 作品删除
- 关注他人
- 作品点赞
- 作品评论
- 消息中心
- 发现feed流
- 关注feed流(你所关注的发布者的动态feed流)
- 各个页面时长的数据统计
- 产品经理:1人
- 作品质量把控:1人
- 后端开发:2人
- iOS开发:1人
- Android开发:2人
- Web端开发:2人
- 测试:2人
在使用Flutter的这几个月内 , 我被Flutter这特立独行的跨端思想和优秀的表现所感动 。 从一开始的全身每个细胞都在抵触到短短几个星期之后就差点成为脑残粉 , 我经历了难忘的一次“真香”之旅 。
思绪回到我们决定使用Flutter的那一天 , 我们做了一个冷静之后看起来十分激进和冒险的技术选型 。 因为我们当时的场景是:Flutter beta版 + 和已有的native APP混合 + 已有的native是一个相机类App + Flutter开发的功能是一个feed流 。 这个组合在当时的场景下是十分苛刻的 。 接下来我具体解释一下其中的挑战在哪里:
- Flutter beta:因为是beta版本 , 所以框架功能不面面俱到 , 也存在bug 。
- Flutter和已有的native混合:因为当时使用的是beta版本 , 并没有官方的集成方案 。 混合模式下如何开发 , 调试 , 打包 , 集成之后对整个App包大小的影响有多大 , 都是挑战 。
- 已有的native是一个相机类App:相机类的App本身占用的内存就相对来说很大 。
- feed流:feed流功能 , 本身对性能要求高 , 因为刷起来需要流畅 , 因为图片很多 , 对内存也是有极高的要求 。
- 上线时间短:第一个版本 , 必须要赶在圣诞节前上 , 从项目立项到上线 , 不过3个星期的时间 。
- 上线频率高:保持每2周发一个新版 。
- 高性能:我们的核心是feed流 , 对于一个feed流来说 , 滑起来流畅是重要的指标 。 因为Flutter的高性能的特性 , 我们的feeds能达到60fps 。
- 双端一致:因为我们的功能是iOS和Android双端都要支持 , 因为Flutter优秀的跨端技术 , 使得我们写一份代码 , 可以同时在双端运行 , 并且保持双端UI,功能等高度的一致性 。
- 减少测试时间:因为双端的高度一致 , 测试同学不需要每一端都事无巨细地测试 , 特别是UI的部分 , 只需要测试一端便行 。
- 高效的开发效率:Flutter提供丰富又高度定制化的组件 , 加上Flutter拥有Hot Reload , 使得你在秒级的时间内看到你的代码更改 , 而不是像以前那样哪怕只是1px的改动 , 都需要经历重新的编译 , 打包 , 安装 , 可能2分钟过去之后 , 才能看到最后的结果 。
推荐阅读
- 极客微视数码说TB 12预热期!没有充电器和屏幕高刷?粉丝:只求这一点改变,iPhone
- 贪玩_小潘潘|郎导亲承暂不改变退休计划,当下做好训练,只担心一事
- 大漠军武|美国打算购买俄罗斯装备?一个关键信号传来!或将改变世界局势
- 六六途游|我国迎难而上,再度开创一项超级工程,全球竞标24个国家相继退出
- 7月5日|等差数列:5,9,13的下一项是?蚂蚁庄园7月5日答案及解析
- 兵戎要志|其实就是流星空对空导弹,印即将获得“改变南亚天空平衡”的武器
- 我国|中国推出一项禁令,直接令15个国家损失百亿,纷纷请求收回决定
- 我国|直接令15个国家损失百亿,纷纷请求收回决定,中国推出一项禁令
- 江苏以创新驱动发展,用创新改变生活,靠创新引领未来——创新提升小康成色
- |张雨绮傻白甜性格出圈,穿衣也彻底改变,一袭蕾丝裙少女感爆棚
