最近单位里领导需要进行app的开发,但是你们都懂得,小公司又不愿意同时招聘两个人进行android和ios的开发,其实通过网上的一番搜查,很多观点都是直接两人分别用原生开发app是最省事的做法,同时也能保证了产品的效果达到最好。
目前市面上双端开发的框架技术很多很多,而且其中不少不仅仅是针对android和ios的,还是兼容桌面和微信支付宝小程序等等,甚至不乏兼容嵌入式系统的,但是相信不少框架为了保证兼容性,肯定会以单平台上的性能作为牺牲,所以,下面筛选的框架主要以能在安卓和苹果端运行为主。
通过阅读其他作者的文章,框架虽多,原理不外乎下面4种:
①.Web:利用原生的webview容器,基于 Web 相关技术来实现界面及功能
②.代码转换:将某个语言转成 Objective-C、Java,然后使用不同平台下的官方工具来开发
③.编译:将某个语言编译为二进制文件,生成动态库或打包成 apk/ipa/xap 文件
④.虚拟机:通过将某个语言的虚拟机移植到其他平台上运行
上面所说的代码转换在国内的使用者微乎其微,所以下列表格中也就没有了这类框架的身影:
名称 | kotlin/native | Flutter | react native | weex | kivy | xamarin | PhoneGap | ionic | quasar | jQuery Mobile |
开发 语言 |
kotlin | Dart | JavaScript | JavaScript | Python | c# | HTML5/CSS3 JavaScript |
HTML5/CSS4 JavaScript |
HTML5/CSS5 JavaScript |
JavaScript |
引擎 | Flutter engine | JSCore | JS V8 | Python | 无 | 无 | 无 | 无 | 无 | |
框架 | React | vue | kivy | mono | Cordova | AngularJS | vue | jQuery | ||
原理 | ④ | ④ | ④ | ④ | ③ | ① | ① | ① | ① | |
优势 特点 |
原生开发 完全兼容Java |
google自研引擎 热加载,见效快无须编译,界面设计灵活,性能强 |
支持热更新,快速迭代 社区活跃,基本坑点都能解决 |
单页开发模式效率极高 热更新发包体积小 |
於OpenGL ES 2,GPU加速 |
基本功能全部都有 对 Windows Phone 支持 |
多个平台都适用 基本功能完全具备,对于底层,如摄像头之类的,需要插件 复杂交互仍需要原生开发 |
|||
缺点 | 不支持热更新 三方库很少,需要自己造轮子 dart语言的开发者很少 |
开源库质量参差不齐 运行时的初始化太慢,首次渲染时间慢 调试困难,JSCore 在 iOS / Android 上不一致,很难调试 |
社区不活跃,文档相对不全 托管apache,普遍不看好 |
中文资料少 | 相关资源太少 | 性能相对差 每当平台发布新API,框架需要封装后才有,存在功能缺失 复杂交互仍需要原生开发 |
||||
发布时间 | 2017 | 2017 | 2015 | 2016 | 2012 | 2011 | 2011 | 2015 | 2016 | 2010 |
支持平台 | Android、iOS | Android、iOS、more | Android、IOS | Android、IOS、Web | 多平台 | 多平台 | 多平台 | 多平台 | 多平台 | 多平台 |
厂家 | JetBrains | Alibaba | Kivy | MicroSoft | adobe | ionic | Quasar | JQUERY | ||
案例 | Coursera | 美团 | 京东 | 天猫 |
Excellent article! We will be linking to this great article on our site. Keep up the great writing. Sonia Pryce Figge