PhoneGap工具包驯服了移动应用程序的开发

从苹果到谷歌的各种应用程序商店的第一步是用原生代码铺就的。如果你想为iOS写东西,你学过Objective-C。如果你想攻克安卓系统,Java是唯一的办法。类似的问题也出现在了智能手机市场上的其他小公司身上。

然后,一些聪明的开发人员意识到:所有的智能手机都提供了在屏幕上以矩形显示HTML的不错选择。您必须编写一些本地代码,用本地语言弹出这个矩形,但是矩形内的所有内容都由控制浏览器的相同语言控制。

许多开发人员立即意识到这一点的美。他们写了一个通用的本地应用程序,用一个大矩形接管屏幕,然后他们把控制权交给JavaScript团队。这个结果可以在所有智能手机上运行,只需要做一些微小的改动。不仅如此,开发人员还可以使用他们的JavaScript和HTML片断,而不需要了解各种平台的太多细节。

早期的几年对这一愿景并不友好。苹果对此做出了严厉的反应,并在应用商店中禁止了一些HTML应用。开发人员很快发现,在手机开始打嗝和咳嗽之前,他们不能对JavaScript或HTML太有创意。基于html的应用程序通常比它们的本地同类程序更加粗糙和粗糙。

这种情况几年前开始改变。苹果让步了,并认识到HTML并不危险。随后,硬件运行速度加快,消除了许多故障。今天,我编写的一些基于html的应用程序的性能与本机应用程序一样好——而且它们更容易移植。

现在,这些工具包正与基于云的服务结合在一起,这些服务添加了跨平台的构建和应用分发。这个运动的领导者是一个名为PhoneGap的开源项目,它现在运行强劲,并吸引了来自AppGyver的竞争。AppGyver是一家初创公司,希望让一切变得更容易。与此同时,Telerik Icenium正在沿着一条并行的道路发展,并提供了一套强大的开发工具和UI widget,它们与JavaScript和HTML结合在一起。所有这些工具都为已经熟练构建Web应用程序的开发人员打开了应用程序的世界。

PhoneGap的土坯

PhoneGap在被Adobe收购之前是一个开源项目。还有一个开源版本叫做科尔多瓦可以从Apache基金会获得,还有一个非常类似的版本叫做PhoneGap,它是在一个开源许可(ASF)下获得的。

原则上的区别在于Adobe提供了一个流畅的Web服务,可以将HTML转换为应用程序。你写HTML, Adobe的云把它变成可以在iOS、Android、Windows Phone、黑莓5/6/7和webOS上运行的东西。有一个免费版本,可以让你创建无限数量的开源应用程序,但仅限于公共应用程序。专业开发者可以每月支付10美元购买无限的私人应用程序。

当然你可以自己做这些。你可以点燃Xcode,Android工作室,或者其他智能手机的工具,然后自己创建。PhoneGap实际上是针对不同平台的6个或更多的项目,它们都或多或少实现了相同的API。您的代码应该接近于在所有机器上运行相同的代码,尽管问题经常由于硬件的不同而出现。

在为iPhone和Android构建应用程序之后,我可以推荐构建过程。下载所有的工具都要花很长时间。构建代码的工作已经迁移到了Web上,Adobe正在提供第一个具体而引人注目的工具。你在浏览器中放入一段代码,就会出现6个不同的应用程序,它们运行在6个不同的平台上。这是惊人的。

虽然整个过程减轻了我们的负担,但它既不简单也不完美。这些平台有大量的细节需要不断填写。这些文档虽然很好,但并不能为每一种可能性提供足够的细节。

其中一个比较棘手的问题涉及创建数字签名。苹果、安卓和黑莓都要求开发者在代码上“签名”,就像艺术家给杰作或总统在玫瑰园举行的盛大签名仪式上的签名一样。虽然象征主义和现实之间总是有很大的差距,但数字签名背后的法律和情感力量是毋庸置疑的。

