到目前为止,Apple在创建一个良好的全方位开发人员生态系统(SDK,应用程序分发,货币化等)方面已经走到了最远的任何移动平台。但是,阅读之前关于移动开发的SO问题的评论(例如this和this),似乎会出现某些批评,例如:
所以,我想知道苹果生态系统在长期(即2 - 4年)的可行性。如果Windows Mobile 7手机(预计将在一年左右发布)获得市场份额,那么iPhone开发环境是否能够与.NET + Visual Studio竞争(加上微软推出的任何“App Store”型分发机制) )?从我所读到的关于iPhone开发的内容来看,我得到的印象是,我们可能会看到开发人员逐渐消耗在Windows Mobile上,因为大多数人都倾向于使用Microsoft的工具套件进行开发。
对于具有这些平台之一经验的开发人员,您对此主题有何印象? iPhone平台是否具有长期可行性(与Windows Mobile相比),超出了拥有更多市场份额的初始优势?
==
编辑:关于App Store优势的公平点。但我对这两个平台的长期潜力感到好奇,而微软推出自己的应用程序商店(例如SkyMarket)似乎只是时间问题,这使得安装变得像在iPhone上一样简单。 (虽然iPhone的应用程序商店可能占上风,因为它排在第一位。)
答案 0 :(得分:7)
我不认为Windows Mobile是iPhone的竞争对手。据我所知,开发人员现在应该考虑面向消费者的应用程序的四个平台:
其他一切都是非实体。 Symbian和Windows Mobile可能会再次变得相关,但截至今天,它们并非如此。这些设备上没有健康的软件市场,我不清楚决定购买Windows Mobile手机的大部分人是否关心第三方软件。
至于工具和语言,差异微不足道。这不是问题。开发人员不会因为不喜欢工具或语言而放弃像iPhone这样的市场。
更重要的是,Xcode非常好(有些人更喜欢Visual Studio - 我当然认为它的某些方面比Visual Studio同行更好),如果你了解Java,C ++或C#,你将会学到Objective-C最多在一周内。它基本上是两个或三个新概念,略有不同的语法和引用计数。如果您已经了解了一些面向对象的语言,那么学习Objective-C是一个非问题,如果不这样做,那么这是一个很好的借口来获取一些新的想法和概念。
真正的不同之处在于库,我个人非常喜欢Cocoa和.Net库,它们通常需要您调用pre-.Net API。
也许四年后,一切都会有所不同。诺基亚可能会很好地修复Symbian并接管智能手机市场。谁知道?你必须完成我们今天拥有的东西: - )
所以我的意思是:
iPhone的编程非常有趣,如果您从未在.Net世界之外冒险,您将学到很多新东西。只需拿起一本好书,留出一个周末,设置一个小目标(比如一个小游戏,或者一个todo应用程序,或类似的东西)并获得编码。即使你不喜欢Xcode,即使你最终没有编写任何iPhone应用程序,你也会找到一个更好的程序员。
如果Symbian 获胜,那么学习为iPhone编写代码的经验至少会教你如何在新平台上启动和运行: - )
答案 1 :(得分:6)
你错过了Apple的工具集IMO。
VisualStudio可能有一个很好的工具集,但Apple的工具集足够好(并且非常棒,IMO)能够支持超过500,000,000次下载的15K应用程序。我会说这对未来来说非常好。
iPhone的杀手级应用是AppStore。这是在手机上获取应用程序并且不在运营商控制系统之外的唯一方式。例如,尝试在Verizon手机上获取应用,您很快就会发现 control 对无线运营商意味着什么。
发现是基于网络的,因此您可以向某人发送指向某个应用的链接,当他们加载该应用时,它会转到他们可以安装该应用的页面。简单而优雅。
Objective-C的语言怪癖是一个红色的鲱鱼。任何有能力的开发人员都会在几周内加快速度。 Cocoa是一个令人难以置信的框架。
另外,不要低估控制硬件规格的能力。 Apple对硬件规格的控制对开发人员来说是一个福音,因为他们可以指望不会变得复杂和分散的事情,因为尽可能完全不符合iPhone SDK规范的电话并不符合Apple的利益。当OEM制造硬件到Windows Mobile规格时,总会有“解释”规范,这意味着开发人员在手机a和手机b之间留下行李,为什么我的应用程序在两者上都运行不同?
这是移动设备中经常被忽视的重点。如果没有硬件规范的所有者,它很容易变成“一次写入,到处调试。”
答案 2 :(得分:5)
“如果Windows Mobile 7手机(预计将在一年左右发布)获得市场份额......我们可能会看到开发人员逐渐消耗Windows Mobile,因为大多数人都倾向于使用微软的工具套件进行开发。” / p>
让我们假设VS和CLR提供了更好的编程体验。即使如此,对WM的“逐渐消耗”也不会很明显。 “编程经验”只是开发人员将面临的一个因素;现有的市场份额和感知是另一个(想想亚马逊和eBay,或者就此而言,iTunes的MP3商店)。
你谈到“长期”为2 - 4年。在那个时候,WM7有没有机会获得比苹果更大的市场份额?不现实。
即使我们采用您的时间范围的远景,面对WM7的优秀编程体验,iPhone开发在4年内是否可以实现COLLAPSED? MS有什么可以成为对抗iPhone的平台杀手? C#4,DLR,VS2K10?这些都不够。可能(可能)做的是Azure。
但我认为如果你认为Azure是iPhone平台的杀手,那么你必须同样关注Google / Android。
所有这一切都表明,从风险管理的角度来看,风险最小的选择显然是iPhone。如果你想减轻错误的风险,那么你可以很好地考虑你的Cocoa程序,以便你可以在C#中重新实现它们。
答案 3 :(得分:2)
有趣的是,开发平台的可行性实际上是交付平台可行性的第二位。
如果您可以使用该平台制作的产品没有市场,那么世界上最好的开发平台几乎毫无价值。
iPhone / iPod touch是一种孤立的“专有”产品,但与此同时销售了大量的产品。更重要的是,它向那些喜欢从App Store购买东西的人销售单位。对于许多用户来说,App Store是一个引人注目的卖点。
因此,基本上,开发平台的可行性与平台本身的可行性密切相关。
答案 4 :(得分:2)
这真的非常主观,因为我们都没有水晶球。我已经进行了十年的移动和嵌入式开发,并且我已经玩过大多数的东西(你忽略了提到Symbian或RIM,而且Palm也曾经是一个主要的参与者)。
过去几年,我对微软的移动“战略”感到非常失望 - 他们似乎只关注企业应用和开发人员。然而,他们在创建一流的工具方面做得很好,Compact Framework是我看到的最坚固的产品之一,我看到它已经从Redmond运出了(v1被认为是有限的,但对于v1来说它是非常坚固的,从无到有递送)。
iPhone似乎正在利用这一点,并在消费者领域击败微软。但是,你真的不能指望微软(或任何相应的企业)只会面对激烈的竞争。我确信他们有一些计划(尽管我不知道该计划可能是什么)。恢复是否足够?谁知道呢。iPhone是不是被吹捧了?好吧,我认为它并不像有些人想象的那样开放。你所写的内容有限,你的销售和发行方式有限。您可以使用的工具和可以运行的目标硬件受限。不是最好的环境。但是,面对可能来自MS,RIM甚至谷歌的竞争,他们是否会继续保持这种状态?很难说,但我敢打赌,这不太可能。
那么谁会赢?我不打算对他们中的任何一个采取赔率。我们已经在硬件和学习方面投入大量资金用于微软的技术,所以我们不太可能放弃它。尽管如此,我们已经为iPhone工作做了一些工作和工作竞标,因为我们将所有鸡蛋放在一个篮子里都是愚蠢的。
答案 5 :(得分:2)
如果您正在编写类似于桌面软件的电话软件,那么您做错了。 Palm曾经对如何为他们的掌上电脑进行开发提供了一些很好的指导,这些建议同样适用于手机。
由于你将不得不采用不同的思维方式,使用不同的语言和不同的工具不会成为一个大问题。实际上,不同的开发环境可能会帮助您保持不同的心态。