11

我正在进入移动开发。自从 1.0 发布测试版以来,我一直主要在 .NET 中工作。在此之前,我主要是 C++ 和 Delphi 的人,并且时不时地涉足 C++。我经常做网络应用程序,所以我相当精通 Javascript、JQuery 和 CSS。我还做过一些 Java 应用程序。我开始使用 CGI 进行 Web 编程,这些天主要生活在 ASP.NET MVC 世界中。

我正在尝试决定选择哪个平台/操作系统和工具。我关心我的应用程序可用的市场规模以及我将掌握的技能的适销性。

我想到的应用程序可以在手机和平​​板电脑上运行。我想到的某些方面将在打击垫上可用的更大屏幕上发挥更好。

以下是我正在考虑的选项:

  1. Apple iPhone/iPad 使用纯 Apple SDK (Objective-C)
  2. Apple iPhone/iPad 使用 Mono Touch (C#)
  3. Android 使用纯 Android SDK (Java)
  4. 使用 Titanium 之类的多个平台从 Web 技术(HTML、CSS 和 Javascript)生成本机应用程序
  5. 使用在浏览器中运行的 HTML5 Web 应用程序(HTML、CSS 和 Javascript)的多个平台。

你会选择哪个选项?你有不同的建议吗?优缺点都有什么?

4

9 回答 9

8

我认为您几乎涵盖了所有选项,让我分享我对每个选项的看法。

  1. 值得从最高优先级开始,因为它现在是 Buzz。
  2. 根据 iPhone OS 4 开发者协议第 3.3.1 条,苹果将只允许使用 C/C++ 和 JAVA 脚本开发的应用程序。我不建议您将精力放在 C# 中。
  3. 它的价值,如果你对核心 JAVA 有很好的把握,那么你可以在几天内提高工作效率。在这个阶段,Android 可能没有太多的市场份额,但我个人认为 Android 是未来。
  4. 我的第 2 点也适用于 Titanium,但根据他们最新的推文,他们得到了 Apple 的批准。我不知道地面实相。
  5. 与第 2 点相同

如果您在这个阶段开始专注于原生 iPhone 和 Android 编程框架,那就太好了。不过,如果您有时间,您也可以投资 Blackberry RIM,因为您有 JAVA 背景。

欢迎来到智能手机开发者。:)

谢谢,

拉吉尼坎特

于 2010-04-16T13:50:40.920 回答
4

如果你的目标是 iPhone/iPad,iPhone OS 4.0 带来的对 iPhone SDK 协议的更改以及新的 SDK 声明你只能将应用程序提交到 App Store,这些应用程序是用 C/ 编写的。 C++/Objective-C,或者 Javascript,如果它是一个 webapp。

您需要考虑到这一点,因为兼容性层、交叉编译器、源代码翻译器看起来都将在新协议下被禁止,其中包括 MonoTouch、Adobe 的 Flash CS5、Phonegap 等。

于 2010-04-16T13:51:23.600 回答
1

有很多事情需要考虑。首先你要问自己两个问题:

  1. 您想要覆盖哪些平台和哪些类型的用户。
  2. 您是否需要与手机通信(GPS、SMS 等...),或者您只需要一些基本的数据操作和视图。

如果您需要访问电话功能,那么您必须开发一个在电话上运行的实际应用程序。这里最安全的选择是 JAVA,因为它几乎可以在所有手机上运行。但即使是 JAVA 最近也作为统一的跨平台工具出现了。Apple 对 iPhone 和 iPad 进行了限制,而我对最新的 Windows Phone 7 也不清楚。

现在,如果您只需要显示和操作数据,HTML 可能是一种有效的方法。它具有跨平台的优势,所有较新的手机都可以毫无问题地显示基本的 HTML。Javascript 或更复杂的形式仍然值得怀疑。对我来说仍然是面向数据的应用程序的未来,因为 Web 支持只会变得更好,包括 javascipt。至于 HTML5,我说算了吧。在台式机和手机上广泛传播需要时间,但肯定需要数年时间才能到达那里。

为各种各样的手机开发原生应用程序是一项艰巨的任务,需要大量的工作,并且可能需要一个庞大的团队。因此,这再次取决于您必须完成的任务。此外,如果您正在开发高端商务应用程序,那么您只能针对 Blacberry、Windows Mobile 和其他东西。我不知道 iPhone 和 Android 在商务世界中的普及程度。我觉得没那么多。

这些将是我的指导方针。显然,如果可以,请坚持使用网络应用程序。

