DOM应用的CocoonJs vs Phonegap,或者选择Canvas和CocoonJs



我正准备开发一个儿童读物应用程序。它将涉及许多插图和一些动画菜单,但就动画而言,没有什么比电子游戏更疯狂的了。我试图确定是否使用Phonegap和DOM或CocoonJs和Canvas。

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

我的DOM测试应用程序在移动浏览器上运行良好,但由于苹果该死的开发者费用,我无法在iPad或iPhone的Phonegap上测试它。

有没有人有过类似这类项目的经验?我正在考虑用Canvas来做,只是为了学习经验。但如果有人有任何强烈的建议,你能让我知道你的想法吗?

谢谢大家!

还可以考虑Famo。它比CocoonJS更受欢迎,也有更强大的展示空间。以下是我的见解:

<标题> PhoneGap h1> 得住的,自由/开源软件。有很多资源。大量的插件,虽然是不同的和随意维护。例如,IAP和广告(很可能是插件)并不是核心内容,而是单独维护的。不关注性能,只关注x平台兼容性。
  • Pro: Popular, tried
  • 职业:自由/开源软件
  • 缺点:没有性能焦点
  • 缺点:插件user-land质量不稳定
<标题> CocoonJS h1> 个Cordova包装器(PhoneGap是),通过它的Webview+或Canvas+插件增加性能优化。Canvas+是针对HTML5 Canvas游戏的,所以它并不适合你。Webview+基本上是一个打包的chrome最新版本,在Android版本上有更好的性能,不使用它作为默认浏览器(默认浏览器是Cordova上用于Webview的)。它不适用于Android <4,它们只会使用默认的webview。我实际上已经尝试过使用Webview+部署一个Cocoon应用程序,但我没有注意到性能的提高。要么(a)我需要做一些调整,要么(b)"性能改进";(air-quotes)。此外,它还拥有适用于iOS和Android的标准化插件:Facebook,广告,应用内购买(以及更多,但这是我们需要的3个)。在PhoneGap领域,这3个是6个独立的仓库(每个平台一个),由6个不同的开发人员维护——而且并不总是维护得很好。另一方面,我一直在阅读Cocoon溢价(需要使用他们的扩展)是$$$…像50美元/m左右。
  • Pro:理论上更好的性能
  • Pro:统一的插件体验(广告,facebook, IAP) -最大的优势IMO
  • 反对:价格
<标题> Famo.us h1> 理解Famo的方式。我们:它类似于Cocoon的Canvas+。打包一个高性能的webview来提高动画/画布的性能。它有自己的基于js的DSL来构建你的应用。CocoonJS,你只需要构建一个标准的HTML/CSS/JS web应用程序(允许与其他项目共享代码),Famo。us有自己的JS框架来构建应用程序。它有一个非常强大的展示:AirBnB, Yelp等使用Famo.us。
  • 职业:性能
  • 职业:自由?
  • Pro:强大的展示(Yelp, AirBnB)
  • 缺点:不是普通的web开发(不像CocoonJS,它允许你按原样放入PhoneGap应用程序)

我个人建议(针对你的情况)探索Cocoon的Webview+设置。

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>

如果你在canvas中这样做,你可以稍后决定是使用PhoneGap还是CocoonJS。

我个人认为你的项目不需要使用CocoonJS,尽管这样做没有什么坏处。

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

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

这是我为我的孩子做的一个canvas/PhoneGap项目,作为参考。

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

如果您选择画布路线,您可能还希望考虑(开源)ejecta:

http://impactjs.com/ejecta

最新更新