逃离App Store:创建智能手机网络应用的4种方法

专有的、不兼容的编码系统和应用程序商店控件会让移动应用程序开发变得过于困难——所以试试这些面向html的替代方案吧

所以你想让你的软件在全世界数亿的智能手机用户手中。也许你的老板说“移动”是一个新的流行词。也许你担心有些人会说PC的在阳光下的时间即将过去。

不要紧,你为什么要开发移动应用。问题是,以下通过仍是相当棘手。iPhone和iPad想代码写在objective - c而这种语言仍然有点模糊。另外,一旦你完成了编码,很有可能苹果将关闭应用商店就在你面前,因为一些不可知的原因。

[让你的网站跟上HTML5的速度,现在使用的技术InfoWorld对HTML5的深度挖掘PDF格式的报告。]

安卓智能手机说话更受欢迎Java的,而且也没有控制应用程序商店阻碍分布,但他们仍然是一个遥远的第二,至少在世界的头脑份额。黑莓Java的说话,但他们使用一种完全不同的Java API,所以你需要为他们的新程序。而微软最近推出Windows Phone 7的,它使用Silverlight和。net。

更糟糕的是,智能手机内存不足,它们会不断关闭服务以节省电池寿命。为它们编写代码通常涉及桌面应用程序中不常使用的技巧。

最终的结果是,移动应用程序开发是一件痛苦的事情——但是除了使用每个移动平台的特定语言和开发工具之外,还有另一种方法:在智能手机的Web浏览器中运行的HTML应用程序。iPhone和Android智能手机都有基于开源的浏览器WebKit的项目一样,诺基亚的Symbian和Palm的WebOS。黑莓OS 6,在火炬模型中发现,还采用了基于WebKit的浏览器。因此,一个网站,专门为这些设备的外观和行为非常相似的人。(例外:Windows Phone 7和较旧的黑莓操作系统版本,它的browers基于更有限,专有技术)。

创建一个适合智能手机的HTML Web应用程序,而不是创建一个完整的,本地应用程序有几个优点:

  • 它自然是跨平台的。
  • 虽然小屏幕对设计师来说是个挑战,但通常可以从桌面网站借用代码。
  • HTML和JavaScript程序员比Objective-C或Silverlight专家要多得多。
  • 更新发生在你的日程安排上,而不是应用商店的日程安排上,并且没有任何武断的规则可能会阻止你的网页到达它的用户。
  • 它通常比较容易重新编写你的网站产生优化的HTML代码移动平台的表现层。在某些情况下,它只是需要一个新的CSS文件。

HTML代码可以通过两种途径到达智能手机。最简单的方法是将其存储在一个Web服务器上,该服务器会检测浏览器并向任何访问者提供一个特殊的智能手机版本。在这条道路上,它同时是一个网站和一个应用程序,这是操作系统鼓励的举动。

但也有办法要捆绑所述HTML代码到一个独立的应用程序驻留在移动设备上通过包装的周围本地代码的薄层。你选择哪条道路,逻辑和艺术是一样的。(而且随着部分HTML5规范草案找到自己的方式进入移动浏览器,基于HTML的移动应用程序可以通过趁着更像传统的应用程序,如HTML5离线存储的画布上的能力。)

然而,有几个大类别的应用程序不能很好地作为HTML应用程序工作。此外,智能手机的摄像头等部分硬件难以访问,有时访问会完全被阻塞。游戏程序员会立即注意到响应时间变慢了,通常是非常慢的。即使是那些想把一本书打包成应用程序的出版商也会发现,对于那些本应像游戏精灵一样随意翻动的内容,有些行为可能会变得迟缓。

尽管如此,许多应用程序仍然可以成功地用HTML编写,比如显示数据库信息的站点。例如,Facebook和Yelp的应用程序将数据格式化以便于查看,而不需要灵活的精灵或即时响应。尽管许多最畅销的应用程序是诸如愤怒的小鸟,其中许多人 - 包括应用程序的天气频道,Netflix和书籍 - 很容易在纯HTML交付。

这里有四条路径,以使一个HTML的Web应用程序到智能手机无处不在。不管你选择什么,不过,你也必须考虑如何将应用程序提供给用户,因为我后来解释。

路径1:网站的开源库首先了解HTML模型有效性的是一些开源程序员,他们通过快速模拟正确的CSS文件,使HTML看起来就像苹果的股票应用程序,从而展示了移动浏览器的强大功能。使用正确的CSS,一个用li>标记的数据列表。标签看起来像一个用基本Objective-C文件构建的Objective-C ListView。这种方法的好实例包括iUijQTouchjQueryMobile,iWebKit

如果您只想显示手机上的基本列表和信息块,比如来回滑动的列表,那么使用这些库就很容易。每个包都带有几种样式,您可以通过调整CSS文件来调整用户界面。

如果基础很重要,jQueryMobile和jQTouch都与jQuery集成了,这使得与许多其他jQuery插件一起工作更容易一些。iWebKit和iUi是独立的,更多地依赖于CSS。

鉴于这四个库的开源性质,它们更接近于业余爱好,而不是完整的开发工具包,尽管它们已经足够完善,可以用于许多基本的商业项目。例如,iUi自2009年12月的0.40版本以来就没有出现过新的代码包。2010年3月,iWebKit从5.0.3版滚到了5.0.4版,此后一直很安静。目前,jQueryMobile似乎势头最为强劲。jQTouch受到了广泛的关注,最近增加了主题和维护工作,以提高触摸事件的敏感性。

底线是,这些开放源代码库都只是开始,没有完全形成包。如果你正在构建一个复杂的应用程序,你需要准备做一些黑客自己。