于 2010-04-16T14:06:11.363 回答
1

您应该查看的跨平台框架:

PhoneGap QuickConnet

于 2010-04-16T13:45:56.840 回答
1

我只是想说明一点。Android v iPhone 开发。让我坦率地说,我没有为 Android 开发,但我为 iPhone 开发过。但是,我们家中确实拥有一部基于 Android 的手机和一部 iPhone,因此我可以作为两者的用户发言。

就应用程序而言,我发现 iPhone 应用程序的使用方式更简单有趣(对于最终用户而言)。很多安卓应用真的很烂。这并不是说 iPhone 应用程序不是,但自然的 iPhone 界面确实在一定程度上支持了它们。Android 的界面并没有什么特别之处。作为最终用户,我更喜欢 iPhone,这对于尝试选择平台的开发人员来说应该很重要。

最近,苹果的 ToS 变更引起了很多批评,开发人员表示他们将转向 Android。我说 - 坚持使用 iPhone,因为 iPad 正在引起轰动,对你来说是一个独特的机会。作为使用 Titanium 和 Objective-C 创建应用程序的人,我建议您坚持使用本机工具集。学习需要更长的时间,但是您将学习正确的设计模式,而不是 Titanium,老实说,它甚至没有教给您好的 JS 模式(那里没有多少 MVC)。

于 2010-04-16T17:34:26.553 回答
1

如果你想让它们跨平台,你最好还是坚持使用网络应用程序;主要的智能手机操作系统——iPhone 操作系统、Android 和 WebOS,传闻黑莓操作系统将是下一个——都使用 Webkit 渲染器,你可以更轻松地制作出对每个平台都不陌生的东西。 '正在使用其中一种框架来编写表面上的跨平台代码。当您考虑到 Apple 最近对其 SDK 许可协议的更改时尤其如此:MonoTouch 和 PhoneGap 等工具可能不再可用于将内容放入他们的 App Store。

于 2010-04-16T13:55:07.493 回答
0

独立于新的开发者协议,其影响仍然未知(例如人们认为 PhoneGap 和 Appcellerator 已死,但事实并非如此);在我看来,在 iPhone OS 平台上瞄准 Objective-C 仍然会更好。

问题是 Cocoa 中有很多非常强大的框架。通过使用 Objective-C,您还可以学习像框架设计师一样思考,这意味着您将更容易理解所使用的模式,并且随着时间的推移学习预测框架中的能力和名称,因为您有更清晰的掌握超过使用中的文体标准。

您还可以立即准备好利用语言和框架中的新功能(例如块或多任务处理),而不是等待框架编写者弄清楚如何向您展示一些新功能。鉴于平台功能的加速,这可能是一个显着优势。

此外,在个人层面上——作为一名程序员,你理解的语言越多,你越能走出舒适区去学习真正新的东西,你会变得更好。这种拓宽可以在其他方面帮助你的思维,让你成为一个更灵活的思考者。

我对那些在平台上使用其他语言(如 Mono)的人没有任何意见,我只是认为真正使用您所针对的任何平台的主要工具和语言是最有意义的。如果我要进入 Android 开发,我会立即切换到所有 Java,而不是寻求 Objective-C 的桥梁。

于 2010-04-16T15:00:10.730 回答
0

如果决定走 Objective-C 路线,请考虑仍然在 MonoTouch 上抢手货,作为一种学习工具,因为您拥有 C# 的所有经验。

能够先学习框架,然后转向语言可以大大简化学习。使用 monotouch,您将能够以您已经熟悉的语言学习您需要学习的所有 iPhone 框架(UIKit 等),并习惯于 Interface Builder 和一些 XCode 等工具。

在你已经很好地了解了框架之后拿起 Obj-C 会使事情变得容易得多。我现在正在这样做。取决于时间线、月亮和史蒂夫乔布斯的心情,你可能最终能够最终永远不必去 Obj-C.. :)

于 2010-04-17T17:12:49.690 回答
0

在您的一条评论中,您声明您拥有一个 Droid,喜欢它,并且更喜欢 Google 的方法。在你的问题中,你说你是一名 Java 开发人员——当然,你总是可以像我一样学习 Objective-C 作为一名 Java 开发人员,但话说回来,我完全爱上了 iPhone。听起来你完全爱上了 Android,所以我想说把你的热情投入其中并制作一些出色的 Android 应用程序。我不认为你会在 iPhone 上做得那么好,尤其是对这个平台没有很好的理解或热情。

于 2010-04-21T02:24:26.067 回答