iOS / Android跨平台开发


113

一段时间以来,我一直在用Java开发Android应用程序,并开始对此有所了解。但是,如果我想开始使用iOS版本,则需要从头开始编写所有代码-很好,这是不可取的。

我想知道可用的跨平台解决方案以及它们在实践中的效果如何。我一直在考虑Web应用程序-可能使用jQuery MobileTitanium或Adobe Flash / Flex / Air。我还没有Mac,可能需要投资。

所以我的问题:

  1. iOS / Android(和/或其他设备)存在哪些跨平台开发环境?

  2. 您对这些工具有什么经验?(这是我真的很想知道的)


1
Alister,您当然不是第一个提出这种问题的人,也不是第一个想要回答的人!:)别忘了我曾听过关于它的评论的PhoneGap和Red Foundry,这是一个更好的选择,但看起来不错-尚未跨平台。
2011年

1
您也可以使用PhoneGap。我已经使用过,并建议您继续使用。提供了使用Android PhoneGap上开发的应用程序生成exe文件(适用于iOS的IPA)的规定。
Jayprakash Dubey 2014年

我想对这个问题进行更新,因为它已经到2016年底了,跨平台工具的格局已经改变。我会说这取决于您选择的编程语言以及您的团队在xp上使用最多的语言:1. JavaScript:Phonegap在移动设备上的性能很差,因此使用带有本机组件的工具,但建议使用JS作为应用程序逻辑。选项是V-Play(v-play.net/apps)或React(reactnative.com)。2. C#:Xamarin是您的朋友。3. C ++:使用类似Qt(qt.io)的C ++框架免责声明:我是基于Qt的V-Play的幕后黑手之一。
克里斯蒂安·费尔德巴赫

答:Flutter,这是Google的新移动UI框架,可在创纪录的时间内在iOS和Android上制作本机界面。
naXa

还有一个很有希望的活跃haxe.org项目。
尤金(Eugene Gr)。Philippov

Answers:


104

免责声明:我在Particle Code公司工作,该公司开发了一个跨平台的框架。这个领域有很多公司。似乎每个星期都会涌现出新的东西。对您来说是个好消息:您有很多选择。

这些框架采用不同的方法,并且其中许多都是从根本上设计来解决不同的问题的。有些专注于游戏,有些专注于应用程序。我会问以下问题:

你想写什么?企业应用程序,个人生产力应用程序,益智游戏,第一人称射击游戏?

您喜欢什么样的开发环境?IDE还是纯文本编辑器?

您对编程语言有强烈的感觉吗?在我熟悉的框架中,可以从ActionScript,C ++,C#,Java,Lua和Ruby中进行选择。

我公司的业务更多,所以我没有像Titanium,PhoneGap和Sencha这样的JavaScript + CSS框架玩得那么多。但是我可以向您介绍一些面向游戏的框架。游戏和富互联网应用程序是跨平台框架可以蓬勃发展的领域,因为这些应用程序在视觉上的独特性和与本机UI的融合方面往往更加重要。以下是一些要寻找的框架:

  • Unity www.unity3d.com是3D游戏引擎。确实与我工作过的任何其他开发环境不同。您使用3D模型构建场景,并通过将脚本附加到对象来定义行为。您可以使用JavaScript,C#或Boo编写脚本。如果您要编写可在iOS,Android,Windows,OS X或控制台上运行的基于3D物理的游戏,则可能是适合您的工具。您还可以使用3D资产编写2D游戏-一个很好的例子是独立游戏Max和Magic Marker,这是用Unity编写的基于2D物理的侧滚动器。如果您不知道,建议您检查一下(特别是您家中是否有小孩)。Max适用于PC,Wii,iOS和Windows Phone 7(尽管后者是端口,因为Unity不支持WinPhone)。Unity附带了一些带有3D素材和纹理的示例游戏,这确实有助于在非常复杂的环境中加快速度。

  • Corona www.anscamobile.com/corona是使用Lua脚本语言并支持iOS和Android的2D游戏引擎。Corona的卖点在于能够以几行代码快速编写基于物理的游戏的功能,而iOS应用商店中大量基于Corona的游戏证明了其成功。环境非常苗条,这会吸引一些人。它带有模拟器和调试器。您添加了所选的文本编辑器,并且您拥有一个开发环境。基本的SDK不包含任何UI组件,例如按钮或列表框,但订户可以使用CoronaUI附加组件。

  • Particle SDK www.particlecode.com是一款稍微通用的跨平台解决方案,具有游戏背景。您可以使用MVC应用程序模型以Java或ActionScript编写。它包括带有WYSIWYG UI编辑器的基于Eclipse的IDE。目前,我们支持针对Android,iOS,webOS和Windows Phone 7设备的构建。您也可以为网络输出Flash或HTML5。该框架最初是为在线多人社交游戏(例如扑克和西洋双陆棋)开发的,适合具有复杂逻辑的2D游戏和应用程序。该框架支持2D图形,并包括2D物理引擎。

注意:

今天,我们宣布,Titan跨平台框架的制造商Appcelerator已收购了Particle Code。

...

自2012年1月1日起,[ Particle Code ]将不再正式支持[ Particle SDK ]平台。

