iOS / Android跨平台开发[已关闭]

nqwrtyyt  于 2022-12-24  发布在  iOS
关注(0)|答案(9)|浏览(172)

要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对Stack Overflow来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describe the problem以及迄今为止为解决该问题所做的工作。
八年前就关门了。
Improve this question
我用Java开发Android应用程序已经有一段时间了,现在已经开始掌握了。但是,如果我想在iOS版本上开始,我需要从头开始编写所有代码--这是不可取的。
我想知道现在有哪些跨平台解决方案,以及它们在实践中的效果如何。我一直在考虑网络应用程序--可能使用jQuery MobileTitanium,或者Adobe Flash/Flex/Air。我也还没有Mac电脑,可能需要投资购买。
所以我的问题:

  1. iOS/Android(和/或其他设备)有哪些跨平台开发环境?
    1.您使用这些工具的经验是什么?(这是我非常想知道的)
3yhwsihp

3yhwsihp1#

免责声明:我在一家名为ParticleCode的公司工作,这家公司提供跨平台框架。在这个领域有很多公司。新的公司似乎每周都在涌现。好消息是:你有很多选择。
这些框架采用了不同的方法,其中许多从根本上是为了解决不同的问题而设计的。有些专注于游戏,有些专注于应用程序。我会提出以下问题:
你想写什么?企业应用程序,个人生产力应用程序,益智游戏,第一人称射击游戏?
你喜欢哪种开发环境?IDE还是纯文本编辑器?
你对编程语言有强烈的感觉吗?在我熟悉的框架中,你可以从ActionScript、C++、C#、Java、Lua和Ruby中选择。
我的公司更多的是在游戏领域,所以我还没有太多的JavaScript+CSS框架,如Titanium,PhoneGap和 Sencha 。但我可以告诉你一些面向游戏的框架。游戏和富互联网应用程序是一个跨平台框架可以发光的领域。因为这些应用程序倾向于更重视视觉上的独特性,而不太重视与本地UI的融合。

  • Unity www.unity3d.com是一个3D游戏引擎。它与我工作过的任何其他开发环境都不一样。你可以用3D模型构建场景,并通过将脚本附加到对象来定义行为。你可以用JavaScript、C#或Boo编写脚本。如果你想编写一个基于3D物理的游戏,并在iOS、Android、Windows、OSX或控制台上运行,这可能就是适合您的工具。您还可以使用3D资源编写2D游戏--独立游戏Max and the 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是一个更通用的跨平台解决方案,有游戏背景。您可以使用Java或ActionScript编写,使用MVC应用程序模型。它包括一个基于Eclipse的IDE和一个WYSIWYG UI编辑器。我们目前支持为Android、iOS、webOS和Windows Phone 7设备。您还可以输出Flash或HTML5用于Web。该框架最初是为在线多人社交游戏开发的,如扑克和双陆棋,适用于2D游戏和逻辑复杂的应用,支持2D图形,包含2D物理引擎。
    注:

今天我们宣布ParticleCode已经被Appcelerator收购,Appcelerator是Titanium跨平台框架的制造商。
...
自2012年1月1日起,[Particle Code]将不再正式支持[Particle SDK]平台。
Source

  • Airplay SDK www.madewithmarmalade.com是一个C框架,可以让你在Visual Studio或Xcode中进行开发。它支持2D和3D图形。Airplay的目标是iOS、Android、Bada、Symbian、webOS和Windows移动的6。他们还提供了一个插件,可以为PSP构建AirPlay应用程序。我的C非常生疏,我没有玩过太多,但它看起来很酷。

就学习曲线而言,我想说Unity的学习曲线(对我来说)最陡,Corona是最简单的,粒子和Airplay介于两者之间。
另一个有趣的地方是框架如何处理不同的外形因素。Corona支持动态缩放,Flash开发者对此非常熟悉。这非常容易使用,但意味着当你从iPhone这样的4:3屏幕切换到新的qHD Android设备这样的16:9屏幕时,你最终会浪费屏幕空间。Particle SDK的UI编辑器可以让你设计灵活的缩放布局,但也可以让你根据不同的屏幕大小调整布局。这需要多花一点时间,但可以让你让应用程序看起来像是为每个屏幕定制的。
当然,什么样的工具对你有效取决于你个人的品味、工作风格以及你的目标--所以我建议你下载几个这样的工具并尝试一下,所有这些工具都是免费的。