Adobe要求你将私钥和密码上传到它的云上。这看起来像是一种服务,但它给了Adobe创造任何它想要的东西并以任何它喜欢的方式发布的能力。公司会行使这一权力吗?我确信公众的回答接近于“从不”这个词,但是谁知道其他人会在Adobe的基础设施周围闲逛呢?如果奥多比雇佣了艾德·斯诺登(Ed Snowden)这样能够随意读取文件并模仿他人的人,情况会怎样?这个人可以创建额外的应用程序,并轻松地发布它们。

Adobe并不是唯一这样做的公司。AppGyver和Icenium也会造成这个潜在的安全漏洞,在任何情况下都可以解决这个问题。上周,我不得不签署一个新的应用程序,最安全的方式是下载完整的源代码,从头开始构建,然后让苹果的内置签名工具自动处理。计算不需要云服务器。任何人都可以用算法签署任何数字文件。但使用苹果的工具似乎是通过系统最安全的途径。

Adobe的构建工具还提供了另一个不错的功能:应用程序的二进制包装器还可以在启动时查找软件的新版本,Adobe称之为“水化”。This allows you to push new builds to your users without going through the standard update mechanism.

Adobe将构建服务作为“创意云”(Creative Cloud)的一部分出售,其最新计划是将所有应用程序捆绑在一起,每月收取最高75美元的费用。还有一个免费的测试计划,提供一个“私人应用”和无限数量的开放的公共应用。单独的付费程序起价为每月10美元,并提供更多可控制访问的私人应用程序。

AppGyver类固醇

如果模仿是最真诚的奉承,那么AppGyver的人显然是对PhoneGap的迷恋。他们从开源项目中提取了大部分核心内容,但添加了自己的构建基础设施和一个非常有用的特性,这个特性可能会让开发人员难以抗拒。

接口有点不同。使用PhoneGap的标准方式是使用Xcode等常用开发工具,而AppGyver则通过命令行运行,并附带了许多为Node.js开发的工具。安装软件需要运行节点包管理器和Python。虽然AppGyver显然可以在Windows和Cygwin上运行,但我在启动后几秒钟就跑到Mac上了。AppGyver适合Linux和Unix,一切都可以在Mac上运行,因为它是Unix机器。

当所有的命令行输入完成后,你仍然在你的浏览器的代码打。Safari浏览器也模拟和调试的那种HTML的一个可靠的作业的PhoneGap /科尔多瓦运行。我已经发现了一些矛盾,多年来,但不是很多。你写你的代码在你喜欢的编辑器,那么你部署。我开始了在Safari中调试,然后切换到内置的模拟器。Safari提供的那种一步一步调试那是经常需要,而Xcode的模拟器作品多为双重检查。

有一些小问题 - 或许我应该叫他们过于认真的建议。我的构建往往会失败,因为一些SCSS文件不见了。科尔多瓦与Xcode和Safari中的代码运行得很好 - 没有眨一下眼。但AppGyver不会前进没有清理这个问题。

在整个AppGyver过程中,我最喜欢的部分是部署到智能手机的方式。第一次部署时,AppGyver使用URL创建一个二维码。AppGyver还提供了一套免费的应用程序,可以解释这些条形码并使用它们下载最新版本的HTML。突然之间,你的iPhone会伸出手来,吸收你程序的最新版本,并在AppGyver的外壳中运行。

要对这个功能大加赞赏是不可能的。我不知道有多少次我失去了一到两天的开发时间,因为应用程序只能在获得苹果秘密仓库许可的iOS设备上运行。一个人写信给我,说他的手机无法使用该软件——原来他一周前升级过。证书链中的旧UUID现在已经没有价值了,一切都必须重新执行。如果说iOS世界里没有开发者问过苹果的“妈妈,我可以吗”就什么都不会发生,这并不完全正确,但这是一种近似的说法。AppGyver的解决方案对开发人员来说是天赐之物。

