2012-12-18 17:19:07 来源:CIO时代网
像Atex一样, Taqtile公司也是一个移动应用的开发商, 他们为不同机构开发跨平台的移动应用, 包括为斯坦福大学开发的用来观看体育比赛重播和查比分的应用 iCardinal, 为HyVee市场开发的购物车和折扣券应用等等。
Taqtile的创始人John Tomizuka说到:“最初,为了避免跨平台开发的复杂性, 我们用了一个跨iOS和安卓平台的开发工具, 但是这个工具的Bug太多了。 所以我们就直接开发原生应用。 但是,这样的开发太复杂了, 特别是需要代码更新的时候。” 所以, 现在Taqtile采用的一种主要依赖于HTML5混合的模式, 简化开发的同时, 也能给用户一个类似原生应用的体验。
John Tomizuka解释说:
“我们能用HTML5的地方就尽量用HTML5, 我们加了一个外壳来适用不同操作系统的菜单结构。 比如安卓系统的菜单在屏幕的上方, iOS的菜单在屏幕下方。 我们从原生应用里面调用HTML5网页, 90%的屏幕渲染是HTML5应用, 菜单和导航则是用Java或是Objective-C写的原生应用。”
他承认在HTML5应用的开发有一个学习过程,“最开始我们的应用, 就是在哪儿不停地‘加载中, 加载中' . 后来, 我们就把HTML5代码放入缓存。 在用户下载应用的时候, 就把HTML下载到了本地, 这样的话, 我们应用的加载速度就变得飞快了。”
Taqtile在开发HTML5应用中, 还遇到一些问题。 比如对硬件设备如摄像头, 感应器等, 现有的HTML5标准并不很好的解决如何对这些硬件的进行操作。 这个问题尤其在安卓设备上更加麻烦, John Tomizuka说到“对Windows Mobile的设备, 如果你测试成功, 你就能在所有设备上运行。而对安卓系统, 有成千种设备, 很难有效地一一测试, 你就无法保证你的应用对摄像头或者感应器的操作100%没问题”
分层化的应用设计
日本的Wizcorp公司也是一个基于HTML5进行跨平台社交游戏开发的公司, Wizcorp的品牌经理Mark Armitage说, 在日本, 移动游戏天然的就必须是多用户的。 人们喜欢登陆进社交网络, 和朋友们分享游戏成就。
Wizcorp有一个基于Javascript, HTML5和NoSQL的游戏引擎Mithril, 它采用了开源跨平台游戏开发框架PhoneGap/Cordova, 最近, 游戏平台Gree投资了他们, 所以他们的平台也采用了部分Gree平台的元素。
“为了适应HTML5带来的挑战, 我们的工程师为此创造了一系列的插件。 我们的平台有HTML5, Gree的SDK, 还有PhoneGap/Cordova的API, 你可以把这些想象成不同的分层, 我们的插件的目的就是使得这些不同的部分能够互相工作, 同时互不干扰。”
这些插件可以让跨平台开发变得容易, 可是要想适用不断变化的HTML5标准却也并不容易, Mark Armitage说:“我们的工程师开发的期限很紧, 他们很难有时间去追踪标准的最新更新, 而标准几乎每周都有更新。”[page]
不过, 好的方面是, 在开源社区里, 有大量的开发者都会面临同样的问题。 Mark Armitage说:“在开源社区里, 大家分享针对各种问题的最佳解决方案, 在应对不断变化的标准方面, 我们也并不是在孤军奋战”. 就像Wizcorp的高级前端工程师Micky Brunetti所说的:“我们是遇到了不少问题, 可是同时我们也学到了不少东西。”
其实, 开发者在用户界面开发的复杂性也不是从HTML5 才开始的。 从早先的Windows界面和Mac界面的开发, 到目前不同浏览器之间的适应性, 开发者一直都在为用户界面开发而努力。 埃森哲的Quilligan对HTML5的复杂性的评论是:“所有的新技术, 都需要一个完善的过程, 标准需要完善, 开发工具需要完善, 用户需要适应。 没有什么能从根本上阻碍HTML5, 它只是需要一些时间来慢慢成熟。”
工具和中间件
对移动应用的巨大需求增长, 已经开发工具的不成熟, 使得开发者需要不断的进行学习。 埃森哲移动部门的高级总监Quilligan说:
“很多客户都处于这样的矛盾中, 他们觉得移动应用潜力巨大, 然而一评估具体实施, 又觉得很麻烦。”对用户体验的担心, 对性能的担心, 以及考虑需要适应不同的安卓操作系统, 使得很多企业认为移动应用开发是一个巨大的挑战。 Quiligan说:“这些并不是不能完成, 但是需要很多努力, 因此, 对很多企业来说, 移动应用还无法进入战略层面的操作。”
不过, 在过去的2到3个季度里, 移动应用开发工具方面已经有了一些可喜的进步。
一是中间件开发工具的兴起, 中间件分为两类,一类是移动应用开发中间件, 如Kony或者Verivo的产品, 一类是移动网站开发工具, 如PhoneGap, SenchaTouch, jQueryMobile 和 Appcelerator 这样的一些生成HTML5代码也能够调用原生代码的开发框架。
这两类工具有什么不同呢,主要的区别在于多少代码跑着服务器端, 多少代码跑在客户端。移动开发中间件通常更多地代码在服务器端, 使用专门的服务器端模块与客户端通信, 而类似于PhoneGap这样的网站应用开发工具则更多的代码在客户端, 使用RESTful API与服务器端通信。
不过这样的区分其实也很难说准确, 有些移动企业开发平台(Mobile Enterprise Application Platform) 如IBM的Worklight就采用了PhonaGap来实现用户界面部分, 而在服务器端在加了大量连接性和安全性的代码。
移动企业开发平台最近起的很猛, 除了Worklight外, 还不断出现如Sybase Unwired PlatformWebMobi, AMPchroma, Agentry Mobile Platform等不同的开发平台, 这些开发平台, 很多都支持HTML5 .
此外, HTML5也并不是唯一能够实现“一次编写, 到处运行”这样跨平台要求的唯一解决方案。 现在, 也还有基于云开发平台的如Tiggzi 和 July Systems这样的的解决方案。 另外, 移动应用还可以利用云计算来解决接入和安全性等问题。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。