在你开始学习iPhone编程之前,先学习Objective-C桌面应用程序开发是否更好?

6

我有C/C++编程经验,因此学习Objective-C对我来说并不完全陌生。然而,我注意到为iPhone编写应用程序并不像为桌面平台编写应用程序那样简单。我应该在跳入iPhone之前先在桌面平台上获得一些扎实的经验吗?我不是商业开发人员,只是出于兴趣和学习目的而这么做。你有什么建议?


您的最大字符限制是多少,它是否包括顶级域名? - waiwai933
那个注释没有意义。 - Gregor Brandt
7个回答

3
就我所知,以下是另一位iPhone开发新手的评论...
我的背景-大约15年前我是一名C程序员,自那以后我在不同的技术领域中转换 - 现在我是一名Adobe Flex开发人员。然而,晚上,我正在尝试将自己转变成iPhone开发人员 ;-)
因此,我买了一本关于iPhone SDK开发的书籍-《iPhone in Action》。我还买了《Programming in Objective-C 2.0》。我认为这两本书就足够了,但是经过几天的阅读和练习后,很明显...我已经彻底迷失了!
所以我又买了另一本书-这次是来自Pragmatic Bookstore的《iPhone SDK Development》-这是一本正在进行中的书,但对我来说看起来很“正确”。结果证明这本书帮助我更进一步-它是一份伟大的作品-然而,早期的章节进展顺利,我能够跟随并理解,然后突然他们开始假设我可以完美地回忆起早期章节中学到的课程和遵循的程序,我又再次陷入困境-当我试图从书中学习某些东西时,最糟糕的事情是不得不不断地从一个地方跳到另一个地方才能理解我应该做什么。
所以(是的,我知道...但请耐心等待...)我又买了一本书...来自APress的《Beginning iPhone Development》。现在这本书什么都不假设。对于iPhone开发新手来说,这本书很好。不需要跳来跳去,最后我发现我正在进步。
然而,我发现所有三本书结合起来似乎给了我一个更完整的图片-综合起来,我有一套伟大的教程和参考资料。我还没有接触过Objective-C书籍,但我期望它成为我需要的东西-语言的参考手册;直到我深入研究之前我不需要它。我慢慢地从那种可怕的“深入到水里,但我游泳得不太好”的感觉中走出来,进入了至少能够踩水的阶段。希望再多划几下,我就能够碰到底部了-当然我的信心正在恢复 ;-)
因此,回答原始问题-如果我再次开始,个人认为我不会通过先构建Mac再转向iPhone来获得任何收获。如果我先买了APress的书,我肯定会少掉很多头发-对我来说,这本书完全理解了一切。然后我认为《iPhone SDK Development》Pragmatic书是最好的备份/跟进书。这是我向同事建议的路径,我相信这是一个好的选择。
希望这有所帮助!
Jamie.

1

在进入iPhone开发之前,拥有一些Cocoa经验肯定是有帮助的,但我个人并不会太过担心。学习如何使用Cocoa框架并对其感到舒适总体上是有益的,但是桌面Cocoa编程的某些方面在iPhone编程中几乎没有什么相关性(例如使用Interface Builder进行用户界面设计)。此外,iPhone编程具有独特的方面,普通的Cocoa编程并不能真正为您做好准备。(一些经验丰富的Cocoa开发人员在首次涉足iPhone开发时仍然需要一定的学习曲线。)

换句话说,我建议学习普通Cocoa开发的基础知识,但您不需要成为Cocoa大师才能学会开发iPhone应用程序。


我认为可以说,Cocoa程序员比Symbian程序员更容易开始开发iPhone应用,但这并不意味着通过学习Cocoa成为iPhone程序员是一个好主意。 - Rog

1

如果你只是想熟悉Objective-C、cocoa和Xcode,那么编写桌面应用程序并没有什么意义。

从编写桌面应用程序中学到的东西,在编写iPhone应用程序时也能学到。桌面应用程序并不比iPhone应用程序简单,它们只是不同而已。

如果你学习了桌面应用程序的特定内容,可能会在iPhone开发中产生反作用。

当然,如果你想进入OS X生态系统,学习两者都非常有价值。


0
在某些方面,iPhone对于C/C++开发人员来说更简单。其中最重要的是没有垃圾回收机制。如果你从桌面端开始并习惯了GC,在使用iPhone时会遇到很大的问题。

0

在移动到iPhone上的UiKit之前,学习桌面Cocoa没有必要或好处。可能会有一些缺点。

尽管UIkit和Cocoa之间有许多共同的概念,但在桌面上学习它们并不更容易。而且最终它们并不完全相同。同样,在iPhone和桌面之间有许多共享的框架-在这些情况下,在使用手机上的等效版本之前,使用桌面版本并没有任何好处。

您将仅在iPhone上遇到一些困难和可能使事情变得更容易的事情:

  • 您在目标机器上开发,在iPhone上,目标管理更加困难
  • iPhone的内存和处理器受限
  • iPhone上没有垃圾回收

我的观点是,尽早适应这些问题比在桌面上养成“坏习惯”(或者只是在转向iPhone时产生误解)更好。


0

最大的挑战不是学习Cocoa和/或Cocoa Touch,而是Objective-C。一旦你掌握了基础知识,Cocoa就变得简单,并且类似于许多其他面向对象的框架。

我建议:

  1. Objective-C的维基百科文章:https://en.wikipedia.org/wiki/Objective-C
  2. 维基百科上的“外部链接”提供了一些语言基础知识
  3. Hot Cocoa播客:http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=294050835
  4. Cocoa Cast播客:http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=298413458
  5. 然后是斯坦福大学iPhone应用程序编程课程在iTunes U上:https://podcasts.apple.com/us/podcast/iphone-application-programming-spring-2009/id384233222
  6. 加入苹果的开发者计划:https://developer.apple.com

我真的觉得你的理解方式有误。对于那些有C语言背景的人来说,Objective C相当简单直接。而Cocoa则更加庞大、流动和复杂。 - Stephen Darlington
Stephen,我发现Cocoa框架与其他面向对象的框架(如我在大学广泛使用的Borland C++等)非常相似。我同意,一个C语言程序员会很容易掌握Objective-C - 肯定比一个C++程序员更容易。我认为我们都可以同意这比看起来要容易。 - Richard Stelling
“Hot Cocoa podcast”和“Cocoa Cast podcast”似乎不再可用。 - Cœur

0

如果你有任何开发经验,你就知道所有的语言都是相似的,只有通过实际操作才能真正掌握它。

我学习新的开发环境的方法是选择一个你想要解决的问题(由于手机随时在身边,你可能已经有了一些想法),并且不断地尝试。

有大量的苹果示例代码、答案和其他网站。从一个与你想要做的事情不太远的工作样本应用程序开始,并随着时间的推移进行微调。你会因为一个可行的应用程序而感到满意,立即发现问题,并可以逐步学习小技巧。


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