gpt4 book ai didi

iphone - Corona、Phonegap、Titanium的比较

转载 作者:行者123 更新时间:2023-12-03 18:07:36 24 4
gpt4 key购买 nike

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。








我是一名网络开发人员,我想将我的网络产品转移到 iPhone。其中一款产品类似于谷歌地图:在手机屏幕上显示 map ,您可以拖动 map 或调整 map 大小并查看我们添加到 map 中的一些信息。

我知道有一些技术可以让您使用 HTML、CSS 和 Javascript 来开发 native iPhone 应用程序。我已经确定了一些:

  • Ansca Mobile
  • PhoneGap
  • Appcelerator

  • 还有其他类似的产品吗?它们之间有什么区别?我应该选择哪个?

    最佳答案

    我注册 stackoverflow 只是为了评论最上面的投票答案。不好的是 stackoverflow 不允许新成员发表评论。所以我必须让这个评论更像是一个答案。

    Rory Blyth 的回答包含关于这两个 javascript 移动框架的一些有效观点。然而,他的关键点是不正确的。事实是,Titanium 和 PhoneGap 相似多于不同。它们都通过一组 javascript API 公开手机功能,并且应用程序的逻辑(html、css、javascript)运行在 native WebView 控件中。

  • PhoneGap 不仅仅是 Web 应用程序的 native 包装器。通过PhoneGap javascript API,“网络应用程序”可以访问手机功能,如地理定位、加速度计相机、联系人、数据库、文件系统等。基本上手机SDK提供的任何功能都可以“桥接”到javascript 世界。另一方面,运行在移动 Web 浏览器上的普通 Web 应用程序无法访问大多数这些功能(安全是主要原因)。因此,PhoneGap 应用程序更像是一个移动应用程序而不是一个网络应用程序。您当然可以使用 PhoneGap 来包装一个根本不使用任何 PhoneGap API 的 Web 应用程序,但这不是 PhoneGap 的创建目的。
  • Titanium 不会将您的 html、css 或 javascript 代码编译为“ native 位”。它们被打包为可执行包的资源,很像嵌入的图像文件。当应用程序运行时,这些资源被加载到 UIWebView 控件中并在那里运行(当然,作为 javascript,而不是 native 位)。没有 javascript-to-native-code(或 to-objective-c)编译器这样的东西。这在 PhoneGap 中也是以同样的方式完成的。从架构的角度来看,这两个框架非常相似。

  • 现在,它们有什么不同吗?是的。首先,通过将更多手机功能桥接到 javascript,Titanium 似乎比 PhoneGap 功能更丰富。最值得注意的是,PhoneGap 没有向 javascript 公开许多(如果有的话) native UI 组件。另一方面,Titanium 拥有全面的 UI API,可以在 javascript 中调用这些 API 来创建和控制各种原生 UI 控件。利用这些 UI API,Titanium 应用程序看起来比 PhoneGap 应用程序更“原生”。其次,PhoneGap 比 Titanium 支持更多的手机平台。 PhoneGap API 更通用,可用于不同平台,如 iPhone、Android、Blackberry、Symbian 等。 Titanium 至少目前主要针对 iPhone 和 Android。它的一些 API 是特定于平台的(如 iPhone UI API)。使用这些 API 会降低应用程序的跨平台能力。

    因此,如果您希望应用程序看起来更“原生”,那么 Titanium 是更好的选择。如果您希望能够更轻松地将您的应用“移植”到另一个平台,PhoneGap 会更好。

    2010 年 8 月 13 日更新:
    Link to a Titanium employee's answer to Mickey's question.

    2010 年 4 月 12 日更新:
    我决定对这篇文章进行年度审查,以使其信息保持最新。许多事情在一年中发生了变化,导致最初帖子中的一些信息已经过时。

    最大的变化来自钛。今年早些时候,Appcelerator 发布了 Titanium 1.0,从架构的角度来看,它与之前的版本大相径庭。在 1.0 中,不再使用 UIWebView 控件。相反,您可以为任何 UI 函数调用 Titanium API。这种变化意味着几件事:
  • 您的应用程序 UI 变得完全原生。您的应用程序中不再有 Web UI,因为原生 Titanium API 接管了您所有 UI 需求的控制。 Titanium 在“跨平台原生 UI”前沿领域的开拓值得称赞。它为喜欢 native UI 的外观和感觉但不喜欢官方编程语言的程序员提供了另一种选择。
  • 您将无法在您的应用程序中使用 HTML 或 CSS,因为 Web View 已消失。 (注意:您仍然可以在 Titanium 中创建 Web View 。但是在 Web View 中可以利用的 Titanium 功能很少。)Titanium Q&A: What happened to HTML & CSS?
  • 您将无法使用假设 DOM 对象存在的流行 JS 库,例如 JQuery。您继续使用 JavaScript 作为您的编码语言。但这几乎是您作为 Web 程序员使用 Titanium 1.0 时可以使用的唯一 Web 技术。

  • Titanium video: What is new in Titanium 1.0.

    现在,Titanium 1.0 是否会将您的 JavaScript 编译为“ native 位”?不。Appcelerator 终于通过这个开发者博客解决了这个问题: Titanium Guides Project: JS Environment.我们程序员比市场部的人更真诚,不是吗? :-)

    转到PhoneGap。关于PhoneGap,没有多少新东西可说。我的看法是,直到今年晚些时候 IBM 加入之后,PhoneGap 的开发才非常活跃。有些人甚至认为 IBM 为 PhoneGap 贡献的代码比 Nitobi 多。不管是真是假,很高兴知道 PhoneGap 正在积极开发中。

    PhoneGap 继续以 Web 技术为基础,即 HTML、CSS 和 JavaScript。看起来 PhoneGap 没有任何计划像 Titanium 那样将原生 UI 功能桥接到 JavaScript。虽然 Web UI 在性能和原生外观方面仍然落后于原生 UI,但这种差距正在迅速缩小。 Web 技术有两个趋势可以确保移动 Web UI 在性能方面的亮点:
  • JavaScript 引擎从解释器转变为虚拟机。 JavaScript 被 JIT 编译成 native 代码以加快执行速度。 Safari JS engine: SquirrelFish Extreme
  • 网页渲染从依赖 CPU 转向使用 GPU 加速。在硬件加速的帮助下,诸如页面过渡和 3D 动画等图形密集型任务变得更加流畅。 GPU Accelerated Compositing in Chrome

  • 这种源自桌面浏览器的改进正在迅速交付给移动浏览器。实际上,从 iOS 3.2 和 Android 2.0 开始,移动 Web View 控件的性能和 HTML5 变得更加友好。移动网络的 future 充满希望,吸引了一个大 child 到镇上: JQuery has recently announced its mobile web framework. JQuery Mobile 提供 UI 小工具,PhoneGap 提供电话功能,在我看来,这两者结合起来创造了一个完美的移动网络平台。

    我还应该提到 Sencha Touch作为另一个移动 Web UI 小工具框架。 Sencha Touch 1.0 版最近在包含 GPLv3 的双重许可模式下发布。 Sencha Touch 与 PhoneGap 配合得很好,就像 JQuery Mobile 一样。

    如果您是 GWT程序员(像我一样),你可能想看看 GWT Mobile ,一个使用 GWT 创建移动 Web 应用程序的开源项目。它包括一个 PhoneGap GWT 包装器,可以在 GWT 中使用 PhoneGap。

    关于iphone - Corona、Phonegap、Titanium的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482586/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com