AppGyver系统避免了无休止的点击,这会妨碍真正的调试和真正的用户质量保证。苹果的工具坚持无论如何都不能超过100名测试者。应用程序AppGyver已经通过了app Store的审核,只要有人将摄像头对准条形码,它就可以下载你的应用程序的最新版本。其他人可以调试您的代码,这样会简单得多。这是真正的创新。

我发现还有其他一些说法更难证实或欣赏。AppGyver团队称其产品为类固醇,部分原因是它提供了一些用本机代码编写的页面转换。您可以稍微优化您的代码,而Steroids可能会用它自己的方式来替换poky HTML/JavaScript转换。

几年前我就看到了它的价值。我的一些HTML应用程序有时很慢,特别是当我把棒球数据填满内存时。但这种效果在新款智能手机上就不那么明显了。更大的内存和更快的芯片可以更好地交换HTML页面。因此,我在使用类固醇时并没有看到或感觉有什么不同。这在你的应用中可能会很不同;我注意到,智能手机处理代码的方式各不相同。

AppGyver的世界还有其他部分。类固醇与AppGyver的云服务一起工作,云服务处理应用程序的构建和分发。当你调试时,代码通过云传输到你的iPhone或Android。当您准备将其提交到商店时,它将为您构建代码——如果您上载用于创建数字签名的私钥的话。

Prototyper是一款仍处于测试版的简洁工具,它试图让创建应用程序变得像上传图片,然后在图片之间拖放链接一样简单。它是可行的,但只适用于最简单的想法。几分钟后,我想再次掌握控制权,用编辑器编写文本。不过,这可能是一个很好的工具,可以交给老板来绘制原型。如果有什么作用的话,那就是帮助老板了解程序员到底做了多少工作。

AppGyver目前不会对类固醇或云服务直接收费。公司通过支持费和白标签开发来为自己提供资金。AppGyver的开发人员是构建方面的专家,我确信与世界共享这些工具将有助于提高其性能。Prototyper有一个免费计划,每月收取9美元起的小笔费用,费用还会上升到“索要价格”。

Telerik Icenium

在所有这些关于用HTML构建智能手机应用程序的讨论中,一家公司开始吃狗粮,用HTML构建实际的开发工具。Icenium的创始人Telerik正在培育一个完整的生态系统,将创意转化为应用程序,在App Store或谷歌Play上出售。值得注意的是,在中心是一个IDE,它运行在浏览器中。你可以用一个内置在HTML和JavaScript中的工具来编写HTML和JavaScript。

Telerik提供了一整套工具,可以将你的想法转化为应用程序。你可以在浏览器中编写代码,托管在Telerik的云中,然后让云将其构建成一个完整的应用程序。

其中最重要的部分是名为Mist(浏览器)和Graphite(窗口)的ide,以及一个我没有尝试的Visual Studio新扩展。雾和石墨在功能上似乎和我一样,当我发现我在雾中创建的项目开始出现在石墨中时,我并不感到惊讶。两者都提供了文件导航器和编辑器之间的屏幕分割。编辑器可以在基于文本的HTML编辑器和用于拖放小部件的可视化工具之间切换。

有一些小故障。编辑器无法处理多个视图,声称它们不是真正的HTML5。即使我删除了里面所有的div,抱怨还是不断的来。有时使用HTML比使用设计器更简单。

我还发现自己默认使用浏览器中的内置调试器。Firebug和Safari的调试器是不可思议的,还需要一些时间才能和它们一样好。

Icenium工具之间的主要区别是对硬件的访问。Windows IDE (Graphite)可以通过USB端口访问硬件,而基于浏览器的IDE (Mist)则不能。这些工具似乎在不断发展。它们可以很容易地将小部件拖放到适当的位置,但是您仍然需要阅读HTML并考虑其结构。我发现我必须记住HTML层中发生了什么,才能理解如何正确地组合所有小部件。

12 第1页
第1页共2页
工资调查:结果在