hybrid常用来形容App混合框架。
什么是App混合框架呢?
- 为了加快开发效率(节省人员、时间成本);
- 为了快速更新(控制用户终端版本),使用H5+JavaScript 替代native开发的技术。
目前混合框架都有哪些呢?
目前常见的混合框架大概可归纳为两个流派。
- H5+原生部分,使用webview实现自定义约定交互。 常见框架有:
- Adobe PhoneGap–Apache cordova https://cordova.apache.org/ 打包资源成apk/ipa,有插件库供开发者使用,也可自行开发交互插件。
2011年10月4日Adobe公司收购了PhoneGap和PhoneGap Build的新创公司Nitobi Software,随后将Phonegap的核心代码剥离并捐给了Apache公司,并改名为了Cordova。
- ionic http://ionicframework.com/ 可以认为是cordova的一个封装版本,基于angularjs语法开发,使用cordova进行编译;ionic native是ionic团队使用TypeScript,ES6+重写的常用插件,统一了语法和代码规范。
- apicloud http://www.apicloud.com/ 国内厂商,集成了自己的插件库,编辑器,上传分发平台。
- dcloud mui http://dev.dcloud.net.cn/mui/
- meteor https://www.meteor.com/
- 使用JavaScript开发,通过定义更强的约束规则,使用编译工具编译或解析为Native代码进行执行。运行时为原生代码,避免了webview内存泄露、绘制掉帧的情况,提高了渲染和交互性能。
也有说法认为这种情况不属于hybrid范畴,但从广义上讲,又何尝不是一种混合开发呢。
常见框架有:
- Facebook ReactNative https://github.com/facebook/react-native/ 大厂出品,粉丝众多,文档全。但存在这通用性差的缺点,RN无法用于M站,Android/iOS也需要单独的js进行维护,似乎为了解决性能问题,又违背了混合开发节省人力的初衷(节省了客户端开发,但又增加了前端开发,尴尬的由 write once,run anywhere 变成了Learn once,write anywhere)。
- 微信小程序 官方文档 自定义WXML、WXSS、JSSDK的强约束H5子集,便于解析对照。如果能开源并推广行业标准,可能会更热。因为只服务于微信,估无RN write anywhere的尴尬。
随着前端技术的蓬勃发展,很快就会出现各类命名的混合框架,到时候我在再更新吧。
进入正题,那这个框架又是什么呢?
简单的说是平民、低配版混合开发框架,实现了约定契约,自定义交互,平台化打包、差异化发布、撤回,监控反馈用户更新状态、版本使用情况等功能。(说的那么高端还平民?嗯,看代码就知道了。)
优点:
- 万金油的H5适配(font-size + rem)
- 学习曲线低,搭配angularjs/vue实现前端mvvm快速绑定;
- 全流程断点,无商业利益的封装和限制,有断点才放心嘛;
- 成本低廉,不形容了,自行体会。
万金油的H5适配(font-size + rem)
关于适配是前端兼容的一大考验,这不今天是 iphone X [读:ten] 的发布日,苹果又出了新手机新分辨率,不出意外这次也是只需要修改部分就能兼容啦。 这种万金油的适配,在BATJ也都在使用,优质的完成了高度还原视觉稿的任务~
今天先写到这里。
TODO:
- 如何搭建
- 如何使用
- 如何自行封装约定
- 原理解释及坑坑洼洼
感谢“不是绵羊,是羊驼”(AlpacaNotSheep) 组织各成员的辛苦贡献。