返回

携程RN工程化实践:引领大规模应用跨平台开发新潮流

前端

在移动互联网时代,企业需要快速推出新产品和服务以满足不断变化的市场需求。然而,传统的移动开发需要针对不同的平台分别进行开发,这不仅增加了开发成本和周期,而且难以保证应用在不同平台上的统一性和一致性。

为了解决这些问题,近年来跨平台开发技术兴起,React Native(简称RN)作为一种流行的跨平台开发框架,凭借其优秀的开发体验和跨平台性能,得到了广泛关注。

携程作为国内领先的在线旅行服务提供商,拥有庞大的业务体量和复杂的业务场景。为了应对日益增长的移动开发需求,携程于2018年初组建了RN技术团队,并于同年年中正式启动了RN工程化项目。

携程RN工程化项目的主要目标是构建一套完善的RN开发框架,以支持携程大规模业务应用的跨平台开发。经过近一年的努力,携程RN工程化团队成功研发了CRN框架(携程React Native框架),并将其应用到了携程的多个核心业务场景中。

CRN框架的开发背景

随着携程业务的快速发展,移动端应用的数量和复杂度不断增加,传统的移动开发模式已难以满足业务需求。为了解决这些问题,携程决定引入RN跨平台开发技术。

然而,RN本身存在一些问题,如:

  • 开发效率低:RN的开发效率低于原生开发,尤其是对于复杂应用,RN的开发效率会更低。
  • 性能不佳:RN的性能不及原生应用,尤其是在一些对性能要求较高的场景中,RN的性能会成为瓶颈。
  • 生态不完善:RN的生态不完善,一些常用的原生库没有对应的RN实现,这会增加RN开发的难度。

为了解决这些问题,携程RN工程化团队对RN进行了二次开发,并研发了CRN框架。

CRN框架的设计理念

CRN框架的设计理念是:

  • 兼容性:CRN框架与RN兼容,这意味着开发者可以轻松地将RN项目迁移到CRN框架上。
  • 性能优化:CRN框架对RN进行了性能优化,使RN应用的性能更接近原生应用。
  • 生态完善:CRN框架提供了丰富的原生库封装,使开发者可以轻松地使用原生库开发RN应用。
  • 易用性:CRN框架提供了友好的开发体验,使开发者可以快速上手RN开发。

CRN框架的核心技术

CRN框架的核心技术包括:

  • CRN Runtime:CRN Runtime是CRN框架的核心组件,它负责管理RN应用的生命周期,并提供各种原生服务。
  • CRN Bridge:CRN Bridge是CRN框架与RN的桥梁,它负责将RN的JavaScript代码转换成原生代码,以便在原生平台上执行。
  • CRN Native Modules:CRN Native Modules是CRN框架提供的原生库封装,使开发者可以轻松地使用原生库开发RN应用。
  • CRN DevTools:CRN DevTools是CRN框架提供的开发工具,它可以帮助开发者调试RN应用。

CRN框架在携程业务场景中的应用实践

CRN框架已在携程的多个核心业务场景中得到了应用,包括:

  • 酒店预订:CRN框架被用于开发携程酒店预订App,该App已上线运行,并获得了良好的用户反馈。
  • 机票预订:CRN框架被用于开发携程机票预订App,该App已上线运行,并获得了良好的用户反馈。
  • 旅游度假:CRN框架被用于开发携程旅游度假App,该App已上线运行,并获得了良好的用户反馈。
  • 门票预订:CRN框架被用于开发携程门票预订App,该App已上线运行,并获得了良好的用户反馈。

CRN框架的应用实践证明,CRN框架能够满足携程大规模业务应用的跨平台开发需求,并为业务的快速迭代提供了强有力支持。

结论

携程RN工程化实践取得了显著成效,CRN框架已在业务团队中广泛使用,为业务的快速迭代提供了强有力支持。对于规模化业务开发团队,使用RN作为跨平台开发的解决方案,是切实可行的选择。2019年,携程将根据开发资源情况,适时开源CRN框架的部分模块。