携程RN工程化实践:引领大规模应用跨平台开发新潮流
2024-01-06 09:16:27
在移动互联网时代,企业需要快速推出新产品和服务以满足不断变化的市场需求。然而,传统的移动开发需要针对不同的平台分别进行开发,这不仅增加了开发成本和周期,而且难以保证应用在不同平台上的统一性和一致性。
为了解决这些问题,近年来跨平台开发技术兴起,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框架的部分模块。