在聚划算iOS平台的动态化方案中,LuaView扮演了关键角色,以解决业务特点和技术挑战。首先,让我们深入了解聚划算的业务场景和需求。
聚划算作为阿里巴巴集团的重要业务平台,其App(包括俪人购和淘抢购)承载着多个垂直业务,如大牌折扣、聚名品、全球精选、量贩团和聚家装等。这些业务对用户体验有着极高的要求,同时也带来了开发效率和运维成本的挑战。原有的技术栈主要包括Native、Swift、Java、ObjC/C/C++以及H5、JavaScript和CSS,每个技术栈都有其优缺点,例如Native提供良好的性能但开发成本高,而H5和混合开发则相对灵活但体验较差。
面对这些挑战,聚划算提出了动态化的需求,目标是兼顾资深开发者的工作效率和新入职工程师的学习曲线,同时追求与Native相似的用户体验。他们期望通过DSL(领域特定语言)提升业务建模的高级性,实现跨平台开发,降低运维成本,并且能够实现动态发布,方便快速响应市场变化。
过去,聚划算尝试过使用JSON2Native进行信息架构和运营资源位的动态化,以及H5技术应对快速发展中的垂直频道。然而,这些方法在某些情况下无法满足动态发布的需求,因此转向了LuaView。
LuaView是一个关键的动态化解决方案,它允许在iOS和Android平台上运行Lua脚本,这种脚本不仅用于初始化控件和处理事件,还提供了跨平台的一致性,不受版本限制,使得开发者可以实时更新应用。LuaView有两种理解方式:微观上,它是运行Lua脚本的View,负责控件的初始化和事件处理;宏观上,它是一种灵活的开发方案,支持动态化原则,避免在脚本层过度扩展,选择合适的虚拟机技术实现。
具体技术实现方面,LuaView采用了虚拟机技术来执行Lua代码,这使得它能够在不牺牲性能的前提下,实现代码复用和快速迭代。通过LuaView,聚划算得以在满足高效开发和运维需求的同时,推动了业务的持续优化和创新。
LuaView在聚划算iOS平台的动态化过程中扮演了核心角色,通过跨平台、高性能的脚本运行环境,有效地解决了业务特点带来的技术难题,提升了开发效率和用户体验,是推动其移动应用持续发展的关键工具。