java - 移动开发——Mono、Java w/J2ObjC 还是原生?

标签 java .net mobile xamarin.ios

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

9年前关闭。




Improve this question




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

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

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

所以我的选择是:

1)用Java开发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 走下去,我相信我仍然必须使用 native 应用程序(xcode 和一些 java?)来设计 UI,对吗?

我只是想知道是否有人对 Monotouch、Android 单声道或 Java->ObjectC 转换器有任何经验,或者可以提出任何更好的方法。

抱歉,如果这是一个常见问题,我能找到的唯一答案或文章是几年前的,从那时起事情(大概)发生了很大变化!

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

最佳答案

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

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

  • 使用熟悉且强大的语言来构建您的应用程序。由于您熟悉该语言及其细节,最终产品也更有可能变得更好。
  • 代码重用。您可以在应用程序之间重用代码的意义部分(非 UI 相关方面)。这节省了大量的开发时间。见 iCircuit作为案例研究。这包括 iOS、Android 和 Win7 或 8 手机。
  • 本国的。 MonoTouch/Mono for Android 是原生应用程序。他们将比非本地同行更快。
  • 在设计 iOS 应用程序时,您有多种选择。首先,您可以在不使用 Interface Builder 的情况下编写与接口(interface)相关的代码。您可以使用 PaintCode 之类的工具生成 C# 绘图代码。
    其次,您可以使用 Interface Builder(和 Xcode)来设计您的界面。对于 Android,有一个用于 MonoDevelop 和 Visual Studio 的 Visual Designer。
  • 良好的记录。大量big-name companies正在使用 Xamarin 的产品
  • 关于java - 移动开发——Mono、Java w/J2ObjC 还是原生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498646/

    相关文章:

    javascript - html 对象在移动设备上不显示它应该显示的位置

    java - 当两个微调器等于特定字符串时,如何允许调用函数?

    Java 正则表达式匹配 +/-/*/%

    java - 使用不同的参数调用不同地点的 Swing worker

    .net - WinForms:右对齐标签自动调整大小

    .net - 在 .NET Core 中运行后台服务

    JavaScript - 当点击外部时隐藏元素在手机上不起作用

    java - 在 Undertow 中启用 HTTPS

    java jsoup 获取文本失败

    c# - 如何将 "yyyyMMdd Hmm"格式的字符串解析为DateTime?