2008-09-25 71 views
12

很多年前我已经用C++开发,但现在我主要是Java软件工程师。鉴于我拥有一部iPhone,我准备在下个月开始购买MacBook,并且一般对开始使用Mac OS developmentmt(使用Objective C)感兴趣,但我想我只是将这个问题放在那里:下一步是什么?Java开发人员在Mac OS上遇到Objective-C

更具体地说,我应该选择哪些书籍,并且有些人可以指示我提供哪些网络​​资源?有些书,我计划购买:

任何熟悉这些标题?最后,一旦我踏上这个旅程,我会对我应该准备期待的事情总结很感兴趣。作为使用IntelliJ IDEA在Java中开发的人员,当我转向在Xcode中编写ObjectiveC代码时,会注意到哪些关键差异? Mac OS桌面开发和iPhone开发之间有什么区别?习惯Java垃圾收集,我应该了解有关ObjectiveC垃圾收集/内存管理的知识。任何人想要指出的其他语言特定问题?如何构建用户界面?它更接近Swing,构建代码交互的Visual C++资源文件,还是更像是将生成guis代码的一些borland IDE?

回答

11

已经购买了两个在你的问题的书,我建议可可编程的Mac OS X作为一个快速的方式来学习语言和Cocoa框架,并可能开始生产真正的最快方法应用程序在可可。我强烈推荐它。 Objective-C 2.0中的编程是一本很好的参考书,但是如果你已经知道C,那就没有什么教你了,你无法从另一本书中读到。但是,如果您需要Objective-C中所有保留关键字的列表,那么这本书即将推出。

所有的用户界面都可以以编程的方式生成,但是您会发现使用XCode附带的Interface Builder来布置用户界面非常容易。你最终会得到更少的代码。使用绑定,您甚至可以消除与布局接口不直接相关的代码。细节在Mac OS X书籍的Cocoa Programming中。

我错过了Java的一件大事是收集API。在Cocoa中,你只需要获得NSSet,NSArray和NSDictionary,并且没有类比于Comparable接口。这些类也是不可变的,但有可变的版本,如NSMutableArray。

我实际上还没有玩过Objective-C 2.0中的垃圾收集。在以前的Objective-C版本中,内存管理由retain,release和autorelease方法处理。对象的保留计数为1,保留递增计数,释放递减计数和自动释放对象稍微复杂一点。再次,可可编程书​​籍解释得很好。垃圾收集是一个选项,如果它启用,保留,释放和autorelease方法什么也不做。但是,如果你正在编写一个库或者框架供其他人使用,你应该像关闭垃圾收集一样编程它。这样应用程序可以使用它,无论它们是否打开了垃圾回收。

至于Web资源,http://cocoadevcentral.com/是一个伟大的网站用的初级教程。该CocoaDev维基在http://www.cocoadev.com/包含了很多话题的详细信息,以及你通常可以找到可可开发邮件列表上的一些有用的信息和人http://lists.apple.com/mailman/listinfo/cocoa-dev

iPhone开发有一点不同,细节是由一个受限制NDA。但是,如果您获得Apple批准进入iPhone开发人员中心,则Apple提供了一些有关这些差异的优秀视频概述,这些内容向您提供了从Mac OS X跳转到iPhone OS X编程所需的文档。

1

获取适用于Mac OS X的Cocoa编程。您的大部分问题将由该书回答。您也可以开始阅读Become an XCoderCocoa Dev Central

iPhone SDK仍然处于NDA之下,因此您无法找到任何有关它的在线资源,除了Apple提供的资源。

Cocoa UI基于MVC。您可以使用Interface Builder来设计视图,然后将其绑定到模型和控制器。 Objective C是C和Smalltalk的混合体。

+1

抱歉不接受您的答案。这非常有帮助。我只是想接受他的新手(迈克尔巴克利)。谢谢! – 2008-09-26 06:38:31

+0

没问题。他的回答比我的信息更丰富。我甚至投了票! – jop 2008-09-26 06:52:53

0

另一种选择是jaiPhon,它允许您编写可以在构建时翻译成iPhone的Java应用程序。

我不知道它是否可用,或者它是否是商业软件或其他,但它是有趣的。

http://www.jaiphon.com/

+0

有趣。坦率地说,我认为学习Objective C,编程环境和xCode有一些东西需要说明。缺乏对iPhone的原生Java支持是令人失望的,但我喜欢我一直在阅读的关于Mac开发工具的内容。 – 2008-09-25 21:08:11

0

还检查了这一点:

http://www.xmlvm.org/overview/

这是一种试图能够交叉编译写的各种源语言的各种目标语言的程序的项目。最初的测试案例之一是用Java编写程序并在iPhone上运行它们。在网站上观看视频是值得的。

说了这么多,我还没有尝试过。该项目看起来相当不错,并且SourceForge网站上没有太多活动。

0

我认为从IntelliJ跳转到Xcode时你会觉得很赤裸。但这只是从工具角度出发。带来额外的衣服(TextMate + FScript)!

相关问题