PhoneGap VS. Titanium
上周末珠三角沙龙如期举行,参加沙龙前特意又简单对比了一下PhoneGap和Titanium的特性,打算到现场跟黎展波交流一下,后因私事不能成行实在可惜。
第一次听说PhoneGap是去年某周末TaskAnt的孙总介绍(sunfang@twiiter)推荐的,传说当时他们计划做TaskAnt的Mobile客户端,至于最终是否选择了PhoneGap我倒不知道,但现在还没有客户端现在还是没有出来。广告一下:TaskAnt的确是一个非常有爱的小型团队计划任务平台,虽然我现在已经没有在用了,总有一天我会回来。
在比较前,首先有一观点我认为是一致的:如果希望用PhoneGap、Titanium等框架来实现一个流畅的高端游戏或者需要CPU计算能力的应用,在当前的硬件条件、开发成本上的可能性几近为零。走错路了,还是去用原生平台代码去实现吧。正如月光博客上说的一样:“兼容性越强的技术,成本越低,性能越差;兼容性越差的技术,成本越高,性能越好”。
在跨平台这个特性上,无可置疑地是PhoneGap胜出。这跟两家公司的策略和框架实现有关,PhoneGap更注重支持多个平台,而Titanium更注重提供原生的UI而只支持iOS+Android。这也体现在API上,PhoneGap没有提供UI部分的JS接口库,而Titanium则提供。
最大的争议,我想在于是否”native”这一点上,众所周知PhoneGap的跨平台就是因为它是运行在WebView上的HTML+JS的实现,并且提供兼容性的JS库(当然,这里有一个跟本地设备桥接的实现,Titanium亦然)。而Titanium的实现类似,但争议在于官网上无处不在关于“native”的声明实在令人有点迷惘,过去我也一直以为这个native就是如文档说的一样:“Every single JS instruction you write is converted in pure ObjectiveC.”,包括上一次在沙龙上我也是这样说的(这里)。但现在更多的人在说它不是,最终也只是一个WebView的实现,所谓的native只是指”native” UI。的确,从build出来的包里也确实没找到ObjectiveC的代码。但有一点是肯定的,PhoneGap是运行在WebView上的HTML+CSS+JS,而Titanium只是用了JavaScript来写你的Mobile应用。前者包含了DOM特性,后者没有,前者可以用jQuery等第三方库,后者不允许或者说没必要。
文档可读性上,Titanium的文档在过去我是觉得还是非常欠缺的,但在Github上的例子代码都可以解决了我大部分问题。而现在Titanium比我当时接触时好太多了,而且最近还开放了wiki,还有一个Q&A平台,我相信会越来越完善。PhoneGap同样提供wiki文档,但由于没有深入开发之中,还不知道文档是否能真正解决问题。
可扩展性方面,前天我还跟@老甘 说,我知道Titanium可以通过模块的扩展来实现一些官方API没有提供的功能,比如Paint 。今天再特意看看PhoneGap,其实也有类似的实现。原理应该都是一样的,基于框架的要求使用ObjectiveC来编写针对特殊场境的模块实现,当然也要同时考虑在不同的移动平台上的实现了,也是说兼容性将由开发者来保障。
以前是综合参考资料中各文章汇总出来的简单比较,我并没有去比较各自API中的实现优劣势,我想这个还是留待大家去探索吧。而以上这些资料,已经足以让我们判断如何去选择一个框架:
- 如果想快速开发一个iOS or/and Android原生UI的程序,选择Titanium或许更适合
- 如果想实现一个跨平台的基于HTML的移动应用,PhoneGap或许更适合
最后还是一点,开源协议上PhoneGap是基于“New” BSD or MIT license 的,这比Titanium的Apache 2.0 license 更加开放。而参考资料中有提到Titanium发布到AppStore需要付费,我想这可能过去的license或是误读,因为我还没有发布过属于自己的应用,也没有找到这一条付费内容,望知道出处的朋友告知。
anyway,最近不碰Titanium了,直接学ObjectiveC了,哈哈……
参考资料:
http://stackoverflow.com/questions/1482586/comparison-between-corona-phonegap-titanium
http://translate.google.com.hk/translate?hl=zh-CN&ie=UTF-8&sl=ja&tl=zh-CN&u=http://d.hatena.ne.jp/r_kurain/20101121/1290347346&prev=_t
http://great-way.appspot.com/2010/09/2/Mobile-Apps-cross-platform-development-challenge:-PhoneGap-vs.-Titanium-vs.-Rhod.html
–EOF–
最后还是有话要说:如果只是想写iOS软件而不想学习ObjectiveC,我觉得Titanium才是你的选择。-20110501
如果想开发跨平台的桌面程序,你应该看看Titanium,这跟PhoneGap在Mobile上的实现原理应该是一样的,将HTML5+CSS+JS实现的应用程序包裹在一个WebView容器里实现跨平台。当然,你可能会说AIR更好。-20110503
分享到:
相关推荐
除了PhoneGap之外,市场上还存在其他类似的跨平台开发工具,如Titanium、Mono和MoSync等。每种工具都有其独特的特性和适用场景。 - **Titanium**:由Appcelerator开发,同样支持使用Web技术进行跨平台开发,但在...
without using third-party libraries and wrappers such as PhoneGap or Titanium. This concise, hands-on book takes you through the entire process, from setting up your development environment to ...
钛金属和 phonegap 之间的巨大区别恰恰在于可以访问手机原生的所有内容以及访问的便利性。 在 Titanium 上,有适合每个人的模块。 无论是加速度计,相机,触点等。 Titanium 上的社区非常重要,正是其中的一部分让...
2. **编程语言与框架**: 可能涵盖了Java(Android)、Objective-C(iOS)和C#(Windows Mobile)等主要编程语言,以及PhoneGap、Titanium或Mono等跨平台开发框架的使用方法和优缺点。 3. **UI设计**: 书中可能讲解...
JPush PhoneGap Plugin ###创建项目### cordova create 文件夹名字 包名 应用名字 cordova create Myproj com.myproj.jpush MyTestProj 添加平台 cd Myproj :不进入项目会出现[RangeError:Maximum call stack size...
使用Html5开发的应用可以在不同的移动平台上运行,例如PhoneGap、Titanium、Adobe AIR、AppMobi等框架提供了跨平台开发的能力。 PhoneGap是一个开源的移动应用开发框架,可以让开发者使用Web技术(如HTML5, CSS和...
iOS OS X .NET Framework Man Pages ActionScript Akka Android AngularJS Ansible Appcelerator Titanium Arduino Backbone Bash Boost Bootstrap Bourbon Bourbon Neat C C++ CakePHP Cappuccino Chai Chef ...
PhoneGap的iOS项目仅需要1至2秒的时间就可以在iPhone 3GS上发布运行。这个事实可以告诉你,最基本的HTML5应用运行起来真的非常流畅。 然而,HTML5技术也有蹩脚的一面,例如: 1. canvas组件可以在屏幕相对小一点...
无论是 PhoneGap 的开源和跨平台特性,还是 Sencha Touch 的高性能 UI,或是 jQuery Mobile 的易用性,亦或是 RHOMobile 和 Titanium Mobile 的“一次编写,到处运行”,都有其独特的优势。希望每位前端工程师都能在...
另外,HTML5 Native App开发框架如PhoneGap和Appcelerator Titanium,允许开发者使用HTML5、JavaScript等Web技术开发原生应用,同时访问设备的特定功能,如GeoLocation和Camera。MoSync和AirPlay SDK则是跨平台的...
Titanium的核心优势在于其智能地利用了嵌入式Webkit视图,并提供了直接访问操作系统API的能力,使得开发者可以轻松地利用地理位置、用户界面等特性。 ##### 2. **PhoneGap** PhoneGap(现更名为Apache Cordova)是...
您可以在自己的计算机中使用CalenStyle 网络应用网页上的小查看部分手机网站使用Webview的本机移动应用程序使用Phonegap,Titanium等创建的混合移动应用程序设计主题CalenStyle包含许多设计主题,以生动有趣的方式...
Android和iOS的竞争日益激烈,开发者开始关注跨平台开发工具和技术,如PhoneGap和Titanium,以适应多设备环境。 2. **云计算的崛起**:2012年,云计算逐渐从概念走向实际应用。Amazon Web Services(AWS)等云服务...
Framework7 PhoneGap应用程序是一个移动UI框架,可用于使用PhoneGap构建混合应用程序。 该模板使您可以快速开始使用Framework7。 有关Framework7的更多示例,请参见其的或的。 另外,有关Framework7的简介,请查看。...