另外,如果我可以发布一个公共服务公告--这些工具中的大多数都在积极的开发中。如果你找到了一个你喜欢的框架,通过各种方式发送反馈,让他们知道你喜欢什么,你不喜欢什么,以及你想看到的功能。你有一个真正的机会来影响这些工具的下一个版本。

vddsk6oq

vddsk6oq2#

MonoTouch和MonoDroid,但是Attachmate的这部分会发生什么现在是任何人的猜测。当然,即使使用mono解决方案,您仍然创建非跨平台视图,但是想法是业务逻辑的重用。
继续关注http://www.xamarin.com/,看看他们能想出什么会很有趣。

9nvpjoqh

9nvpjoqh3#

我在PhoneGap+jQuery移动的中做一些非常简单的事情的经验还不错。我能够在iOS上快速完成。然而,如果不做一些修改,它就不能在我的Android手机上工作。这个项目是一个非常简单的应用程序,用于拍照并将照片发布到网站上。最终,与真正的本地应用程序相比,它感觉“笨拙”。
我不认为跨平台开发会很容易。我认为浏览器是你能得到的最接近的东西。选择PhoneGap这样的东西,我认为你只是在用一组痛点交换另一组痛点。

efzxgjgh

efzxgjgh4#

如果你不想使用成熟的跨平台开发框架,可以考虑C++。iOS完全支持通过Objective-C使用C进行应用逻辑。我不知道Android通过NDK对C的支持是否适合用C进行业务逻辑,而不仅仅是一些性能关键的代码片段。但是如果这个用例得到了很好的支持,您可以给予一下。
当然,这种方法只有在应用程序逻辑构成项目的最大部分时才有意义,因为用户界面必须为每个平台单独编写。
事实上,C++是支持最广泛的编程语言(C除外),因此是大多数大型跨平台应用程序的核心语言。

omqzjyyz

omqzjyyz5#

虽然我才刚刚开始关注这一领域的发展,但我认为这可以归结为以下基本区别:有些工具保留了原始代码,有些移植到了本地...
例如,PhoneGap只是保留你编写的HTML/CSS/JS代码,并将其 Package 在足够的iOS代码中,以符合应用程序的要求,而Appcelerator则为你提供了一个XCode项目...因此,如果你不熟悉iOS,那么它不会真正为你提供任何优于PhoneGap的好处,但如果你 * 确实 * 知道一点,这可能给予您在进行较大的编码工作之后能够更好地调整本机版本。
我自己没有使用过appcelerator,但几周前参与了一个项目,我们的一个团队成员用它在大约24小时内制作了一个完整的iPad应用程序。
是的,要真正向苹果提交,你必须买一台mac电脑,但如果这不是你的主要工作平台,你可以买便宜的。

lp0sw83n

lp0sw83n6#

CappuccinoPhoneGap
有时候,虽然试图找到一个捷径并不能保存你的时间或给予你一个可比的最终产品。

06odsfpq

06odsfpq7#

还有MoSync Mobile SDK
GPL和商业许可证。有一个很好的概述他们的方法here

9rbhqvlz

9rbhqvlz8#

如果你曾经使用过LUA,你可以试试Corona SDK可以创建在IOS和Android上运行的应用程序
https://coronalabs.com/
我已经下载了它,并弄乱了一些,我发现LUA是一个非常容易学习的脚本语言,没有通常的脚本语言的麻烦/限制...

baubqpgj

baubqpgj9#

还有BatteryTech,我们在过去的18个月里一直在使用它,并发布了几款游戏。http://www.batterypoweredgames.com/batterytech
所有的C++,Android和iOS支持,所有的用户都可以得到完整的源代码。新的v2包括lua绑定。

相关问题