iOS原生与跨平台开发

目录

1、JavaScriptCore 系统原生交互框架

2、React Native 框架的优势

3、Flutter 框架的优势

4、如何选择适合自己的跨端方案?

1、JavaScriptCore 系统原生交互框架

总结来说,JavaScriptCore 提供了前端与原生相互调用的接口,接口层上主要用的是 JSContext 和 JSValue 这两个类,【通过 JSValue 的 evaluateScript 方法、Block 赋值 context、JSExport 协议导出来达到互通的效果】

前端的优势在于快速编写 UI,原生的优势在于对平台特性的天然支持,现在我们有了能够打通前端和原生的武器,就可以充分利用二者的优势,互为补充地去做更多、更有意思的事儿。而你,也可以充分发挥自己的想象力,去实现更有意思的 App。


2、React Native 框架的优势

React Native 使用 JavaScript 语言来开发,Flutter 使用的是 Dart 语言。这两门编程语言,对 iOS 开发者来说都有一定的再学习成本,而使用何种编程语言,其实决定了团队未来的技术栈。JavaScript 的历史和流行程度都远超 Dart ,生态也更加完善,开发者也远多于 Dart 程序员。所以,从编程语言的角度来看,虽然 Dart 语言入门简单,但从长远考虑,还是选择 React Native 会更好一些。同时,从页面框架和自动化工具的角度来看,React Native 也要领先于 Flutter。这,主要得益于 Web 技术这么多年的积累,其工具链非常完善。前端开发者能够很轻松地掌握 React Native,并进行移动端 App 的开发。


3、Flutter 框架的优势 (官方文档 https://docs.flutter.dev)

除了编程语言、页面框架和自动化工具以外,React Native 的表现就处处不如 Flutter 了。总体来说,相比于 React Native 框架,Flutter 的优势最主要体现在性能、开发效率和体验这两大方面。Flutter 的优势,首先在于其性能。

React Native 所使用的 JavaScriptCore, 原本用在浏览器中,用于解释执行网页中的 JavaScript 代码。为了兼容 Web 标准留下的历史包袱,无法专门针对移动端进行性能优化。Flutter 却不一样。它一开始就抛弃了历史包袱,使用全新的 Dart 语言编写,同时支持 AOT 和 JIT 两种编译方式,而没有采用 HTML/CSS/JavaScript 组合方式开发,在执行效率上明显高于 JavaScriptCore 。除了编程语言的虚拟机,Flutter 的优势还体现在 UI 框架的实现上。它重写了 UI 框架,从 UI 控件到渲染,全部重新实现了,依赖 Skia 图形库和系统图形绘制相关的接口,保证了不同平台上能有相同的体验。

除了性能上的优势外,Flutter 在开发效率和体验上也有很大的建树。凭借热重载(Hot Reload)这种极速调试技术,极大地提升了开发效率,因此 Flutter 吸引了大量开发者的眼球。同时,Flutter 因为重新实现了 UI 框架,可以不依赖 iOS 和 Android 平台的原生控件,所以无需专门去处理平台差异,在开发体验上实现了真正的统一。此外,Flutter 的学习资源也非常丰富。Flutter 的官方文档,分门别类整理得井井有条。YouTube 上有一个专门的频道,提供了许多讲座、演讲、教程资源。


4、如何选择适合自己的跨端方案?

1> 跨端方案不是只有 Rect Native 和 Flutter,还有小程序、快应用、Weex 等框架。没错,跨端方案确实有非常多。

2> 未来

着眼未来,决定跨端方案最终赢家的关键因素,不是编程语言,也不是开发生态,更不是开发者,而是用户。如果谷歌的新系统 Fuchsia 能够如谷歌所计划的五年之内应用到移动端的话,那么五年后即使使用 Fuchsia 的用户只有 10%,你的 App 也要去支持 Fuchsia。Fuchsia 系统的最上层就是 Flutter,这时使用 Flutter 来开发 App 就成了首选。而 Flutter 本身就是一种跨端方案,一旦使用 Flutter 开发成为团队的必选项,那么其他技术栈就没有存在的价值了。

所以,跨端技术方案的赢家是谁,最终还是要看使用移动设备的用户选择了谁,就好像游戏机市场中的 Nintendo Switch 和 PlayStation Vita。PlayStation Vita 在硬件、性能、系统各方面都领先 Nintendo Switch,但最终游戏开发者还是选择在 Nintendo Switch 上开发,而这其实都取决于购买游戏机的玩家。当 Nintendo Switch 成为了流行和热点以后,所有的游戏开发者都会跟着它走。虽然我们不能决定未来,但我们可以去预测,然后选择一款大概率会赢的跨端框架,以此来奠定自己的竞争力。

你可能感兴趣的:(iOS原生与跨平台开发)