我是一个非常熟练的Java开发人员,正在考虑学习iPhone开发.Mac除了开发方面之外,学习移动应用程序堆栈有多大的飞跃?当然我理解它更接近于C应该如何接近它,并且随之而来的是内存管理等等.
我的查询也包括
我鼓励那些回答引用外部网站和引用的人帮助详细说明细节
Cru*_*han 11
开发语言是Objective-C,它是纯C,顶部有一个非常薄的对象包装器.他们的语法有点奇怪,但是如果你知道C一旦你克服了消息调用就很容易掌握 - 我自己有一个坚实的C背景并且只开始在一两个月内拿起Objective-C但我发现它真的很令人愉悦 - 比C++更令人愉悦.
如果您只编写Java,那么您将遇到的困难是指针和内存管理.内存管理在概念上并不困难,因为它只是(!)跟踪你正在分配和发布的内容的问题,而且XCode似乎带有检测泄漏的好工具(尽管我还没有在愤怒中使用它们) - 而且由于iPhone程序相对较小,它不像编写一个大系统程序,而这可能非常困难.你可能遇到的主要概念上的困难就是随着它们被广泛使用(就像几乎所有的代码行一样)而直接指向你的指针,你需要完全理解它们.Joel在播客上重新定位的一个主题是一些编码人员使用指针的难度,所以我'
有人可能想纠正我,但是虽然Cocoa API看起来非常出色,但框架之外似乎很少有可用的库(与C++或Java不同).例如,我必须添加自己的队列和堆栈类 - 尽管NSMutableArray非常容易.
总而言之,我肯定会发现它是我玩过一段时间最有趣的平台之一.
几个月前,我是一名Java网络程序员,从大学开始就没有接触过C语言.现在我已经完成了一个iPhone应用程序(对于我的日常工作,卡在那里的官僚机构,所以它还没有在应用程序商店中)和我的第二个应用程序接近完成.
要回答你的问题,最大的障碍是理解约定(委托模式,类别等),掌握内存管理,以及使用XCode(一个好的IDE但绝对落后于Eclipse和IntelliJ).
我还认为Apple开发人员中心网站上的文档写得很好,一个优秀的开发人员可以快速启动和运行.
为了更具体地回答你的问题,我还没有尝试过单元测试,但我认为OOP很棒 - 我的iPhone应用程序中的域对象与我用Java编写的那些一样强大和强大.
Objective-C 是一种面向对象的语言,因此,就 OOP 而言,几乎任何可以在 Java 中完成的操作都可以使用 Obj-C 完成。
我对此没有任何经验,但这里至少有一个关于 OCUnit 的资源,objective-c 相当于 JUnit: http: //developer.apple.com/tools/unittest.html
我在转换过程中遇到的最大问题肯定是内存管理方面。学习语法和 API 非常简单,但如果没有 GC,生活就会很艰难!
编辑:哦,是的,第二大问题是 XCode,用于 Mac/iPhone 开发的 IDE。重构支持很少,我发现在文件之间导航很痛苦。预计这也会让你放慢速度。
| 归档时间: |
|
| 查看次数: |
4155 次 |
| 最近记录: |