作为C#开发者,是开发iPhone还是Android更好?

20

我希望利用业余时间开始开发iPhone或Android应用程序,因为这是学习新知识和赚取额外收入的机会。

我不确定哪个平台更适合我开始开发。我有一部iPhone,但我没有Mac(我需要使用SDK),而且对于iPhone,我相信还需要支付年费才能进行开发。

据我了解,Android的SDK是免费的,并可以在Windows上使用。

就我的专业背景而言,我使用.net和C#进行开发,这听起来更类似于基于Java的Android环境。

我认为另一个针对iPhone的负面因素是它的应用商店更加拥挤,我认为应用程序在Android上获得更好的曝光?


2
“Android和iPhone哪个更好?”这个问题已经在以下链接中被问过很多次:https://dev59.com/fnI-5IYBdhLWcg3w8dYQ,http://stackoverflow.com/questions/1206761/iphone-versus-android-developer-results,http://stackoverflow.com/questions/1506301/which-mobile-platform-would-be-more-rewarding-to-learn-as-a-developer-iphone-vs,http://stackoverflow.com/questions/2441649/which-mobile-operating-system-should-i-code-for。 - Brad Larson
这个问题也没有客观答案,往往会引发争论性的回应。 - Brad Larson
6
OP并不是在询问哪个平台最好,他在询问在考虑到他所陈述的目标(第一段)和经验(第四段)后,哪个平台是最适合开始开发的。 - Andy Johnson
1
我认为最好的方法是尝试两种方式,然后做出自己的决定。我可以从你的话语中看到你自己判断的光芒 ;) - Chilly Zhong
8个回答

