在当今的APP开发领域,效率和性能始终是两大关键考量。Flutter既能加速研发效率又能保障优秀性能的特点,无疑是一大亮点,吸引着众多开发者的眼球。
Flutter提高研发效率
Flutter能极大加快客户端研发速度。以闲鱼为例,它服务着3亿庞大用户群体,但其开发资源投入很少。与竞争对手相比,闲鱼的开发团队规模小得可怜。在这种情况下,Flutter对闲鱼业务稳定发展意义非凡,为其创新产品的推出给予极大助力。Flutter避免了如转换到Native控件、线程跳跃等诸多问题,让开发更顺畅高效。这使得开发者在有限的资源下,能以更短的时间做出高质量的APP。
Flutter在实际应用中,最直观的好处就是缩短开发周期。在别的开发框架还在解决此类基础问题的时候,Flutter已经能够让开发者把精力投入到功能和性能优化上了。
闲鱼的内存压力考量
对于闲鱼而言,引入Flutter容器后,内存压力是不得不慎重对待的问题。如果任由内存问题发展,很可能产生内存溢出,这对APP来说是灾难性的。所以闲鱼必须要保证在利用Flutter优势时,不让内存压力失控。要解决这一问题,闲鱼的开发者就需要对内存管理进行精细的优化。
在开发过程中,他们需要详细规划每一个模块占用的内存资源。通过分析闲鱼用户的操作行为,对高频操作着重优化内存使用,避免不必要的数据存储和反复调用,减少内存负担。这种从源头管理内存的方式,是应对内存压力的有效手段。
多Tab场景下堆栈逻辑混乱
当遇到多个Tab的场景时,闲鱼出现了堆栈逻辑混乱的问题。这对用户体验影响很大,可能会导致页面加载错误或者导航失效等问题。针对这个情况,闲鱼创造性地对Flutter Boost的方案进行升级并且开源。在Dart侧提供一个BoostContainerManager,实现对多个Navigator的管理能力。
有了这个管理能力,就相当于给开发者一个清晰的解决手段。比如当需要打开新的页面时,开发者可以依据具体情况,自由选择是在现有的Navigator进行页面操作,还是新开一个Navigator独立管理。这大大提高了页面管理的灵活性,有效解决了多Tab下的堆栈逻辑混乱问题。
Native UI与Flutter渲染引擎桥接
在Native UI到Flutter渲染引擎桥接过程中,闲鱼采用Flutter Plugin里的FlutterTextureRegistry能力。尤其是在视频场景,去年上半年就开始了优化。原来Flutter Engine底层外接纹理接口有必须传入一个PixelBuffer内存对象的限制,这对一些功能实现不利。
闲鱼开发者通过增加一个能传入GPU对象TextureID的新接口来扩展原有接口的功能。这一优化让视频在Flutter中的播放更加流畅,且为其他需要类似功能的场景提供了借鉴思路,有助于提高整个APP的性能。
Flutter&Dart FaaS技术栈统一
Flutter&Dart FaaS实现了技术栈统一。通常大家对前端+Node.js的一体化方案比较熟悉,当端侧使用Flutter时,云侧Dart就成为了首选。但是这仅仅是个开始,仅仅技术栈统一,端云同学仍无法做到真正互补和一体化打通。还存在很多深层次问题需要解决。
这些深层次问题可能涉及到数据交互的效率、安全等方面。比如如何保障云端数据在传递到端侧Flutter应用时的准确性和及时性,又如何确保数据在传输过程中的安全保密等问题。
增长业务与Flutter应用
在开发过程中,负责增长业务的开发者起着重要的作用。就像在闲鱼中,增长业务开发者要专注于增长业务,根据不同的用户群体投放合适的内容,从而实现用户增长和活跃。Flutter应用的最终目的也是为了吸引更多用户,提升用户体验,实现用户增长。
增长业务开发者需要深刻理解Flutter的特性。例如利用Flutter的高性能开发出更吸引人的页面,吸引用户更多的停留时间,然后根据用户的行为习惯等信息,精准投放内容,实现业务的增长。
那么你认为Flutter在未来是否会成为更多APP开发的首选框架?