路径2:手机重新打包有相当数量的网站为移动平台重新打包信息。有些只是从你的主网站上刮掉数据的薄贴面,有些则提供了编辑内容的更复杂的工具,但所有这些都是有效的模板集合,以一种更容易在手机上读取的方式重新打包信息。

例如,它获取常规网站的URL,并让您使用一个整洁的可视化编辑器选择关键的div。然后,你可以在不同大小的屏幕上测试结果,如果你满意,就按下按钮,几分钟后开始直播。该工具会对站点进行擦除,并从选择的div中重新发布信息。

类似的分装服务包括Mippin的动员,与AdMob的广告网络整合;OnbileWirenode,其中有一些国防部的模板;Winksite,它在你的内容旁边集成了一个基本的社区网络;Mofuse该公司的二维码集成了网址缩短器;和雅虎的蓝图它是为包括iPad在内的“数千种移动设备”而设计的。

所有这些网站都定期添加新功能,无疑会模仿其竞争对手的最佳创新。使用这些工具可以极大地简化创建网站的过程。不利的一面是,来自同一种服务的所有网站都有相同的风格,几乎没有机会走得太远。尽管这种结构可以提供相当大的灵活性,特别是当您从主站点为您的移动站点提供RSS提要时,仍然有可能被锁定在计划中。

路径3:插件如果屏幕抓取重新打包站点只是将数据倒进由HTML和CSS构建的不同模板中,那么没有理由不将此类移动优化的HTML和CSS集成到主站点中。这样做并不像把所有的重新包装委托给另一个网站那么简单,但它确实带来了更多的控制。

在许多情况下,它往往是比较容易的。一些Drupal的插件,例如,自动检测浏览器发送请求,则自动选择合适的模板,其可以是一个简化的一个设计用于移动电话。该iUi插件使用的iUi接口库格式化iPhone和其他WebKit浏览器的内容。其他如iDrupal UI,移动工具,手机插件遵循类似的计划。

所有主要的CMSes都有几个相关的插件。WPtouch是受欢迎的,有一个专有版本39美元。Joomla用户可以求助TapTheme同样适用于ipad的类似皮肤。

所有这些方法都比任何移动重新打包站点提供了更多的控制。代码通常是开源的,修改通常是可能的,而且通常是可行的。当模块得到良好维护时,这种方法可以提供托管移动重新打包站点的大部分优势,并且可以控制服务器的所有权。但是,如果模块开发人员被调用到其他项目上,工作就会落到您的肩上。

路径4:工业产品移动领域正引起足够的重视,带来的商业开发工具表。煎茶,一个公司,还建立JavaScript库和开发工具,最近发布了Sencha Touch框架。该工具不是开源的,但商业许可是免费的(目前)。该公司通过销售支持和定制服务赚钱,支持包起价300美元。

Sencha的专业风格是显而易见的。与开源选项相比,它有更多的特性、更多的面板、更多的小部件和更多的设计选项。文档也比许多开源项目好得多,但还没有我想要的深入;有几次,我发现它丢失了,或者只是基于代码的早期版本。

同样的,Appcelerator的钛让你写在HTML,CSS和JavaScript代码,然后将其转化为本地代码,这样你就可以出来的HTML,JavaScript和CSS,你已经知道的创建本机应用程序。Nitobi的PhoneGap还要从HTML和JavaScript代码开始,添加利用流行的移动平台中的本地特性的库。(信息世界比较了这些工具给你如何每次工作的感觉。)

通过Web交付应用程序给用户所有这些路径选项都将应用程序打包为HTML、CSS和JavaScript包,但它们没有指定如何将其发送到智能手机。

最简单的方法是将包放在Web服务器上,让Internet完成它最擅长的工作。如果HTML和CSS代码设计良好,其结果与安装的应用程序几乎没有区别。

苹果的iOS系统有一种很好的功能,可以通过将网站变成主屏幕上的图标来为其添加书签。在Safari浏览器中浏览页面时,用户只需点击操作按钮,然后从出现的菜单中选择添加到主屏幕。(动作按钮的图标过去是一个加号,但最近变成了一个矩形上的箭头。)可以为这个应用程序有一个应用程序图标出现在主屏幕上(而不是一个网站的页面的缩略图)通过创建一个48-by-48-pixel或较大的PNG图标文件,指的是在Web页面的标题使用& lt;链接rel = " apple-touch-icon " href = " / iphone-icon。png”/比;声明。

同样,Android 2.1及更高版本,可以把一个书签的主屏幕上,并附上了所谓的起动器图标使用相同的标题代码的iOS应用。(A上的书签打开一个菜单,它提供了机会,一个快捷方式添加到主屏幕上持续的轻拍。)

通过混合应用程序处理性能问题具有Web服务器上的整个应用程序意味着,性能很大程度上取决于设备的互联网连接的质量。因此,一个Web应用程序通常不会,如果所有部件都保存在服务器上运行良好。

一个解决方案的性能问题是包括缓存清单中,HTML5指定保留哪些部件的增强。一个设计良好的体系结构可以使所有有用的部分都触手可及,并且仍然可以删除未使用的动态数据。

清单还可以与本地数据库相结合来存储本地信息。这项技术也适用于现代的HTML5浏览器。

对性能问题的另一个解决方案是创建通过包裹起来的HTML / JavaScript的/ CSS代码在本机应用程序的混合应用程序,只需加载HTML到一个web视图。其结果是一个应用程序,安装就像一个原生应用程序,但保持大致相同的外观和风格,在浏览器中运行的HTML代码。它并不总是相同的,但在大多数情况下。

12 第1页
页面1的2
IT薪资调查:结果是