谷歌的移动诱人的Chrome应用SDK
移动应用程序开发是大多数企业的一个巨大的痛点。这场辩论仍在肆虐约的最佳策略。如果您开发本地应用的主要智能手机和平板电脑平台?这是昂贵和费时的,这意味着雇佣难以找到的专家为iOS,Android,黑莓,Windows Phone和要支持其他平台。如果你开发移动Web应用程序?这是更快,更便宜,但牺牲性能和功能。如果你开发混合移动应用,本地应用与炮弹Web视图相结合?这仍然牺牲性能在某些情况下,但复苏的最重要的特征。
移动Chrome应用程序开发工具包,最近发布为a开发者预览版,采用混合式应用程序的策略。它增加了一些价值上,它是由技术相结合,与许多核心浏览器的API,让开发者获得的能力更大的调色板,并针对Chrome应用的能力,以及iOS和Android建成的PhoneGap /科尔多瓦技术混合移动应用程序。在另一面,这个新工具链是与一些大乐事提供给PhoneGap的开发商,如不兼容Adobe PhoneGap构建和它的目标只有前两个移动平台,而不是半打或通过的PhoneGap /科尔多瓦这样的支持。
正如我在最近的评论中所讨论的谷歌浏览器,Chrome应用被编码在HTML,CSS和JavaScript,以及他们使用Chrome API来访问推送消息,拖放,以及几种不同类型的存储,包括谷歌驱动器。用户下载从Chrome Web Store的应用程序,并将其安装在本地计算机上。该应用程序本地启动某个应用的容器,而不是在一个浏览器选项卡,并加载它的第一页 - 不能从远程URL。
一些最令人印象深刻的Chrome桌面应用程序依赖于从JavaScript调用的Flash(或Flex,它也使用Flash运行时)。不幸的是,这在目前的移动设备上是行不通的。苹果从未允许Flash在iOS系统上运行,Adobe也在2012年停止了为Android系统提供Flash播放器的支持。
谷歌的移动Chrome应用工具链一目了然
优点
基于科尔多瓦,联合收割机的Apache应用贝壳Android和iOS与Chrome和谷歌的API
更容易,更耗时比编写单独的Android,iOS和Chrome应用
给你的Chrome应用程序以及增加超出包括在普通的Apache科尔多瓦一定的价值
缺点
需要为iOS开发的是Mac(不像PhoneGap的生成)
不支持Windows Phone,黑莓,或其他不太重要的PhoneGap目标
不完全是最简化,集成开发环境
平台目标的iOS 6或更高版本以及Android 4.x或更高版本。要求对所有目标Node.js的。需要Java JDK 7,Android的SDK 4.4.2或更高版本,以及Apache Ant的靶向Android系统。需要的Xcode 5,IOS部署,和iOS-SIM的定位iOS
谷歌浏览器遇到的Apache科尔多瓦
PhoneGap的开始生活在iPhoneDevCamp事件的快速破解,并最终成长为一个广泛采用的开源项目针对多个移动平台,Nitobi公司的主持下,到2009年,PhoneGap的应用程序可以在iPhone,安卓和黑莓跑。Adobe收购Nitobi在2011年贡献了PhoneGap的代码,Apache软件基金会启动一个新的项目,Apache科尔多瓦。Adobe PhoneGap现在是Apache Cordova的超集,就像苹果Safari和谷歌Chrome是WebKit的超集一样。
2012年,Adobe推出了PhoneGap Build,这是一个基于订阅的Web应用程序,可以将PhoneGap HTML5/JavaScript/CSS3项目编译成适用于各种移动平台的混合应用程序。Cordova框架代码本身仍然是免费开源的。没有PhoneGap构建,开发者需要为他们想要的所有移动平台安装和维护sdk。通过PhoneGap构建,可以避免在本地维护iOS、Android和Windows Phone 8 sdk的繁琐工作,为这三个平台构建就变成了在GitHub上更新项目并按下一个按钮的问题。最新的PhoneGap版本不支持其他Cordova目标:亚马逊Fire OS,黑莓10,Ubuntu, Windows Phone 7, Windows 8和Tizen。
我花了大约两个小时在我的iMac电脑上安装了Mobile Chrome Apps development kit和它的所有要求。我已经安装了大部分主要组件,比如Node。尽管我需要做一些更新并将Java和Ant添加到Bash路径中。如果你是白手起家,可能需要更长的时间。如果您已经拥有了最新的所有先决条件,则可以在不到一小时内启动并运行。如果你在Windows机器上工作,你将无法构建iOS应用程序,但你将能够构建Android和Chrome应用程序。
除了提供应用外壳,移动Chrome应用,您可以访问许多Chrome和科尔多瓦的API。该浏览器的API包括:
身分- 使用的OAuth2访问令牌来登录的用户不提示输入密码
支付- 出售虚拟物品您的移动应用内
pushMessaging- 从你的服务器推送消息到您的应用
插座- 在使用TCP和UDP网络发送和接收数据
通知(目前仅适用于Android) - 从您的手机应用程序发送的通知丰富
存储- 本地存储和检索键值数据
syncFileSystem- 在谷歌提高零售店和同步文件
警报—定期或在将来的指定时间运行任务
应用程序外壳提供了一个移动Web应用程序无法使用的混合应用程序保留状态。当你切换到一个不同的应用程序后,你可以在你的手机或平板电脑上看到显著的差异。混合应用程序回到你离开时的样子;Web应用程序没有。
如果你考虑一下上面列出的Chrome api提供了什么,你会发现一些重要的功能缺失了——例如,访问本机设备文件系统,访问设备的加速计和摄像头,播放和录制音频,以及处理设备事件。
幸运的是,这些功能都可用,无论是从HTML5,或从科尔多瓦的API,其中一些被实现为依赖于设备的科尔多瓦插件。科尔多瓦API包括:
加速度计- 抽头到设备的运动传感器
相机- 使用设备的摄像头拍摄照片
捕获- 使用设备的媒体捕捉应用程序的访问媒体文件
罗盘——获取设备指向的方向
连接- 检查网络状态和蜂窝网络信息
往来——使用设备的联系人数据库
设备收集特定于设备的信息
活动——通过JavaScript挂钩本机事件
文件- 勾成通过JavaScript本机文件系统
地理位置——让你的应用程序知道位置
全球化获取特定于地区和时区的信息或执行操作
InAppBrowser——在另一个应用程序内浏览器实例中启动url
媒体- 录制和播放音频文件
通知- 生成视觉,听觉和触觉设备通知
Splashscreen- 显示和隐藏应用程序的启动画面
存储——钩到设备的本机存储选项
你会注意到索引数据库API,又名IndexedDB,在Chrome API和Cordova API中都没有列出。这是因为它是HTML5[33]的一部分。不幸的是,iOS Safari还不支持IndexedDB。不过,在Safari上通过WebSQL实现IndexedDB需要一些技巧。
从Chrome应用向移动应用
移动Chrome应用开发工具包实现了一个命令行工具,CCA(科尔多瓦Chrome应用),并且支持了Android开发工具(ADT 4.4.2或更高)和Xcode中5,其又包括Xcode的命令行工具。你需要的Java JDK 7和Apache Ant以及为Android开发的ADT,并且除了Xcode中5 iOS开发内部监督办公室部署和IOS-SIM卡。
共同国家评估工具颇为相似,科尔多瓦PhoneGap的命令行工具。像PhoneGap的,CCA可以创建一个目录,添加一个项目或删除插件,添加或删除平台,建一个项目,并运行在一个平台上的项目。此外,CCA可以检查它的环境,复制现有的Chrome应用项目进入一个新的移动版Chrome项目,并运行本地Web服务器。
请注意,编辑网页源代码,IDE或任何其他编辑器之后,你需要运行CCA准备命令生成更新移动代码,才可以在仿真器或模拟器中反映出来。除其他事项外,CCA准备命令复制“www”的项目目录中的内容到两个平台相关的目录平台/安卓/资产/ www和平台/ IOS / WWW,复制科尔多瓦JavaScript文件,并生成清单JSON文件。
不幸的是,对于希望“生活”在某个ide中的开发人员来说,cca prepare命令打乱了流程。如果有一种方法可以将此命令自动合并到构建周期中,我还没有找到它——尽管从原则上讲它应该很简单。更糟糕的是,当运行cca prepare命令时,ide不会自动重新加载更新后的清单。它们只是抱怨清单不同步,并拒绝运行项目,直到您手动强制同步。
考虑到移动Chrome应用程序工具链目前只是一个开发者预览,这些限制是合理的。同时,我希望它有更好的IDE集成。我期待着下一个版本,但在目前的状态下,我不想尝试使用它发布应用程序。
这个故事,“谷歌的移动诱人的Chrome应用SDK”最初发表InfoWorld的 。
版权所有©2014Raybet2