当前位置: 首页 > 面试题库 >

Corona, Phonegap, Titanium之间的比较

石喜
2023-03-14
问题内容

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

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


问题答案:

罗里·布莱斯(Rory
Blyth)的答案包含有关两个JavaScript移动框架的一些有效观点。但是,他的要点是不正确的。事实是Titanium和PhoneGap相似而不是不同。它们都通过一组javascriptAPI公开了手机功能,并且应用程序的逻辑(html,css,javascript)在本机WebView控件中运行。

  1. PhoneGap不仅仅是Web应用程序的本机包装。通过PhoneGapjavascriptAPI,“网络应用”可以访问手机功能,例如地理位置,加速度计摄像头,联系人,数据库,文件系统等。基本上,手机SDK提供的任何功能都可以“桥接”到JavaScript世界。另一方面,在移动Web浏览器上运行的普通Web应用程序无法访问其中大多数功能(安全是主要原因)。因此,PhoneGap应用程序比Web应用程序更像是移动应用程序。您当然可以使用PhoneGap来包装完全不使用任何PhoneGap API的Web应用程序,但这不是为PhoneGap创建的。

  2. Titanium不会将您的html,css或javascript代码编译为“本地位”。它们被打包为可执行包的资源,就像嵌入式图像文件一样。当应用程序运行时,这些资源将被加载到UIWebView控件中并在其中运行(当然是JavaScript而不是本机位)。没有像javascript本地代码(或目标c)这样的编译器。这也可以在PhoneGap中完成。从架构的角度来看,这两个框架非常相似。

现在,它们有什么不同吗?是。首先,通过将更多的手机功能桥接到javascript,Titanium似乎比PhoneGap拥有更多的功能。最明显的是,PhoneGap不会向JavaScript公开许多(如果有)本机UI组件。另一方面,Titanium具有完善的UI
API,可以在javascript中调用它来创建和控制各种本机UI控件。利用这些UI
API,Titanium应用程序看起来比PhoneGap应用程序更“原生”。其次,PhoneGap比Titanium支持更多的手机平台。PhoneGap
API更为通用,可以在不同的平台上使用,例如iPhone,Android,Blackberry,Symbian等。Titanium至少目前主要针对iPhone和Android。它的某些API是特定于平台的(例如iPhoneUI API)。

因此,如果您对应用程序的关注是使其更具“本机”外观,那么Titanium是更好的选择。如果您希望能够更轻松地将应用程序“移植”到另一个平台,PhoneGap会更好。

更新: 我决定对该帖子进行年度审核,以使其信息保持最新。一年中发生了许多变化,使得最初发布中的某些信息已过时。

最大的变化来自钛。今年早些时候,Appcelerator发布了Titanium
1.0,从体系结构的角度来看,它与以前的版本大不相同。在1.0中,不再使用UIWebView控件。相反,您可以为任何UI函数调用Titanium
API。此更改意味着几件事:

  1. 您的应用程序用户界面完全变为本地用户。由于本机Titanium API接管了所有UI需求的控制,因此您的应用程序中不再有Web UI。通过开创“跨平台本机UI”边界,Titanium应该获得很多荣誉。它为喜欢本机UI外观但不喜欢官方编程语言的程序员提供了替代方法。

  2. 随着网络视图的消失,您将无法在应用中使用HTML或CSS。(注意:您仍然可以在Titanium中创建Web视图。但是在Web视图中可以利用一些Titanium功能。)

  3. 您将无法使用假定存在DOM对象的流行JS库(例如JQuery)。您将继续使用JavaScript作为编码语言。但是,如果您以Web程序员的身份来到Titanium 1.0,那几乎就是您可以利用的唯一Web技术。

现在,Titanium1.0是否将您的JavaScript编译为“本地位”?否。Appcelerator最终通过以下开发人员博客解决了这个问题:Titanium GuidesProject:JSEnvironment。我们的程序员比行销部门的人更真实,不是吗?:-)

