逃离了iOS SDK:建筑iPhone(和Android)通过Flash应用程式

开发人员可以在实际上使用Flash和类似电晕SDK创建苹果App Store的应用程序,以及针对Android

曾几何时,对于Adobe Flash开发者来说,进入苹果应用商店的路径非常简单:放下你的幼稚方式和全身心投入的Objective-C的纯复杂性。你看中的工具和渲染库是初学者不错,但只有那些谁掌握指针和malloc的人欢迎宴iOS表。其他人都不得不猛踩他们的手指上了门。

原因很简单:苹果拒绝接受使用库或翻译代码,就像schoolmarms无处不在,坚持认为每个人都自己写代码。或许苹果很害怕病毒,下载的代码,或者从竞争的跨平台工具。

(彼得·维纳解释道如何通过编写基于HTML的移动应用逃脱App Store的。|与InfoWorld保持同步的编程问题和趋势开发世界通讯。]

然后。现在苹果已经停歇了一下而不再完全关闭了像Adobe的Flash运行时平台为iOS开发应用程序量身定做的iPhone和iPad。这是谁已经掌握了一套工具,继续生产一些在网络上最好看的内容的人的好消息。

InRuntime首席执行官、游戏《炼金术士》(Alchemist)的创造者保利乌斯·乌扎(Paulius Uza)表示:“基本上,Adobe矢量渲染和栅格渲染在制作过程中花费了数年时间,他们已经完善了这项技术。”他的公司经常使用其他技术比如OpenGL来原型化想法,但是他认为“Flash版本总是看起来更漂亮。”

现在,Flash开发人员喜欢UZA有几条路径从Adobe的iPhone和iPad,以及由谁用来工作的Adobe人们建立了一个尖锐的竞争对手。所有这些开拓机会对于那些谁习惯于在Flash生态系统合作,利用他们的天赋和旧代码来创建新的应用程序。

独立包装iPhone工具需要你的ActionScript 3代码和交叉编译它到iOS 3.0或更高版本的设备上运行。输出本地代码,不解释字节码的Flash;对于苹果来说,这种包装工序几乎可以保证你不会在互联网上发售新的字节码的设备和规避在苹果App Store的守门人。

Packager for iPhone是最好的开发者谁知道如何创建一个Flash网站。Uza说他的团队喜欢这个选项,因为它为那些喜欢按照程序员的思路思考的人提供了更多的控制。“我们用Flash Builder来编写代码,这只对开发者开放。它没有任何可视化资产的工具,”他指出。

更随意的创建者,如图形设计师,他们更喜欢集成的应用程序,可以使用Flash Professional CS5,它现在为iPhone内置了Packager。你不需要把项目保存到网上,而是选择一个选项,将项目转换为可以在app Store中使用的应用程序。它仍然要求开发者拥有苹果的证书,你可以在苹果的iOS开发程序上注册,但是Adobe的工具可以完成剩下的工作。

第三路径来自于科罗娜SDK由Ansca移动公司创建,这家公司的创始人曾经是Flash团队的成员。尽管SDK使用Lua而不是ActionScript作为语言,但应用程序的结构和API非常类似于Flash。首席执行官Walter Luh说,“有很多人会发现它是一个非常容易理解的产品。”

这两个工具也保证跨平台的机会。谷歌欢迎Flash开发的Android上,作为具有惠普为即将到来WebOS 2.1。Adobe还计划在确保其闪存代码将在即将运行RIM的PlayBook的黑莓平板电脑操作系统。科罗纳同时支持iOS版安卓,它可能会增加,如果需求令其他平台。

将Flash应用从桌面移动到移动端这些工具将非常诱人任何Flash开发人员使用的代码一堆已经在网络上运行。

“在某些情况下,你可以将它们移植过来,” Adob​​e Systems的闪存产品经理理查德·高尔文说。“更新为更小的屏幕大小的项目,然后很快发布出来的iOS。你可以从字面上采取完全相同的项目,并在接下来的同一步骤公布出来到Android。”

不过,他警告说,尽管Adobe的打包将会使一切工作,有可能是UI的问题与停靠的应用程序。例如,智能手机的屏幕很小,通常是没有键盘,没有它的桌面Flash应用程序通常容纳。同样,触摸事件的行为,从鼠标点击略有不同。因此,许多桌面Flash应用程序将需要一些如何与代码的用户交互的重新思考。

也有相当数量的重新工作,需要做的图形。虽然所有的艺术作品将显示,如果是移植,规模往往是错误的较小的设备。因此,在PC屏幕上很容易看到的精灵在iPhone上往往太小了。最大的挑战往往来自于小屏幕上的空间少得多。

