0

我有兴趣开始为手机编写应用程序。主要的两个当然是 Android 和 iOS(但对于 Windows 也只能是一件好事)。

我只是想决定选择哪个选项:

我是一名 .NET 程序员(以及业余爱好的 Python Web 开发人员)——因此这是我所有经验的所在。
几年前我在大学学过一点 Java,如果我重新开始,我相信它会开始泛滥。

所以我的选择是:

1) 用 Ja​​va 开发 Android 应用程序 用 C++/Objective C 开发 iOS 应用程序。

我不太介意学习一门新语言 - 但尝试学习 2 可能有点多,而且我不想限制自己只在一个平台上发布应用程序。

2) 用Java 开发Android 应用程序。使用 googles j2Objc ( https://code.google.com/p/j2objc/ ) 将 java 代码转换为 Objective-C 以便能够在 iOS 上本地编译/运行。
听起来不错,如果效果好的话。但是是否有很多 iOS SDK 功能由于 Java 中不存在而无法使用?

3) 使用 C#/.NET 开发并使用 MONO 在 android 和 iOS 上分发它们。(这大概也允许轻松访问发布 Windows 移动应用程序?)
听起来不错,如果它运行良好。我已经很了解 .NET,所以从一开始就可以减轻很多痛苦。


我(目前)并不是真的想开发“游戏”——我更关注各种不同类型的应用程序——从数据驱动到图像处理再到大量计算。

如果我没有沿着路线 2 或 3 走下去,我相信我仍然必须使用本机应用程序(xcode 和一些 java?)来设计 UI,对吗?

我只是想知道是否有人对 Monotouch、Android 单声道或 Java->ObjectC 转换器有任何经验,或者可以提出任何更好的方法。
抱歉,如果这是一个常见问题,我能找到的唯一答案或文章是几年前的,从那时起事情(大概)发生了很大变化!

TL;DR
以最少的麻烦为多个平台开发应用程序的最佳方式是什么。

4

1 回答 1

3

所有的好问题!我会尝试分割我的答案!

我肯定会选择 MonoTouch/Mono for Android 路线,原因如下:

  • 使用熟悉且强大的语言来构建您的应用程序。由于您熟悉该语言及其细节,最终产品也更有可能变得更好。
  • 代码重用。您可以在应用程序之间重用代码的意义部分(非 UI 相关方面)。这节省了大量的开发时间。请参阅iCircuit作为案例研究。这包括 iOS、Android 和 Win7 或 8 手机。
  • 本国的。MonoTouch / Mono for Android 是原生应用程序。他们将比非本地同行更快。
  • 在设计 iOS 应用程序时,您有多种选择。首先,您可以在不使用 Interface Builder 的情况下编写与接口相关的代码。您可以使用PaintCode 之类的工具来生成 C# 绘图代码。其次,您可以使用 Interface Builder(和 Xcode)来设计您的界面。对于 Android,有一个用于 MonoDevelop 和 Visual Studio 的 Visual Designer。
  • 良好的记录。许多大牌公司都在使用 Xamarin 的产品
于 2012-09-19T22:10:00.263 回答