迷失在混合应用程序框架中,如Ionic,Cordova,

时间:2016-02-25 22:29:02

标签: cordova ionic-framework phonegap-plugins react-native hybrid-mobile-app

我目前在所有这些混合移动应用框架中迷失了方向。它们听起来都很棒,但我找不到任何关于用例和主要差异的真实信息。

有人可以向我解释一下,或者为我提供很好的资源,尤其是用例?

我知道这些:Apache Cordova,Ionic,PhoneGap,Steroids(AppGyver),Supersonic(AppGyver),React Native和新的Microsoft Ace(http://microsoft.github.io/ace/)。

免责声明:我可能会将它们完全混合在一起而且彼此之间没有任何关系,因为我已经迷失了。

3 个答案:

答案 0 :(得分:31)

我至少已经研究了这个话题至少几年了,并且一直想写一篇深思熟虑的博客文章,总结我所学到的东西,但它似乎永远不会达到我的优先级列表的首位。我将在这里提供一个简短的摘要。

三类混合应用

  1. 通过Webview进行混合
  2. 通过交叉编译的混合
  3. 通过JavaScript Core混合
  4.   

    注意:我确定上面有更好的名字,但这就是   最好我现在想出来。

    通过Webview进行混合

    通常,这些是您在上面提到的基于cordova(又名手机间隙)的应用,例如IonicTouchstoneJSMeteorAppGyver Steroids。事实上,如果我没记错的话,Steroids是建立在Ionic之上的。这些应用程序试图通过使用标准的基于Web的技术(html,css,javascript)模仿类似本机的组件(按钮,列表视图,抽屉布局,选项卡视图等)来解决混合问题。要访问设备本机组件,他们使用一个名为cordova的桥接器,它将javascript api暴露给本机组件,如摄像头,gps,位置,振动等。这是一个强大的社区,如果您需要访问本机组件, '很可能会找到一个满足您需求的cordova插件。这些类型的应用程序面临的挑战始终是性能。因为它们在WebView(基本上是没有chrome的全屏浏览器窗口)中呈现整个应用程序,所以它只有一个线程来呈​​现整个页面并执行任何动画等。最后,因为组件关闭,但不太像本机组件,并且因为性能接近,但不像本机性能那么光滑,这些应用程序往往落在神秘山谷的某个地方。他们看起来和感觉都合适,但他们从来都不是。

    通过交叉编译的混合

    这些示例包括Appcelerator's TitaniumXamarin。这些应用程序通过将原生api抽象为通用语言来解决混合问题。对于Titanium,该语言是JavaScript。对于Xamarin,该语言是C#。因此,要在Xamarin中编写Android,iOS,Windows和桌面应用程序,您可以使用它们的抽象(API)在C#中编写所有代码,然后将它们交叉编译为实际的本机应用程序。这些方法有正确的想法,但很多人会说它们在实际实施时不尽如人意。虽然使用Titanium的个人经验,我发现实际构建一个应用程序是非常痛苦的,因为你依赖于他们的抽象。如果他们的抽象层中存在错误,那么你就会陷入困境......直到他们修复它。

    通过JavaScript Core混合

    我所知道的只有两个例子,Facebook's React NativeTelerik's NativeScript。在我看来,这是移动应用程序开发的未来,如果我是你,那么我就会集中精力。这两种方法都试图类似地解决混合问题,因为在每种情况下,开发人员最终都会编写JavaScript来创建本机组件,但每种方法都采用了非常不同的方法。 React Native通过RCTBridgeModule将您的JavaScript转换为Native,而Native Script通过JavaScript Virtual Machines中的一些聪明技巧让您直接访问本机apis。我还没有使用过NativeScript,所以不知道它是多么成熟或高效。我安装了他们的示例应用程序,对我来说感觉有点迟钝。我认为其中一个最酷的价值主张是它真正让你100%访问本机API(令人兴奋!)。去年我和React Native进行了广泛的合作,我印象非常深刻。两者仍然很年轻,肯定会成熟。

    有用的资源

答案 1 :(得分:1)

通过Webview执行的混合应用程序内置于:

前端组件

(HTML / CSS / JavaScript),可让您编写一个看起来像本机app的HTML5应用程序。也称为HTML5移动UI框架

开发人员使用您已经知道的技术,即HTM5,CSS和JavaScript。

实施例

<强>离子

  • 包含高度移动优化的CSS HTML和js组件库,并使用Angularjs

  • 支持材料设计

  • 利用Cordova在iOS,Android,Windows Phone和其他平台上使用。

框架7:

  • 在iOS移动应用开发领域的混合应用框架中处于领先地位

  • Framework 7不支持构建跨平台混合应用程序

  • UI元素和事务接近本机IOS

JQuery Mobile

  • 所有移动框架的爷爷

  • jQuery Mobile不会尝试制作看似Android或iOS的应用。相反,它的目的是帮助开发在所有移动浏览器上同样运行的网络应用程序

后端组件

Cordova (原名PhoneGap)

答案 2 :(得分:0)

我对像本地反应这样的混合框架的个人经验是,说实话,它们很棒,但是......

  • 与原生
  • 相比,用户体验非常接近但不等于
  • 原生平台更新和功能将等待框架更新
  • 如果你需要延长,在大多数情况下可能会很痛苦

在我的公司,我们创建了一个框架,允许开发共享业务逻辑的混合应用程序,使用flux模式实现。 但是,用户界面完全是原生的。

有关详细信息,请访问https://github.com/bfortunato/aj-framework 它是完全开源的。