Flutter 跨端改造闲鱼 IM 的实践
2023-11-11 00:08:01
Flutter 跨端改造闲鱼 IM 的实践
前言
随着移动互联网的快速发展,越来越多的企业开始使用移动端应用来触达用户。然而,传统的Native开发方式存在着开发成本高、开发周期长、跨平台支持差等问题。为了解决这些问题,跨平台开发技术应运而生。
Flutter 作为一种新的跨平台开发技术,凭借着其高性能、跨平台、易于开发等优势,受到了越来越多的开发者的青睐。闲鱼作为阿里巴巴集团旗下的闲置物品交易平台,也在积极探索Flutter技术在移动端开发中的应用。
技术选型
在对闲鱼IM进行跨端改造之前,我们首先需要对现有的跨平台开发技术进行评估。目前主流的跨平台开发技术有:
- React Native :由Facebook开发的一款跨平台开发框架,使用JavaScript语言编写。
- Xamarin :由微软开发的一款跨平台开发框架,使用C#语言编写。
- Flutter :由谷歌开发的一款跨平台开发框架,使用Dart语言编写。
经过综合比较,我们最终选择了Flutter作为闲鱼IM跨端改造的技术方案。主要原因如下:
- 高性能 :Flutter采用Skia图形引擎,可以提供媲美Native应用的性能。
- 跨平台 :Flutter可以同时支持iOS和Android平台,只需要编写一套代码即可。
- 易于开发 :Flutter使用Dart语言编写,Dart语言是一种易于学习和使用的语言,并且Flutter提供了丰富的开发工具和组件。
技术实践
在对闲鱼IM进行跨端改造过程中,我们遇到了许多技术难题。其中,最主要的技术难题是如何在Flutter中实现IM功能。IM功能是闲鱼IM的核心功能,主要包括消息发送、消息接收、消息存储、消息搜索等功能。
为了实现IM功能,我们首先需要在Flutter中实现一个IM SDK。IM SDK是一个提供IM功能的软件开发包,可以帮助开发者快速集成IM功能到自己的应用中。目前,市面上已经有不少成熟的Flutter IM SDK,我们可以直接使用这些SDK来实现IM功能。
在选择Flutter IM SDK时,我们需要考虑以下因素:
- 功能完整性 :IM SDK需要提供完整的IM功能,包括消息发送、消息接收、消息存储、消息搜索等功能。
- 性能 :IM SDK的性能需要足够高,才能保证IM功能的流畅运行。
- 易于使用 :IM SDK需要易于使用,才能降低开发者的学习成本。
经过综合比较,我们最终选择了 RongCloud Flutter SDK 作为闲鱼IM跨端改造的IM SDK。RongCloud Flutter SDK 功能完整、性能高、易于使用,非常适合闲鱼IM的跨端改造需求。
在集成 RongCloud Flutter SDK 时,我们也遇到了许多问题。其中,最主要的问题是消息存储问题。在Native开发中,我们可以直接使用SQLite等数据库来存储消息。但是在Flutter中,我们无法直接使用SQLite等数据库,因为Flutter没有提供对SQLite等数据库的支持。
为了解决消息存储问题,我们最终采用了云端存储的方式来存储消息。云端存储的好处是,可以实现跨平台的消息存储,并且可以降低数据库的维护成本。
经验总结
在对闲鱼IM进行跨端改造过程中,我们总结了一些经验。这些经验可以帮助其他团队在进行跨端改造时少走弯路。
- 选择合适的跨平台开发技术 :跨平台开发技术有很多种,我们需要根据自己的实际情况来选择合适的跨平台开发技术。
- 充分利用跨平台开发框架的优势 :跨平台开发框架提供了许多优势,我们可以充分利用这些优势来提高开发效率。
- 注意跨平台开发框架的不足之处 :跨平台开发框架也存在一些不足之处,我们需要注意这些不足之处,并采取相应的措施来弥补这些不足之处。
- 做好跨平台开发框架的性能优化 :跨平台开发框架的性能可能不如Native应用,我们需要做好跨平台开发框架的性能优化,以保证应用的流畅运行。
结语
通过使用Flutter对闲鱼IM进行跨端改造,我们成功地将闲鱼IM从Native应用移植到了Flutter应用。Flutter跨端改造成功后,闲鱼IM的开发效率得到了大幅提升,开发成本也得到了大幅降低。同时,闲鱼IM的跨平台支持性也得到了增强,现在闲鱼IM可以同时支持iOS和Android平台。
Flutter跨端改造闲鱼IM的成功实践,为其他团队的跨端改造工作提供了宝贵的经验。我们相信,随着Flutter技术的不断成熟,Flutter将成为越来越多的企业进行跨端改造的首选技术。