本书将详细讲解闲鱼Flutter&FaaS云端一体化架构,以及闲鱼基于Flutter的架构演进与创新,学习一套全面的Flutter架构应用方案。本书介绍闲鱼技术团队利用Flutter技术改造和上线复杂业务的混合工程改造实践,抽取Flutter依赖到远程的实现细节,以及使用Plugin桥接获取设备信息、使用基础网络库等混合开发实践指南。这些实践遍布闲鱼各大业务线和应用场景,为读者使用Flutter打造自己的研发体系探索一条实践之路。除了介绍闲鱼Flutter应用框架Fish Redux、开发利器AspectD、FlutterBoost等一众开源工具与开发实践指南,你还将在本书中学到Flutter的更多应用场景。
序
闲鱼技术团队发来电子书稿时,我十分惊喜。国内关于Flutter的中文书籍尚不多见,这本书如此领先且与众不同。
本书并非基础知识的简单罗列,而是从一线问题出发,循序渐进,娓娓道来。不仅把Flutter的重要理念讲得极为清晰,而且给开发者提供了应对眼前各种问题的实用方法。特别是,本书对单点问题的解读极具深度,非常具有参考价值。同时,书中还给出了详尽的可以融会贯通、举一反三的思路,理论陈述和问题分析面面俱到,力求让读者可以获得全面系统的技术知识。
本书凝聚了闲鱼技术团队的心血,就像弈局一样,通过一步步的反复判断和思考,给出清晰的路径。唯有经历了与谷歌团队的长期共建,以及对整个闲鱼规划的透彻思考,才能淬炼出有如此深度的著作。对于如何使用Flutter以及是否要选择Flutter的开发者或者规划者来说,阅读本书将大有裨益。
汤兴(花名:平畴)
阿里巴巴集团副总裁
前言
近年来,随着移动智能设备的快速普及,移动多端统一开发框架已成为一个热点议题。Google Flutter通过新的渲染引擎、新的编程语言、新的编程框架,提供了一个更决绝的跨端方案,使其在众多移动多端统一开发技术中脱颖而出。我们从2017年起预研并接触Flutter技术,经过多次的探讨验证后正式大规模地在线上使用,在App性能、稳定性、开发效率上获益良多。此外,我们积极协同Google Flutter团队去反馈和共同解决中国社区所遇到的各种挑战。通过这个过程,形成了大量一手实践知识与技术沉淀。自2018年起,我们收到博文视点的多次邀请,希望撰写对移动开发工程师有实际指导意义的技术图书。从那时起我们始终在思考,应该提供一本什么样的书来帮助移动开发者完善自己的关注视角,并从解决实际应用开发问题出发,思考业务与技术架构统一的问题。带着这个期望,我们系统地精选和编写了闲鱼技术在实际开发中沉淀的经验文章,形成本书,以此回馈广大移动开发者。
本书的目标读者是移动技术开发领域相关工程技术人员或以此为职业目标的在校学生。我们期望通过本书的出版,能够帮助读者系统化地理解业务问题的定义、问题如何投射到技术、解决方案的思考以及如何得出解法。因此,本书存在大量相关背景知识、工作原理介绍以及侧重原因分析的方案设计。这也是我们对“授人以鱼不如授人以渔”的思考,希望读者可以代入本书的内容去体会这种问题定义、思考与解决的喜悦。
本书从通用业务工程化开始,进而展开Flutter在闲鱼整体云端一体化架构的创新思考。第1、2章重点关注混合工程搭建以及关键能力扩展和优化,第3、4章探讨关于大规模工程实践中遇到的具体问题,如应用架构设计、性能统计和调优等,并在第5章给出梳理和总结。以期读者可以有一个自顶向下展开的阅读路径。
本书在选题立项与最后成书过程中,阿里巴巴技术副总裁汤兴(花名:平畴)博士提供了很多建设性意见;博文视点在出版过程中给予了大力支持和帮助;谷歌Eric及Flutter团队一直以来高效并愉快地协同和共同演进,在此谨向他们表达诚挚的谢意。最后,衷心感谢闲鱼技术团队的各位同事,衷心感谢阿里云战略&合作部总经理刘湘雯和她的同事们,恕不一一列举,本书的出版与他们的支持、信任和帮助是分不开的。
移动多端统一开发技术是一个新的工程领域,发展潜力巨大,知识更新速度快。由于作者水平有限,书中难免有不当之处。我们会通过闲鱼技术公众号、闲鱼技术阿里云开发者社区账号与读者交流和更新内容,欢迎专家和读者给予批评指正。
孙兵(花名:酒丐)
阿里巴巴资深技术专家