引子
人的命运啊,当然要靠自我奋斗,但有时有也要考虑历史的进程。在夜深人静的时候也会问自己,我一个 iOS 开发怎么就跑来写前端了?
起
承
使用 RN 的应用 Weex 使用的是 Vue Rexxar 执行过程 可能还有其他的解决方案,后面提到的三个, RN
、 Weex
、 Rexxar
原理都大同小异,在原生层的基础上嵌入 UIWebView
,通过各种 JavaScript
的配合完成与原生层的交互。总的来说,是比较传统意义上的混合开发,以原生层为基础,在上面迭代开发。但是一开始说的两个,Ionic
和 Xamarin
,这两个是与上面提到的三个截然不同,属于两个极端。
转
Ionic
作为一个完全基于前端技术的移动端跨平台解决方案,开发者几乎完全不需要写任何原生代码,表示层、业务逻辑层以及数据持久化层都是通过 HTML
、CSS
、AngularJS
实现的,比较适合一些小型的、业务逻辑简单、对原生 API 依赖较少的项目。
混合开发最让人担忧的可能就是性能问题了,上面提到的三种比较传统的混合开发在性能上虽然也不能与原生相匹敌,但是换取了更灵活的业务模式、更快速的开发效率、更多的代码复用、更便捷的 Bug
修复方式。而 Ionic
作为一个完全的异类,用于小型项目时性能可以匹敌原生的,但是 UI 确实跟原生差距很大,不过他们现在发布了二代,界面的效果应该有些提升,不过他们把 AngularJS V1
换成了 V2
,而 V2
版本,讲道理来说,相当于把 V1
重写了。哈哈哈。所以又加大了学习成本。不过,话说 AngularJS V2
版本长得更像 React
和 TypeScript
了。
合
在使用 JSPatch 的应用JSPatch 可以让你用 JavaScript 书写原生 iOS APP。只需在项目引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。
热更新是什么?它的概念类似于热插拔,让用户在不更新甚至不退出 App 的条件下,通过在后台更新代码达到修复 Bug 以及更新业务的目的。当然,这个也是通过 JS 完成的,不然也不叫 JSPatch
了。所以学好 JS 还是很有前途的,现在大概有几十种 JS 供你随心选择,要啥有啥,是不是很感动?