来自Java的学习iPhone编程的最佳方法是什么?

时间:2009-04-23 20:06:36

标签: java iphone objective-c cocoa

我已经开始阅读有关此主题的所有可用Apple文档。快速概述给了我一些大约8.000(八千)DIN A4 PDF页面。大约10%的内容几乎与我的感觉相同。经过两周的阅读,我发现我会忘记一周前读过的内容。除非我开始对知识做些什么,否则它就像大脑中的流失。

你的学习策略是什么?

10 个答案:

答案 0 :(得分:16)

斯坦福大学有一个免费课程(here),您可以从iTunes U下载。它包含视频和PDF文件,每次讲座后都有作业,您可以将其作为开发的想法。< / p>

来自Java世界,我认为最难学的是:

  • 使用引用计数而不是GC进行内存管理
  • 了解如何利用消息调度,充分利用Objective-C

Apple提供的论坛和文档也非常好,应该是您所做的任何事情的参考。

答案 1 :(得分:10)

这就是我所做的(我来自Java / C ++背景):

开始

  • http://developer.apple.com注册成为iPhone开发者(这是免费的)
  • 下载iPhone SDK(其中包括最新版本的XCode和SDK文档 - 在使用SDK或创建应用程序时,您经常会使用这两种方法)。
  • 获取Hillegass book。本书很好地讲授了Cocoa的基本概念。我发现它是理解Cocoa中引用计数(保留,释放,分配等)
  • 的好方法
  • 在iPhone编程上购买the Orange book。这真的很好。 (我之前买过Erica Sadun的书,但这并不是从初学者的角度解释的事情)
  • 试用这些程序。

这应该让你合理地加快速度并开发基本的应用程序。 (我还没有看过斯坦福大学的视频讲座,但我认为这也是一个非常好的开始方式)

变得更好

  • 为了更好地理解Cocoa概念,我找到了最好的资源来成为Apple Programming Guides。你一定要读这些。他们几乎每个主题都有一个,从NSStrings到Objective 2.0属性,内存模型等。您可以在XCode文档中找到它们。 (如果您正在查找课程参考等,您会在左侧栏中找到相关的编程指南)
  • Apple示例代码:您可以在http://developer.apple.com再次找到此代码。您可以重复使用和/或调整这些。

您应该立即开发应用程序。如果您遇到困难或需要建议,可以参考以下资源:

遇到困难时该怎么办

  • Cocoa-Dev邮件列表(这不是Cocoa-touch本身,但我从这里得到了一些非常好的答案)
  • Apple论坛
  • IRC

(我不确定上面的资源列表是否足够好 - 但其他人可以纠正我)

答案 2 :(得分:4)

在您阅读/倾斜时编写代码(如hello world,类似的东西)。这是我似乎能保留东西的唯一方式。

答案 3 :(得分:4)

不要只考虑它......做到这一点。

答案 4 :(得分:4)

基础知识

了解Objective-C

了解UIKit (又名iPhone编程)

与大多数书籍不同,牧场指南会解释课程层次结构。否则,在经过一系列步骤后你会得到漂亮的应用程序,但无法单独飞行。

我喜欢一次从几本书中读到一个主题。我几乎有关于iPhone编程的所有书籍,我也可以推荐

做好功课

我建议你做笔记并做练习。专注于小任务。例如,创建一个“基于导航的应用程序模板”项目,并尝试理解它。然后添加功能,如创建单元格,删除单元格,对其进行排序,单击单元格以推送第二个屏幕。像这样的东西。在编写摘要时,你记得要好50%。

由于GCC的限制,Xcode并不像Eclipse那么复杂。您应该做的第一件事是在项目中激活NSZombieEnabled以获得更好的错误消息。

你会发现小障碍并犯下愚蠢的错误。让附近的人帮助你是很有帮助的。如果不这样做,则有StackOverflow。

高级内容

核心数据是Apple针对iPhone的O / R映射。你将它用于任何与数据库相关的东西。

核心图形/动画位于UIKit之下。要超越大多数iPhone编程书籍将教你的东西,你需要自己绘图来实现高级UI自定义。

WWDC会议总是来自编写UIKit框架的Apple员工的好东西。 WWDC 2010对注册开发者免费:

某些网络日志会加载有用的提示和技巧:

关注Twitters的编码员。去你所在城市的NSCoder会议,即使你不是程序员,也欢迎大家。

答案 5 :(得分:2)

一旦您注册Apple以使用iPhone SDK(它可以免费下载和使用,您只需要付费,如果您想在App Store上销售您的应用程序),您就可以访问一些非常棒的开发人员资源 - 论坛,文档,示例代码等。我强烈建议使用这些资源作为一个很好的起点。

从Apple下载一些基本的示例应用程序,以了解事物如何组合在一起。在iPhone上进行开发肯定与其他类型的开发有很大的不同,所以有很多例子可供使用和参考。

答案 6 :(得分:1)

在我对我所处的环境有所了解之前,我倾向于使用示例代码和/或教程......但我从未完全遵循它们。总是改变一些值,一些细节,一些实现方法,并观察它的结果。

按照指示,我什么都没学到。改变一切,看到它的效果,我学到了很多东西。

答案 7 :(得分:1)

本文档是从C ++ / Java到Objective-C的语言rosetta(很多适用于Java人员的东西):

http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf

除此之外,请注意iPhone通过广泛而深入的基础类非常重要,就像Java一样。尝试尽可能地学习它们,并且当你需要更多的灵活性时,请注意Cocoa下有更深层次的基于CF C的调用。

了解内存管理模型并且易于处理。这是我在阅读有关如何在使用Interface Builder插座时处理内存管理的绝对最佳和最简单的描述:

http://blog.airsource.co.uk/index.php/2008/12/23/memory-management-and-nibs/

答案 8 :(得分:1)

我会在这些非常好的答案中添加一些内容 - 选择一个项目并立即开始工作。当我不得不为我的实施找到答案时,我会更深入地学习,而不是“学习”,而不是别有用心地阅读。

您可以发布另一个问题,询问您的第一个项目的想法。

答案 9 :(得分:1)

当我学习任何新语言时,我会使用提供的示例代码并从头开始重写。这样,如果我不知道如何做某事我可以翻转到提供的样本作为参考。我发现简单地重写示例代码可以帮助我,特别是当语法差异很大时。

关于iPhone,我会密切关注内存管理。 iPhone Dev网站上有一些很棒的示例代码和文档。