IOS/Android 跨平台开发

我已经在 Java 中开发 Android 应用程序有一段时间了,现在已经开始掌握它了。然而,如果我想从一个 iOS 版本开始,我需要从头开始编写所有代码——这是不可取的。

我想知道有哪些跨平台解决方案是可用的,以及它们在实践中的效果如何。我一直在考虑网络应用程序-可能使用 JQuery Mobile钛合金,或 Adobe Flash/Flex/Air。我还没有苹果电脑,可能要投资一下。

所以我的问题是:

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

  2. What has your experience been with these tools? (this is what I'm really keen to know)

103100 次浏览

虽然我才刚刚开始关注这个开发领域,但我认为这归结为一个基本的区别: 一些工具保留了原始代码,而一些工具将其移植到了本机..。

例如,PhoneGap 只是保留了你编写的 HTML/CSS/JS 代码,并用足够的 iOS 代码将其包装成一个应用程序,而 Appcelerator 则为你提供了一个 XCode 项目... ... 所以如果你不熟悉 iOS,那么这并不会给你带来比 PhoneGap 更多的好处,但是如果你对 好的有所了解,这可能会让你在更大的编码工作之后,有更多的能力来调整原生版本。

我自己还没有使用过 Appcelerator,但是几周前参与了一个项目,我们的一个团队成员在24小时内用它做了一个完整的 iPad 应用程序。

And yes, to actually submit to apple, you'll have to get a mac, but if that's not your primary work platform you can go cheap.

MonoTouch 和 MonoDroid,但是 Attachmate 的这部分将会发生什么,现在谁也说不准。当然,即使使用 mono 解决方案,您仍然在创建非跨平台视图,但其想法是重用业务逻辑。

密切关注 http://www.xamarin.com/,看看他们会提出什么将是有趣的。

卡布奇诺或 PhoneGap

有时候,尽管试图找到一个捷径并不能节省你的时间或给你一个可比较的最终产品。

我在 PhoneGap + jQueryMobile 中做一些非常简单的东西的经验还不错。我可以在 iOS 上很快地做到这一点。然而,如果不做一些修改,它就不能在我的 Android 手机上工作。该项目是一个非常简单的应用程序,采取图片和张贴到一个网站。最后,与一个真正的本地应用程序相比,它显得“笨重”。

I don't believe there will ever be easy cross platform development. I think the browser is as close as you will get. By choosing something like PhoneGap I think you are just trading one set of pain points for a different set of pain points.

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

https://coronalabs.com/

我已经下载了一些,我发现 LUa 是一个非常容易学习的脚本语言,没有通常的脚本语言麻烦/限制..。

Disclaimer: I work for a company, Particle Code, that makes a cross-platform framework. There are a ton of companies in this space. New ones seem to spring up every week. Good news for you: you have a lot of choices.

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

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

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

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

我的公司更多的是在游戏领域,所以我没有使用过像 Titium、 PhoneGap 和 Sencha 这样的 JavaScript + CSS 框架。但是我可以告诉你一些面向游戏的框架。游戏和丰富的互联网应用程序是跨平台框架可以发光发热的领域,因为这些应用程序往往更重视视觉上的独特性,而不太重视与本地 UI 的融合。以下是一些需要寻找的框架:

  • Unity 第三季,第12集是一个3D 游戏引擎。它真的不像我工作过的其他开发环境。您使用3D 模型构建场景,并通过将脚本附加到对象来定义行为。您可以使用 JavaScript、 C # 或 Boo 编写脚本。如果你想写一个基于物理学的3D 游戏,可以在 iOS、 Android、 Windows、 OS X 或者控制台上运行,这可能是你的工具。您还可以使用3D 资产编写2D 游戏——这方面的一个很好的例子是独立游戏 麦克斯和神奇马克笔,一个用 Unity 编写的基于物理的2D 侧滚动器。如果你不知道,我建议你去看看(特别是如果你家里有孩子的话)。Max 适用于 PC、 Wii、 iOS 和 WindowsPhone7(尽管后者是一个端口,因为 Unity 不支持 WinPhone)。Unity 附带了一些3D 资源和纹理的样本游戏,这真的有助于我们快速适应一个相当复杂的环境。

  • Corona Www.anscamobile.com/corona is a 2D games engine that uses the Lua scripting language and supports iOS and Android. The selling point of Corona is the ability to write physics-based games very quickly in few lines of code, and the large number of Corona-based games in the iOS app store is a testament to its success. The environment is very lean, which will appeal to some people. It comes with a simulator and debugger. You add your text editor of choice, and you have a development environment. The base SDK doesn't include any UI components, like buttons or list boxes, but a CoronaUI add-on is available to subscribers.

  • 粒子 SDK Www.particlecode.com是一个稍微通用一点的跨平台解决方案,具有游戏背景。使用 MVC 应用程序模型,您可以使用 Java 或 ActionScript 编写代码。它包括一个带有所见即所得 UI 编辑器的基于 Eclipse 的 IDE。我们目前支持 Android、 iOS、 webOS 和 WindowsPhone7设备的构建。你也可以在网络上输出 Flash 或者 HTML5。这个框架最初是为在线多人社交游戏(如扑克和双陆棋)开发的,它适用于具有复杂逻辑的2D 游戏和应用程序。该框架支持2D 图形,并包括一个2D 物理引擎。

注意:

今天我们宣布,粒子代码已被 Appcelerator 收购,该公司是钛跨平台框架的制造商。

...

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

来源

  • Airplay SDKwww.madewithmarmalade.com是一个 C + + 框架,可以在 VisualStudio 或 Xcode 中进行开发。它同时支持2D 和3D 图形。Airplay 的目标是 iOS、 Android、 Bada、 Symbian、 webOS 和 WindowsMobile6。他们还有一个附加组件来为 PSP 开发 AirPlay 应用程序。我的 C + + 非常生疏,我没怎么玩过它,但它看起来很酷。

在学习曲线方面,我认为 Unity 的学习曲线最陡峭(对我来说) ,Corona 是最简单的,粒子和 Airplay 介于两者之间。

另一个有趣的问题是框架如何处理不同的形式因素。Corona 支持动态扩展,这对 Flash 开发人员来说是熟悉的。这是非常容易使用,但意味着你最终浪费屏幕空间时,从4:3屏幕像 iPhone 一样16:9像新的 qHD 安卓设备。粒子 SDK 的 UI 编辑器允许您设计可伸缩的灵活布局,但也允许您调整各个屏幕大小的布局。这需要更多的时间,但让您的应用程序看起来定制为每个屏幕。

Of course, what works for you depends on your individual taste and work style as well as your goals -- so I recommend downloading a couple of these tools and giving them a shot. All of these tools are free to try.

Also, if I could just put in a public service announcement -- most of these tools are in really active development. If you find a framework you like, by all means send feedback and let them know what you like, what you don't like, and features you'd like to see. You have a real opportunity to influence what goes into the next versions of these tools.

希望这个能帮上忙。

如果您不想使用成熟的框架进行跨平台开发,那么可以考虑使用 C + + 作为一种选择。IOS 完全支持通过 Objective-C + + 对应用程序逻辑使用 C + + 。我不知道 Android 通过 NDK 对 C + + 的支持是否适合在 C + + 中进行业务逻辑,而不仅仅是一些性能关键的代码片段,但是如果那个用例得到了很好的支持,你可以尝试一下。

This approach of course only makes sense if your application logic constitutes the greatest part of your project, as the user interfaces will have to be written individually for each platform.

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

还有 MoSync 移动 SDK

GPL 和商业许可。有一个很好的概述他们的方法 给你

还有电池技术,我们已经使用了18个月,并已发布了几个游戏关闭它。http://www.batterypoweredgames.com/batterytech

所有的 C + + ,Android 和 iOS 支持,所有的用户都得到完整的源代码。