本文转载自:众成翻译
译者:文蔺
连接:http://www.zcfy.cc/article/861
原文:http://www.telerik.com/blogs/hybrid-or-native-mobile-app-use-the-right-tool-for-the-job前端译者注:本文讲到的 hybrid & native 可能和咱们一般理解的略有差别。文中 native 部分主要讲到的是 NativeScript,这一点可能在一些开发者看来是有争议的。关于 NativeScript,想起来@前端外刊评论 有一篇文章《使用 NativeScript 和 Angular2 构建跨平台 APP》,能够参阅。web
移动应用开发,什么时候该用 hybrid,什么时候又该用 native?一块儿来学习它们的差别,看看哪款更适合你。apache
移动应用开发者的工具箱正在膨胀,比任何人期待的都更加多样化了。从像 Xcode 和 Android Studio 这样的纯原生 (pure native) 解决方案,到 Telerik NativeScript和 React Native 这样的原生 JavaScript 选项,再到 Kendo UI 和 Ionic 这样基于 web 的框架,开始App 开发比之前任什么时候候都容易。然而,随着可选项的增长,“选择悖论” (paradox of choice) 出现了 —— 咱们惊呆了,看不懂了,居然有如此多的可选项。咱们真正想要的是,更少的选择,更清晰的指南。在这篇文章中,我但愿能让您看清选择,为您指向一条康庄大道,建立成功的移动应用。浏览器
谈论移动应用开发的工具、服务,好比说Telerik Platform by Progress提供的那些,选择就变得简洁多了:app
想试试 hybrid ?咱们提供 Cordova/PhoneGap 开发,你可使用任何移动端 JavaScript 框架框架
想用 native ?咱们支持 NativeScript 开发(附带可选的 [Angular 2 集成])工具
使用 Telerik Platform,不须要 Mac,也不须要管理各类 SDK。你可使用到最佳的模拟、调试以及像消息推送、实时同步(LiveSync)、App Store发布等等服务。布局
个人同事 John Bristowe 在这篇博客中讲到了这个,其中有关于 hybrid 的全面解释。说得更清楚一点,Hybrid App 并非移动端网站!它是安装在设备本地的应用,但使用 Web 技术(HTML5, CSS,JavaScript)编码,在 WebView 中运行。WebView 是打包在移动应用中的浏览器。性能
Hybrid App 不管是看起来、感受起来仍是使用起来,都很像 Native App(多数状况下... 往下看)。它能够与设备的原生功能如地理定位、相机、通信录等等交互。任何没法使用的原生功能,一般都能用各类 Cordova 插件解决。学习
听起来真棒,是吧?来看看 hybrid 的更多优弱势:
彻底跨平台:编码一次,而后就能够构建 iOS、Android 和/或 Windows Phone 应用
代码复用:能够复制现有的大部分 Web App 代码,将其转换为移动 App
技能复用,学习曲线低:若是你有 JavaScript、HTML、CSS 相关知识的话,很快就能使用 Cordova 和移动 JavaScript 框架开发应用
减小开发时间和成本:由于上述有点,能够相对快速完成移动 App 开发并上线
感知性能问题: Hybrid App 在 WebView 中运行,因此会受到设备上 WebView 的性能的影响(尤为 Android 有一堆问题)
跨设备行为差别: WebView 在各平台(甚至不一样版本)上不同,须要额外调整并优化代码,确保 App 按照预期能在全部设备上运行
大量图形和过渡(heavy graphics and transitions)状况下的性能问题: WebView 在处理大量图形和过渡(特别是游戏和其余重 UI 的应用中)的时候,确定有各类问题
特定平台 UI 或特性须要额外开发:进军特殊平台的特性,一般须要额外编码,或者在某些情形下使用插件,甚至须要本身来建立插件
新版本平台支持缓慢:新版移动平台可使用的时候,在 Cordova 引入新版本及其特性的各类支持以前,须要等上几个月
Native App 是运行在设备本地的应用,使用的是真实的原生 UI 元素。不像 Hybrid App,Native App 无需牺牲性能,由于它运行在设备原生环境中!Native App 中没有 WebView 碍事了。 Native App 也能完整访问平台上全部可用的 API(因此没必要使用任何插件,虽然它们也有用)。
谈到 Native App,最好也是最简单的办法是使用免费、开源的 NativeScript 框架。
为何使用 NativeScript ?好吧,就像 hybrid 技术,它可让你使用所掌握和喜好的 Web 技能(CSS 和 JavaScript/TypeScript),同时使用咱们的插件如 Telerik UI for NativeScript 达到平滑、优雅的用户体验。
这听起来也挺好的吧? 也来看看 native 的优缺点细节:
跨平台:同 hybrid 同样,使用 NativeScript 建立的应用,同一套代码能够在 iOS 和 Android 上运行
代码复用:仍是同样,能够将许多 JavaScript 业务逻辑拷到 NativeScript 应用中(固然得视状况而定)
技能复用:若是你会 JavaScript 和 CSS,或者理解 XML(UI 标记)的概念,那你已经具有理解 NativeScript 的基础了
跨平台的原生 UI 和性能:由于应用使用的是原生组件,它们在任何地方都能跑起来
利用现有的原生库: NativeScript 提供包括 CocoaPods 这样的原生库的框架外支持
新特性无缝支持:新的移动操做系统版本可用的时候,NativeScript 立刻就能提供支持
相对较新: JavaScript Native 框架相对来讲仍是比较新,所以社区还在制造资源、拓展文档
更陡峭的学习曲线: Hybrid 让咱们使用 HTML,但 NativeScript 迫使咱们使用更多的原生应用概念如 原生 UI 元素。对不起,没有 div 了,可是 NativeScript 布局引擎理解起来很简单
这才是关键问题,对吧?若是你想开发移动应用,并且有得选择,而后 Telerik Platform 两种方案都支持,你会怎么选?这儿有一些问题是咱们听到人们在选择 hybrid 和 native 开发时的谈论的:
性能对我很重要 —— 若是体验很差客户才不会要!若是性能是关键(一般都这样),那就使用 NativeScript 吧。
我只想尽快上线应用。不须要完美,也不须要 100% 原生。须要快速开发打样 App?那 hybrid 可能最好的选择。NativeScript 很酷的一点是,你甚至能够直接从打样 App 中复制大部分业务逻辑,放到 NativeScript App 中(它们都是 JavaScript)。
我想让个人应用不会过期。我可等不及别人写插件或者更新框架。和最新的移动平台保持同步确实有点麻烦,这也是为什么 NativeScript 为各类新操做系统发布、API 升级提供快速支持。
我须要给个人应用建立一个 Windows Phone 版本!截至如今,Windows Phone 只支持 hybrid(不过 NativeScript 团队正在为此努力)。
如今开始,在 Telerik Platform 上开始免费试用吧。咱们为你提供即时可用的开发体验,众多关于 hybrid 和 native 的快速入门教程。祝你好运!