Ali-Wax使用和源码解析系列-Wax的集成和调试环境搭建

那些多余的话

在ios平台的基础框架中,代码的直接动态部署一直是一个无法解决的问题,所以我们只能退而求其次,通过建立脚本语言和OC的bridge来实现动态更新的目标。在这个方向上,wax-lua框架是第一个解决方案,但是随着wax-lua作者的放弃维护,wax框架逐渐被降级为做补丁修复的工具。之后随着objc语言的完善和SDK中JavaScriptCore(webkit)framework api的开放,另外一种脚本语言js以一种更为被苹果认可的姿态进入了这个方向,先有国外FaceBook发布的ReactNative框架,让更多的前端开发者可以通过js语言完成可以毗邻native效果的app,后有国内腾讯的bang开源JSPatch,专注于ios平台Patch修复。

本人最近一直在维护公司内部的的wax框架,也一直在探索ios热更新方向上的新技术。先是wax框架的兼容64位维护,wax框架集成到产品后多个组件交叉使用runtime的bug修复;再是探索Tianium跨平台JS框架;再到FaceBook出品开源的ReactNative框架;再到最后的JSPatch… 这些框架的源码和Demo我都有涉及,从希望到失望…首先是自己维护的wax框架稳健性不够,特别是通过AOP+forward兼容64位后bug频现,用作patch热更新尚且能够应付,但是想用来做组件动态部署成熟度还不够。其次Tianium框架,关于jscore部分没有开源不敢用,另外其bind oc api部分需要时刻跟进新版本的SDK是一个low点。 再其次是ReactNative框架,源码我没有怎么看,但是我写了一个稍微复杂的页面,当图片在同一个页面加载较多的时候,卡顿的现象特别明显,让我对js的效率产生了深深的怀疑。 JSPatch同样是利用了forward消息转发机制完成了js和oc的bind,但是社区和框架成熟度仍然不够。

最近阿里开源了增强版的wax框架,我连续看了两天源码,对其增强部分的实现有了一个大致的了解,也让我对lua-bind的方案有了很大的信心。之前受Andfix android平台热更新框架思路的影响,自己很想在这条路上再继续折腾一番:如果能够把OC代码通过一个转换器转化成lua代码,ios平台的准直接动态部署应该是可以实现的。 所有的开发人员仍然用自己最熟悉的objc开发需求,测试和发版,比较版本代码的不同可以让低版本的产品用户使用高版本的功能。我们可以不按照版本发布,转而按照模块开发,所有的新需求和新运营方案都可以在不发版的情况推送给用户。

Ali-Wax简介

代码地址:https://github.com/alibaba/wax.git

wax-lua 的语言优势:

  • (1)自动垃圾回收:再也不用使用alloc,retain和release;
  • (2)代码少:没有头文件,没有static类型、array常量、dictionary常量;
  • (3)能够使用任何一个framework,例如co
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值