3

我正准备开发儿童读物应用程序。它将涉及大量插图和一些动画菜单,但就动画而言,没有什么比视频游戏更疯狂了。我正在尝试确定是使用 Phonegap 和 DOM 还是 CocoonJs 和 Canvas。

我一直在阅读,Phonegap 可以减慢在普通移动浏览器中运行良好的 DOM 应用程序的速度,而 CocoonJs 会加快 Canvas 中构建的应用程序的速度。但后来我也读到 CocoonJs 现在有了一些新的东西,可以在一定程度上支持 DOM 元素。

我的 DOM 测试应用程序在移动浏览器中运行良好,但我无法在我的 iPad 或 iPhone 上的 Phonegap 中测试它,因为苹果公司该死的开发人员费用。

有没有人有任何接近这种项目的经验?我正在考虑在 Canvas 中这样做只是为了学习经验。但是,如果有人有任何强烈的建议,你能告诉我你的想法吗?

非常感谢你们!

4

4 回答 4

9

还可以考虑 Famo.us,它比 CocoonJS 更受欢迎并且展示能力更强。以下是我的见解:

电话间隙

久经考验,FOSS。很多资源。大量的插件,虽然不同且随意维护。例如,IAP 和广告 - 很可能是插件 - 不在核心中,单独(并且几乎没有)维护。不关注性能,只关注 x 平台兼容性。

  • 优点:流行,尝试过
  • 亲:自由源码软件
  • 缺点:没有性能重点
  • 缺点:插件用户领域的质量不稳定

茧JS

一个 Cordova 包装器(就像 PhoneGap 一样),它通过它的 Webview+ 或 Canvas+ 插件增加了性能优化。Canvas+ 适用于 HTML5 画布游戏,因此不适合您。Webview+ 基本上是一个打包的 Chromium 最新版本,以便在不将其用作默认浏览器的 Android 版本上获得更好的性能(默认浏览器是 Cordova 上用于 webview 的浏览器)。它不适用于 Android <4,它们只会使用默认的 webview。我实际上尝试过使用 Webview+ 部署 Cocoon 应用程序,但我没有注意到性能改进。要么(a)我需要做一些调整,(b)“性能改进”(空中报价)。此外,它还有适用于 iOS 和 Android 的标准化插件:Facebook、广告、应用内购买(以及更多,但我们需要这 3 个)。在PhoneGap的土地上,这 3 个是 6 个独立的存储库(每个平台 1 个),由 6 个不同的开发人员维护 - 并且并不总是得到很好的维护。另一方面,我一直在读到 Cocoon 溢价(需要使用他们的扩展)是 $$$ ......就像 $50/m 左右。

  • 优点:理论上更好的性能
  • Pro:统一的插件体验(广告、Facebook、IAP)——最大的专业 IMO
  • 缺点:价格

著名的

我理解 Famo.us 的方式:类似于 Cocoon 的 Canvas+。打包高性能 webview 以提高动画/画布性能。它带有自己的基于 JS 的 DSL,用于构建您的应用程序。也就是说,与 PhoneGap 和 CocoonJS 不同,您只需构建标准的 HTML/CSS/JS Web 应用程序(允许与您的其他项目共享代码),Famo.us 有自己的 JS 框架来构建应用程序。它有一个非常强大的展示:AirBnB、Yelp 等使用 Famo.us。

  • 优点:性能
  • 亲:免费?
  • 优点:强大的展示(Yelp、AirBnB)
  • 缺点:不是普通的 web 开发(不像 CocoonJS,它可以让你直接放入你的 PhoneGap 应用程序)

我个人建议(根据您的情况)探索 Cocoon 的 Webview+ 设置。

于 2014-06-19T22:11:14.983 回答
4

如果你想在移动端有一个好的性能,CocoonJS 非常棒,你也可以通过调用一个特定的函数来使用 CocoonJS 中的 WebView,如下所示:

<html>
<body>
    <script src="CocoonJSExtensions/CocoonJS.js"></script>
    <script src="CocoonJSExtensions/CocoonJS_App.js"></script>
    <script src="CocoonJSExtensions/CocoonJS_App_ForCocoonJS.js"></script>
    <script>
        CocoonJS.App.onLoadInTheWebViewSucceed.addEventListener(function(pageURL) {
            // Show the webview. By default, the webview is hidden.
            CocoonJS.App.showTheWebView();
        });

        CocoonJS.App.onLoadInTheWebViewFailed.addEventListener(function(pageURL) {
            console.error("Could not load the HTML file in the webview");
        });

        CocoonJS.App.loadInTheWebView("webview_index.html");
    </script>
</body>

于 2013-06-05T07:01:08.537 回答
3

如果您在画布中执行此操作,您可以稍后决定是否要使用 PhoneGap 或 CocoonJS。

就我个人而言,我不认为您的项目会阻止使用 CocoonJS,尽管这样做并没有什么坏处。

CocoonJS 的优势包括接近原生的性能。缺点是还没有发布他们的定价模型——我相信它目前是免费的,但你有一个强制性的 CocoonJS 启动画面。

至于 dom vs canvas:取决于你的项目。我个人更喜欢画布,因为如今在移动大量物体时它通常更快。但话说回来,你的项目听起来很静态;在这种情况下,您可能需要考虑 dom(那里也有相当多的 dom 页面翻转教程)。

这是我为我的孩子们做的一个画布/PhoneGap 项目作为参考。

附带说明:您应该能够通过 Xcode 的模拟器使用 PhoneGap 测试您的应用程序。

于 2013-06-06T19:50:16.273 回答
2

如果您要使用画布路线,您可能还希望考虑(开源)弹出:

http://impactjs.com/ejecta

于 2013-09-20T20:09:30.897 回答