资源

  • Airplay SDK www.madewithmarmalade.com是一个C ++框架,可让您在Visual Studio或Xcode中进行开发。它同时支持2D和3D图形。Airplay面向iOS,Android,Bada,Symbian,webOS和Windows Mobile6。它们还具有用于为PSP构建AirPlay应用程序的附加组件。我的C ++非常生锈,我玩的不多,但是看起来很酷。

就学习曲线而言,我想说(对我而言)Unity的学习曲线最为陡峭,Corona最简单,而粒子和Airplay介于两者之间。

另一个有趣的观点是框架如何处理不同的外形尺寸。Corona支持动态缩放,Flash开发人员会熟悉这种缩放。这非常易于使用,但意味着当您从iPhone的4:3屏幕切换到新的qHD Android设备的16:9屏幕时,最终会浪费屏幕空间。通过Particle SDK的UI编辑器,您可以设计可缩放的灵活布局,还可以针对单个屏幕尺寸调整布局。这需要花费更多时间,但可以让您使应用看起来像是针对每个屏幕定制的。

当然,最适合您的选择取决于您的个人品味和工作风格以及您的目标-因此,我建议您下载其中一些工具并进行尝试。所有这些工具均可免费试用。

另外,如果我能发布公共服务声明,那么这些工具中的大多数实际上都在积极开发中。如果找到了自己喜欢的框架,请发送反馈,并让他们知道您喜欢什么,不喜欢什么以及想要看到的功能。您确实有机会影响这些工具的下一版本中的内容。

希望这可以帮助。


我当时在考虑进行更多的企业开发,但是您可能激发了我研究其中一个SDK的乐趣。
Alister

每个框架的链接都将很有用
Petrus Theron

2
更新:粒子代码已由钛的制造商Appcelerator收购,因此,粒子SDK的命运尚不确定。Airplay莫名其妙地更名为“果酱”。
DocDude 2011年

15

MonoTouch和MonoDroid,但是Attachmate的那部分现在会发生什么,这是任何人的猜测。当然,即使使用单声道解决方案,您仍在创建非跨平台视图,但其想法是重用业务逻辑。

请随时关注http://www.xamarin.com/,看看他们提出了什么会很有趣。


12

我在PhoneGap + jQuery Mobile中做一些非常简单的事情的经验很好。我能够在iOS上快速做到这一点。但是,如果不进行一些更改,它就无法在我的Android手机上运行。该项目是一个非常简单的应用程序,用于拍摄照片并将其发布到网站上。最终,与真正的本地应用程序相比,它感觉“笨拙”。

我不相信跨平台开发会很容易。我认为浏览器离您将近。通过选择诸如PhoneGap之类的东西,我认为您只是将一组痛苦点换成另一组痛苦点。


7

如果您不想使用成熟的框架进行跨平台开发,请选择C ++。iOS完全支持通过Objective-C ++将C ++用于您的应用程序逻辑。我不知道Android通过NDK对C ++的支持多么适合于在C ++中执行业务逻辑,而不仅仅是一些对性能至关重要的代码片段,但是如果很好地支持用例,则可以尝试一下。

这种方法仅在您的应用程序逻辑构成项目的最大部分时才有意义,因为必须针对每个平台分别编写用户界面。

实际上,C ++是受最广泛支持的一种编程语言(C除外),因此是大多数大型跨平台应用程序的核心语言。


3
顺便说一句,Android实际上似乎直接支持仅用C ++编写的活动: developer.android.com/reference/android/app/NativeActivity.html
yeoman

4
需要注意的是-NativeActivity没有Java访问权限(因此没有第三方库集成或SDK访问权限)。使它不适用于许多目的。
rbgrn

6

尽管我才刚刚开始研究这个开发领域,但我认为它可以归结为这种基本区别:某些工具保留了原始代码,而某些移植到了本机...

例如,PhoneGap只是保留您编写的HTML / CSS / JS代码,并将其包装在足够的iOS代码中才有资格作为应用程序,而Appcelerator为您提供XCode项目...因此,如果您不熟悉iOS,那么就不会真正提供超过PhoneGap的给你任何好处,但如果你DO知道一点,那可能会给你稍微多一些,以调整你的更大的编码工作后的原生版本的能力。

我本人没有使用过appcelerator,而是在几周前进行了一个项目,其中我们的一个团队成员在大约24小时内使用它制作了整个iPad应用程序。

是的,要真正提交给苹果,您必须拥有一台Mac,但是如果这不是您的主要工作平台,那么您可以便宜一些。




3

如果您曾经使用过LUA,则可以尝试使用Corona SDK来创建可在IOS和Android上运行的应用程序

https://coronalabs.com/

我已经下载了它并弄乱了一些,我发现LUA是一种非常容易学习的脚本语言,没有通常的脚本语言麻烦/局限性...。


2

在过去的18个月中,我们一直在使用BatteryTech,并已发布了几款游戏。 http://www.batterypoweredgames.com/batterytech

所有C ++,Android和iOS支持,所有用户都可以获得完整的源代码。新的v2包含lua绑定。


3
截至2012年5月30日:5个或更少开发人员的许可费用为200美元。800美元(超过5个)。不能用于开源项目。
罗杰·达尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.