更深层次的挑战来自艺术风格。一些Flash演示依靠艺术载体,在许多尺度上显示相同的视觉效果。虽然这个工程对iPhone,它的表现往往是明显比纯粹的位图稿,这是由智能手机的图形硬件来处理少比比。设置cacheAsBitmap属性可以加快这种艺术载体的渲染 - 这一点尤其重要,如果背景是矢量图形,因为发动机重新呈现每一个时间在上一个精灵的它移动。

Adobe的项目经理Tom Barclay说,公司正在考虑在构建过程中增加更多的自动化功能,这样packager工具就可以立即将矢量图形栅格化到适合屏幕的合适大小。开发人员已经知道,要想利用新款iphone视网膜显示屏的额外分辨率,需要另外一组分辨率更高的图形。理想情况下,构建工具将转换矢量图像并重新渲染位图,以便将来利用这种更高分辨率的显示。

如何转移到科罗娜移动到Ansca的电晕的挑战是为Flash程序员有点不同,因为语言,Lua中,是不一样的动作脚本。差异在很大程度上是化妆品,还有一些报告说,他们只是返工自己的代码嵌入一个像话更换大括号一样简单的步骤“做的。”

Ansca的Luh说,移植代码通常很简单,因为数据结构相对相似,也不复杂。例如,Lua只提供一种表,即无类型的名称-值对的集合。

乔纳森·毕比,谁创造的游戏,如洞穴德雷克和他的妻子和名字毕比游戏下发布他们的开发人员,说他被吸引到电晕因为Lua是远低于指针主宰C语法望而生畏。“当我第一次碰到它,我正要学习Objective-C,”他回忆道。他注意到,Lua是非常相似的PHP,这是他之前使用。“这是很容易的过渡从PHP到Lua。”

除了现有的ActionScript代码转换到Lua,电晕开发商有shoehorning一个桌面应用程序到智能手机的小屏幕相同的挑战 - 往往比移植应用程序的逻辑一个更大的挑战。“有趣的是,因为iPhone有如此高的分辨率,[开发商]花更多的时间更新图形并把它们备份到iOS的质量,”笔记禄。

Flash开发和Corona开发之间最大的区别之一是使用库。Flash平台已经建立得很好,有数百个库可供想要进行集成的程序员使用,包括商业的和开源的。

电晕,而另一方面,配备了多种功能,使用Adobe的工具,Flash开发者必须通过外界库链接得到的,和电晕的版本通常可以很简单。一个例子电晕推被称为“物理学在5行,”一个简单的项目,说明如何通过设置短短领域中创建对象和设置在运动中。您可以使用这些技术来构建采用简单的物理创建世界基本的游戏,然后看着它掰开的物体击中对方。禄说,他的看着开发商克隆愤怒的小鸟大约一天的工作。

毕比说,他与物理引擎的工作很享受,因为它是最简化创建的街机游戏,精确地模拟地球上的二维对象的行为的艰苦跋涉的。“这真是太好了,”他说。他还指出它的基础上Box2D的开源库,提供了一个连续的物理引擎模拟对象如何相互弹开。

Corona SDK还提供了对几个库的访问,以深入研究智能手机的内部结构,包括连接摄像头、扬声器、GPS和加速计。更令人惊讶的是用于向Facebook发布更新的本地库。

Beebe特别感谢新的库简化了应用程序内购买。他说:“我读过一些非常详细的关于在应用程序中实现它们的可怕故事。”在Corona中,最复杂的部分是处理iTunes Connect,这是每个人都要做的事情,不管使用的SDK是什么。”

跨平台移动应用开发的现实一个Adobe的和Ansca的工具的一大景点,是为多个平台编写相同的代码的机会。但现实并不像承诺那样有吸引力。

马克·西格尔,麒麟实验室,移动应用开发者,的联合创始人说,虽然开发者可以只选择另存为菜单选项,它们通常不会被对结果满意。“这就像任何其他:还有的将是时间的10%或15%,你会花提炼你的目标,”他说。

Sigal说,Android设备的激增是一个特别繁重的挑战,因为有这么多不同的尺寸和版本,以及略微不同的硬件配置。但是使用一个中立的开发平台,如Flash或Corona,保持了可变性,他说:“实际上我们支持22个不同的目标。”Thanks to the tool, "It wasn't a big deal."

这个故事, ”逃离了iOS SDK:建筑iPhone(和Android)通过Flash应用程式”最初发表于InfoWorld.com。关注最新的发展编程移动技术在InfoWorld.com。有关最新的业务技术新闻,请在Twitter上InfoWorld.com

阅读更多关于开发者世界的信息在InfoWorld的开发者世界的通道。

这个故事,:最初是由出版的“逃离了iOS SDK构建iPhone(和Android)通过Flash应用程序”InfoWorld的

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。

©2011足球竞彩网下载

工资调查:结果是