我有C/C++编程经验,因此学习Objective-C对我来说并不完全陌生。然而,我注意到为iPhone编写应用程序并不像为桌面平台编写应用程序那样简单。我应该在跳入iPhone之前先在桌面平台上获得一些扎实的经验吗?我不是商业开发人员,只是出于兴趣和学习目的而这么做。你有什么建议?
我有C/C++编程经验,因此学习Objective-C对我来说并不完全陌生。然而,我注意到为iPhone编写应用程序并不像为桌面平台编写应用程序那样简单。我应该在跳入iPhone之前先在桌面平台上获得一些扎实的经验吗?我不是商业开发人员,只是出于兴趣和学习目的而这么做。你有什么建议?
在进入iPhone开发之前,拥有一些Cocoa经验肯定是有帮助的,但我个人并不会太过担心。学习如何使用Cocoa框架并对其感到舒适总体上是有益的,但是桌面Cocoa编程的某些方面在iPhone编程中几乎没有什么相关性(例如使用Interface Builder进行用户界面设计)。此外,iPhone编程具有独特的方面,普通的Cocoa编程并不能真正为您做好准备。(一些经验丰富的Cocoa开发人员在首次涉足iPhone开发时仍然需要一定的学习曲线。)
换句话说,我建议学习普通Cocoa开发的基础知识,但您不需要成为Cocoa大师才能学会开发iPhone应用程序。
如果你只是想熟悉Objective-C、cocoa和Xcode,那么编写桌面应用程序并没有什么意义。
从编写桌面应用程序中学到的东西,在编写iPhone应用程序时也能学到。桌面应用程序并不比iPhone应用程序简单,它们只是不同而已。
如果你学习了桌面应用程序的特定内容,可能会在iPhone开发中产生反作用。
当然,如果你想进入OS X生态系统,学习两者都非常有价值。
在移动到iPhone上的UiKit之前,学习桌面Cocoa没有必要或好处。可能会有一些缺点。
尽管UIkit和Cocoa之间有许多共同的概念,但在桌面上学习它们并不更容易。而且最终它们并不完全相同。同样,在iPhone和桌面之间有许多共享的框架-在这些情况下,在使用手机上的等效版本之前,使用桌面版本并没有任何好处。
您将仅在iPhone上遇到一些困难和可能使事情变得更容易的事情:
我的观点是,尽早适应这些问题比在桌面上养成“坏习惯”(或者只是在转向iPhone时产生误解)更好。
最大的挑战不是学习Cocoa和/或Cocoa Touch,而是Objective-C。一旦你掌握了基础知识,Cocoa就变得简单,并且类似于许多其他面向对象的框架。
我建议:
如果你有任何开发经验,你就知道所有的语言都是相似的,只有通过实际操作才能真正掌握它。
我学习新的开发环境的方法是选择一个你想要解决的问题(由于手机随时在身边,你可能已经有了一些想法),并且不断地尝试。
有大量的苹果示例代码、答案和其他网站。从一个与你想要做的事情不太远的工作样本应用程序开始,并随着时间的推移进行微调。你会因为一个可行的应用程序而感到满意,立即发现问题,并可以逐步学习小技巧。