首页 文章

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

提问于
浏览
12

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

有人可以向我解释或给我提供很好的资源,特别是关于用例吗?

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

免责声明:我可能会完全混合它们并且它们之间没有任何关系,因为我很丢失 .

3 回答

  • 31

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

    The Three Classes of Hybrid Apps

    • 混合通过Webview

    • 混合通过交叉编译

    • 混合通过JavaScript Core


    注意:我确信上面有更好的名字,但这是我现在最好的 .


    混合通过Webview

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

    混合通过交叉编译

    这些例子是Appcelerator's TitaniumXamarin . 这些应用程序通过将原生api抽象为通用语言来解决混合问题 . 对于Titanium,该语言是JavaScript . 对于Xamarin,该语言是C# . 因此,要在Xamarin中编写Android,iOS,Windows和桌面应用程序,您需要依赖于它们的抽象 . 如果有's a bug in their abstraction layer, you'卡住......直到他们修复它 .

    混合使用JavaScript Core

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

    有用的资源

  • 0

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

    Front-end components

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

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

    例子

    Ionic

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

    • 支持材料设计

    • 利用Cordova为iOS,Android,Windows Phone等原生设备平台 .

    Framework 7 :

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

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

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

    JQuery Mobile

    • 所有移动框架的爷爷

    • jQuery Mobile不会尝试制作看起来像Android或iOS的应用程序 . 相反,它的目的是帮助开发在所有移动浏览器上同样运行良好的Web应用程序

    Back-end components

    Cordova (原名PhoneGap)

  • 1

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

    • 与原生相比,用户体验非常接近但不等于

    • 本机平台更新和功能将等待框架更新

    • 如果你需要延长,在大多数情况下可能会很痛苦

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

    有关更多信息,请访问https://github.com/bfortunato/aj-framework这是完全开源的 .

相关问题