29
  • Fragmentation of devices and OS versions can make development difficult and require testing on many different devices
  • Lower revenue potential due to more free apps and easier access to piracy
  • The Google Play Store has a reputation for being more lax with app quality, leading to lower user trust in the platform
  • Less strict approval process means more low-quality or spammy apps exist on the platform
  • Less integrated development environment compared to Xcode on iPhone
  • Java-based, which may not be as interesting as learning a newer language like Swift
  • 必须支持各种屏幕尺寸和设备
  • 许多人仍在使用旧版本的Android操作系统(1.5),所以如果想要覆盖这个市场,你可能需要支持这些版本。
  • Android SDK不如iPhone SDK精细。
  • Android Market不像iPhone应用商店那么受欢迎,热门应用程序的赚钱效果不会那么好。
  • 总而言之,在我看来,从哪个平台开始都可以,特别是现在Android正在崛起。鉴于你的背景,我建议你选择Android。


    1
    可以在Android上多任务处理。现在你也可以在iPhone 4上做到这一点。 - Mike Weller
    1
    思路清晰的回答,我同意你对Android的最终投票。 - wcm
    1
    我必须不同意XCode很棒的说法。它的“数百万个顶级窗口”的方法可能在30英寸的显示器上勉强可以接受,但我无法原谅文本编辑器中的所有错误。 - U62
    1
    "Android市场不如iPhone应用商店受欢迎" - 在美国和英国,Android手机的数量比iPhone多,很快将占领全球。 - Callum Rogers

    6
    在我看来,iPhone SDK的最新变化是一个打击。我是一名Adobe人员,您可能会认为,在CS5中构建应用程序的无限开发人员对您的App Store非常有好处?显然,苹果不同意。
    然而,如果您想要曝光,将应用程序放入App Store将产生更多结果,如果您构建质量应用程序。由于Android商店还没有站稳脚跟(如果他们真的会有一个),所有营销都在您自己的头上。
    我最近放弃了苹果,因为他们迫使我们开发人员“成为他们”,我不赞同他们的理念。
    话虽如此,我已经为两者编程,安卓略微棘手,需要很长时间才能解决自己的问题。虽然说明非常好,示例也定义得很好。
    如果您有Mac,则安装iPhone SDK很容易,您可以准备构建应用程序。它确实需要50英镑的开发人员连接,而安卓是免费的。[更正-这可能需要一次性费用25美元]
    如果您正在构建一个iPhone应用程序,那么您将需要该连接(根据我的经验,这可能需要多达3个星期),以便您可以在iPhone上测试它。
    而且,您肯定需要购买一台Mac。
    --
    对于Android而言,它是Java,并且在最新版本中,API非常好。作为额外的奖励,它是基于Eclipse构建的,因此您只需要几秒钟就可以理解发生了什么。
    --
    最后一点 - 作为Actionscript / JS开发人员,转换为Java是一个逻辑和简单的步骤,(如果您不同意,请不要射击我)Objective C是两种不同语言风格的灾难。我发现这非常非常困难。
    但是不要只听我的话,一定要尝试两者,因为我认为Android新兴市场就像冰山一样,但苹果已经确立。

    5

    iPhone/iPad应用生态系统的两个缺点是:

    1. 在将应用程序放入AppStore之前,苹果会对其进行测试和接受(这需要时间,并且接受取决于苹果当前的政策)-谷歌似乎并不太关心这一点。
    2. AppStore是iPhone应用程序的唯一官方来源-在Android上,您可以从不安全的来源(即网站或电子邮件附件)安装应用程序-因此,您可以以各种方式提供和收费应用程序。

    3
    好的,我会尽力进行翻译:有趣的是,我认为这两者都是优点 :) - willcodejavaforfood
    1
    如果苹果公司只是因为不安全或不安全而拒绝应用程序,那么这两件事情就不会太糟糕了(尽管仍然很糟糕)。 - wcm

    5
    你说你想要(a)学习新的东西并且(b)赚取额外的收入。
    就(a)而言,你在Android方面的进入门槛可能更低。你可以在Windows、Linux或Mac上进行开发;sdk是免费的,没有任何费用。Android开发通常使用Java语言,这与你已经了解的C#并没有太大区别。因此,我建议你获取Reto Maier的并尝试一下Android。在某些时候,你需要一部Android手机,但你可以使用模拟器来实现一些功能。你不需要购买Mac或支付开发许可证。
    一旦你熟悉了移动平台的开发,你将更好地了解构建其他人想要使用甚至愿意付费的应用程序所需的条件,甚至可以从(b)的角度评估平台并决定要追求哪个。如果你最终购买了Mac并支付了开发许可证,那么至少你会做出一个明智的决定。但首先获得一些经验。

    像您一样,我也是一个C#开发人员。我为了自己的娱乐做过一些Android开发,个人意见是,与iPhone相比,Android是一个更优秀的平台,因为它在技术和商业上更加开放。我相信Android很快将会与iPhone实现部分平衡甚至超越它。

    尝试使用Android,获取一些移动端经验,然后再做决定。


    2

    MonoDroid for Android正在测试中,这意味着您将能够使用C#编写Android应用程序。您可以在此处注册beta版。

    iPhone越来越受限制,而Android则越来越开放。同时,Android的出货量也超过了iPhone。您可以自行决定。


    1

    看看这本书,它是一个很好的参考,可以决定第三种方式...同时为iPhone和Android编写HTML、JavaScript和CSS,基于webkit,使用jQTouchPhoneGap。你可以在第一章中看到优缺点。


    0
    我建议在下决定之前,先向朋友借一台Mac电脑并获取最新版的iPhone软件开发工具包(SDK),除非你不介意花费至少600美元来购买Mac mini(像我这样做的情况)。你可以尝试在Windows上安装GNUstep并尝试使用Objective-C语言,但是没有XCode、界面构建器和SDK等工具,就感受不到完整的体验。
    我之所以这么说是因为我现在正在参加一个iPhone课程,学习Objective-C比我想象的要有更大的学习曲线,而且占用了我更多的时间。与C#或Java不同,你需要手动跟踪内存管理,这真的很烦人,并且不容易操作。还有Cocoa Touch,它类似于Objective-C的.NET或Java类,也是一个很大的学习曲线!总之,忽略它同时使用SmallTalk和C语言编写的事实,如果你能克服这一点,它仍然很难,而且很容易导致程序崩溃。
    忘记在Inteface Builder中正确连接您的控件?崩溃!
    由于松散的类型检查导致未使用@符号来定义NSSTring?崩溃!
    我只是想说,与苹果相比,通过使用更熟悉的Java语言路线,你可能会更有生产力,在业余时间内完成应用程序。此外,我不确定Android对整个模型-视图-控制器(MVC)概念的重视程度是多少,但在iPhone SDK中无处不在,因为Cocoa在整个设计模式中都使用了MVC。
    另一方面,如果你喜欢挑战或者学习苹果路线,那么这样做是正确的,如果你做得好,你的应用程序将会卖得很好,你也会赚到钱。就像我说的,要想出售下一个杀手级应用程序之前,你需要学习iPhone的很多东西。

    顺便说一句,除非你想在实际硬件上测试某些无法在iPhone/iPad模拟器中运行的东西,或者真正上传应用到商店,否则你不需要支付99美元的开发费用。


    0

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接