转到PhoneGap。关于PhoneGap没什么新鲜的话要说。我的看法是,直到IBM在今年晚些时候加入之前,PhoneGap的开发才非常活跃。甚至有人争论说,IBM向PhoneGap贡献的代码比Nitobi多。不管是正确与否,最好知道PhoneGap正在积极开发中。

PhoneGap继续以Web技术为基础,即HTML,CSS和JavaScript。就像Titanium一样,PhoneGap似乎没有任何计划将本机UI功能桥接到JavaScript。尽管WebUI在性能和本机外观方面仍落后于本机UI,但这种差距正在迅速缩小。Web技术有两种趋势可确保在性能方面为移动Web UI带来鲜明的功能:

  1. JavaScript引擎从解释器移动到虚拟机。JavaScript被JIT编译为本地代码,以加快执行速度。Safari JS引擎:SquirrelFish Extreme

  2. 网页渲染已从依靠CPU转变为使用GPU加速。借助硬件加速,图形密集型任务(例如页面过渡和3D动画)变得更加流畅。Chrome中的GPU加速合成

源自桌面浏览器的此类改进正在迅速交付给移动浏览器。实际上,自iOS 3.2和Android
2.0起,移动Web视图控件的性能和HTML5友好性大大提高。移动Web的前景如此光明,以至吸引了一个大孩子:JQuery最近宣布了其移动Web框架。我认为,借助JQuery
Mobile提供的UI小工具,以及PhoneGap提供的电话功能,两者结合起来创建了一个完美的移动Web平台。

我还应该提到Sencha Touch作为另一个移动WebUI小工具框架。Sencha Touch1.0版最近以包括GPLv3的双重许可模式发布。就像JQuery Mobile一样,Sencha
Touch与PhoneGap配合使用也很好。

如果您是GWT程序员(例如我),则可能需要查看GWTMobile,这是一个用于使用GWT创建移动Web应用程序的开源项目。它包括一个PhoneGapGWT包装器,该包装器允许在GWT中使用PhoneGap。



 类似资料:
  • Corona是Map-Reduce的改进版本,可以更好地利用集群资源,更适合Facebook的“多租户(Multi-Tenant)”环境。 在Facebook,Map-Reduce有一个单一的作业跟踪器(JobTracker),用来管理集群资源和跟踪每个作业的状态。而使用Corona,集群资源通过一个中央集群管理器来跟踪,每个作业都有自己的跟踪器,这些跟踪器只需跟踪一个作业。 Corona在Map

  • Titanium 是一个跟手机平台无关的开发框架,用来开发具有本地应用效果的Web应用。当前主要支持 iPhone 和 Android 手机。 主要提供的API包括: 2D/3D animations Geo-location, compass, and maps Augmented reality features Social app authentication and native cli

  • 首先是Corona SDK的优点: 稳定 支持硬件加速、GPS、指南针及照相机等 支持与Map、Facebook、OpenFient、GameCenter的集成 内建的物理集成 Lua语言比较容易学习 已经有了一些很不错的应用,至少能够证明这个SDK是可以做出优秀应用来的 不错的社区支持 然后是Corona SDK不太好的地方: 只支持iOS和Android Lua语言不是面向对象的 每年都要交授

  • corona-cli 是一个跟踪新型冠状病毒肺炎(COVID-19)的命令行工具。 特点: 响应时间 < 100ms 获取全球 COVID-19 报告 每天主动报告选定国家的 COVID-19 统计信息 数据包括:国家、案例数、死亡数、康复数…… 排序方式:cases、 cases-today、 deaths、 deaths-today、 recovered、 active、 critical、 

  • Titanium 是一个强大的 Clojure 图形库,基于 Aurelius Titan 构建,提供了 Clojure 风格的 API 和图像处理 DSL 。

  • 问题内容: 假设我有包含以下字段的文档: 我需要运行一些查询,其中某些条件将需要在两个或多个字段之间进行比较。喜欢 在标准SQL中,一个示例可能是: 我正在阅读一些文档,看起来“脚本”可能是实现此目的的唯一方法?还是还有其他选择? 问题答案: 您可以使用脚本过滤器- 您可以在此处和此处找到更多信息。