与Android相比,Phonegap或HTML5的限制和缺点是什么?
我很想知道,与使用Android相比,使用Phonegap是否有任何缺点或限制。 我们还有什么可以做的,不能用其他平台来完成?
为什么会特别selectAndroid上的Phonegap(除了预算或跨平台兼容性),反之亦然? 我正在寻找清楚的理由。
充分披露我是PhoneGap的Android实现的核心提交者之一,所以我的意见可能有偏见,但我喜欢认为我是公平的。
要回答你的问题,这真的取决于你的要求是什么。 您已经放弃了预算和跨平台这是PhoneGap的两个关键优势。 例如,如果我从来没有打算瞄准任何平台,但Android我可能会与本机Android开发,但如果我们要去其他平台,我会selectPhoneGap。 另外,我会看看我的团队,他们是Java核心程序员吗? 去Android。 他们是HTML开发人员吗? 去PhoneGap或纯HTML5。
另外,这取决于你正在写什么types的应用程序。 第一个人的射手,去Android。 一个表驱动的数据应用程序,PhoneGap是要走的路。
无论如何,不知道你想要开发什么types的应用程序,很难具体。
PhoneGap优点
PhoneGap在很多情况下都是一个很好的解决scheme:
多平台:由于应用程序的前端是使用Web技术构build的,因此具有完全相同源代码的PhoneGap应用程序可以跨不同的平台部署。
访问基本的本地function:如果应用程序需要对本地API(如相机,地理位置和联系人)的最小访问权限PhoneGap允许只用几行JavaScript代码访问这些API。
脱机使用:尽pipe应用程序是使用Web技术构build的,但它仍然可以提供脱机function并可以访问浏览器的本地caching。
PhoneGap缺点
由于应用程序的前端是使用JavaScript构build的,因此会导致一些限制。
数据处理:在设备上进行数据处理时,母语要比JavaScript快得多。
后台处理:大量的应用依靠后台线程来提供stream畅的用户体验:例如,在后台计算GPS位置。 PhoneGap API是使用JavaScript构build的,不是multithreading的,因此不支持后台处理。
访问高级本地function: PhoneGap的API尚不支持许多本机API。
复杂的业务逻辑:许多应用程序(如企业应用程序)都非常复杂。 在这种情况下,拥有一定数量的本机代码就更好了。
高级graphics:使用只能使用第三方库访问的高级graphics的应用程序最好在本地完成。
构build移动Web应用程序的好处:1)只需要HTML5 / CSS / Javascript技能与Objective-C或Java。 我们通过使用Mobl( http://www.mobl-lang.org )这一特定于领域的语言来创build移动web应用程序来编译为javascript / html,从而使事情变得更加简单。 2)所有平台的单一代码库(iOS,Android,Windows 7,移动networking)3)快速testing和部署(直到你Phonegap它,此时你受到App Store审查条件等)4) Phonegap,您仍然可以通过App Store或Android Market利用分销和集成支付的优势
缺点:1)性能不佳,尤其是如果你的应用程序是graphics激烈的,即游戏。 你可以实现caching或利用一些第三方解决scheme(即Sibblingz)本地graphics加速,但大部分本地应用程序比移动web应用程序更快/更平滑2)缺乏预先构build的UI小部件,转换,标准控件,等您的开发时间可能需要更长的时间,尤其是如果你想要一个外观精美,看起来很漂亮的应用程序。 您可以尝试使用Sencha Touch,JQ Touch或类似工具以及预先构build的UI元素,但您可能仍然需要花费大量的时间来devise应用程序的外观。
那么,你应该build立一个移动的networking应用程序或本地的应用程序? 如果您正在构build一个涉及graphics的应用程序或涉及任何计算成本较高的操作的应用程序,请确保本地化,因为这些工具尚未完成,因此尚未将移动Web应用程序的工作轻松完成。 如果你正在构build一个相当简单的东西,你不需要任何本地样式或devise波兰语,去移动networking路线。