iOS/Android跨平台开发

Ali*_*ter 112 android cross-platform ios

我一直在玩Java开发Android应用程序一段时间,我开始处理它.但是,如果我想在iOS版本上启动,我需要从头开始编写所有代码 - 这是不可取的.

我想知道可用的跨平台解决方案以及它们在实践中的运行情况.我一直在考虑Web应用程序 - 可能使用jQuery MobileTitanium,或Adobe Flash/Flex/Air.我还没有Mac,我可能不得不投资.

所以我的问题:

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

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

Doc*_*ude 103

免责声明:我为一家制作跨平台框架的公司Particle Code工作.这个领域有很多公司.新的似乎每周都会出现.对你好消息:你有很多选择.

这些框架采用不同的方法,其中许多方法基本上是为解决不同的问题而设计的.有些专注于游戏,有些专注于应用.我会问以下问题:

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

您更喜欢哪种开发环境?IDE或普通ol'文本编辑器?

你对编程语言有强烈的感觉吗?在我熟悉的框架中,您可以选择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是一款2D游戏引擎,使用Lua脚本语言并支持iOS和Android.Corona的卖点是能够在几行代码中快速编写基于物理的游戏,而iOS应用程序商店中的大量基于Corona的游戏证明了它的成功.环境非常稀薄,这将吸引一些人.它配有模拟器和调试器.您添加了您选择的文本编辑器,并且您有一个开发环境.基本SDK不包含任何UI组件,如按钮或列表框,但订阅者可以使用CoronaUI附加组件.

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

注意:

今天我们宣布粒子代码已经被Titanium跨平台框架的制造商Appcelerator收购.

...

自2012年1月1日起,[ 粒子代码 ]将不再正式支持[ Particle SDK ]平台.

资源

  • Airplay SDK www.madewithmarmalade.com是一个C++框架,允许您使用Visual Studio或Xcode进行开发.它支持2D和3D图形.Airplay面向iOS,Android,Bada,Symbian,webOS和Windows Mobile 6.他们还有一个附加组件,可以为PSP构建AirPlay应用程序.我的C++非常生疏,我没有玩过很多,但看起来很酷.

在学习曲线方面,我会说Unity有最陡峭的学习曲线(对我而言),Corona是最简单的,而粒子和Airplay介于两者之间.

另一个有趣的问题是框架如何处理不同的形状因素.Corona支持动态扩展,这是Flash开发人员所熟悉的.这非常容易使用,但这意味着当你从像iPhone这样的4:3屏幕变成像新的qHD Android设备那样的16:9时,你最终会浪费屏幕空间.Particle SDK的UI编辑器允许您设计可缩放的灵活布局,还可以调整各个屏幕尺寸的布局.这需要花费更多时间,但是让您可以为每个屏幕定制应用程序.

当然,对你有用的东西取决于你的个人品味和工作方式以及你的目标 - 所以我建议你下载一些这些工具并给他们一个机会.所有这些工具都可以免费试用.

此外,如果我可以发布公共服务公告 - 大多数这些工具都在积极开发中.如果您找到自己喜欢的框架,请务必发送反馈,让他们知道您喜欢什么,不喜欢什么,以及您希望看到的功能.您有机会影响这些工具的下一版本.

希望这可以帮助.

  • 更新:粒子代码是由Titanium的制造商Appcelerator收购的,因此粒子SDK的命运是不确定的.Airplay改名为"Marmalade",相当令人费解. (2认同)

Der*_*tie 15

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

关注http://www.xamarin.com/,看看它们的结果会很有趣.


Eva*_*van 11

我在PhoneGap + jQuery Mobile中制作非常简单的经验很好.我能够快速为iOS做到这一点.但是,如果不进行一些更改,它在我的Android手机上无效.该项目是一个非常简单的应用程序,可以拍照并将它们发布到网站上.并且在一天结束时,与真正的原生应用程序相比,它感觉"笨拙".

我不相信会有简单的跨平台开发.我认为浏览器尽可能接近.通过选择类似PhoneGap之类的东西,我认为你只是为一组不同的痛点交换一套痛点.


yeo*_*man 7

如果您不想使用完整的框架进行跨平台开发,请查看C++作为选项.iOS完全支持通过Objective-C++将C++用于您的应用程序逻辑.我不知道Android通过NDK对C++的支持是如何适合用C++编写业务逻辑而不仅仅是一些性能关键的代码片段,但是如果用例得到很好的支持,你可以尝试一下.

这种方法当然只有在您的应用程序逻辑构成项目的最大部分时才有意义,因为必须为每个平台单独编写用户界面.

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

  • 有一点需要注意 - NativeActivity没有Java访问权限(因此没有第三方库集成或SDK访问权限).使其不适用于许多目的. (3认同)
  • 顺便说一句,Android实际上似乎只支持用C++编写的活动:http://developer.android.com/reference/android/app/NativeActivity.html (2认同)

Rob*_*ods 5

虽然我刚刚开始研究这个开发领域,但我认为它归结为这个基本的区别:一些工具保留原始代码,一些端口保留原生代码......

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

我自己没有使用appcelerator,但几周前我们的一个项目工作,我们的一个团队成员在大约24小时内使用它制作了一个完整的iPad应用程序.

是的,要真正提交给苹果,你必须得到一台Mac,但如果这不是你的主要工作平台,你可以便宜.