Разработчик Java встречает Objective-C на Mac OS - PullRequest
12 голосов
/ 25 сентября 2008

Я разработал на C ++ много лет назад, но сейчас я, прежде всего, инженер-программист Java. Учитывая, что у меня есть iPhone, я готов перейти на MacBook в следующем месяце и, как правило, заинтересован в том, чтобы начать разработку под Mac OS (используя Objective C), я подумал, что просто задам этот вопрос: что дальше?

В частности, какие книги я должен взять, и есть ли какие-либо веб-ресурсы, на которые некоторые люди могли бы указать мне? Некоторые книги, которые я планирую приобрести:

Кто-нибудь знаком с этими названиями? Наконец, меня очень заинтересовало бы краткое изложение того, что я должен быть готов ожидать, как только я отправлюсь в это путешествие. Как человек, который разрабатывает на Java с использованием IntelliJ IDEA, какие ключевые различия я увижу, когда перейду к написанию кода ObjectiveC в Xcode? В чем разница между разработкой рабочего стола для Mac OS и разработкой для iPhone? Будучи привыкшим к Java сборке мусора, что я должен знать об ObjectiveC сборке мусора / управлении памятью. Любые другие языковые проблемы, на которые кто-то хотел бы указать? Как насчет создания пользовательских интерфейсов? Это ближе к Swing, созданию файлов ресурсов Visual C ++, с которыми взаимодействует код, или это больше похоже на некоторые интегрированные среды разработки Borland, которые будут генерировать код для guis?

Ответы [ 6 ]

11 голосов
/ 26 сентября 2008

Купив обе книги по вашему вопросу, я рекомендую Cocoa Programming для Mac OS X как быстрый способ выучить язык и структуру Cocoa, и, возможно, это самый быстрый способ начать создавать реальные приложения в Cocoa. Я очень рекомендую это. Программирование в Objective-C 2.0 - отличный справочник, но если вы уже знаете C, мало что научит вас, что вы не можете взять из другой книги. Однако, если вам когда-нибудь понадобится список всех зарезервированных ключевых слов в Objective-C, к этой книге можно обратиться.

Весь пользовательский интерфейс может создаваться программно, но вам будет гораздо проще использовать Interface Builder, который поставляется с XCode, для разметки пользовательского интерфейса. Вы получите гораздо меньше кода. С помощью привязок вы можете даже исключить код, который не имеет прямого отношения к разметке интерфейса. Подробности в книге «Программирование какао для Mac OS X».

Одна большая вещь, которую мне не хватает в Java, - это API-интерфейс коллекций. В Какао вы просто получаете NSSet, NSArray и NSDictionary, и нет аналога интерфейсу Comparable. Эти классы также являются неизменяемыми, но имеют изменяемые версии, такие как NSMutableArray.

На самом деле я не играл с сборщиком мусора в Objective-C 2.0. В предыдущих версиях Objective-C управление памятью осуществлялось методами retain, release и autorelease. Объекты были созданы с сохранением счетчика 1. Сохранение увеличенного счетчика, освобождение уменьшенного и автоматическое освобождение объектов немного сложнее. Опять же, книга по программированию какао объясняет это хорошо. Сборка мусора является опцией, и если она включена, методы retain, release и autorelease ничего не делают. Однако, если вы пишете библиотеку или фреймворк для использования другими, вы должны запрограммировать его так, как будто сборка мусора отключена. Таким образом, приложения могут использовать его независимо от того, включена ли сборка мусора.

Что касается веб-ресурсов, http://cocoadevcentral.com/ - отличный сайт с обучающими пособиями для начинающих. CocoaDev Wiki на http://www.cocoadev.com/ содержит подробную информацию по многим темам, и вы обычно можете найти некоторую полезную информацию и людей в списке рассылки cocoa-dev http://lists.apple.com/mailman/listinfo/cocoa-dev

Разработка iPhone немного отличается, а детали ограничены NDA. Тем не менее, если вы получите одобрение Apple на доступ к центру разработчиков iPhone, Apple предоставит несколько отличных видеообзоров о различиях, которые указывают на документацию, необходимую для перехода от программирования Mac OS X к iPhone OS X.

1 голос
/ 25 сентября 2008

Получите Программирование Какао для Mac OS X. На большинство ваших вопросов ответит эта книга. Вы также можете начать читать Станьте XCoder и Cocoa Dev Central .

iPhone SDK все еще находится под NDA, поэтому вы не сможете найти о нем какие-либо онлайн-ресурсы, кроме ресурса, предоставленного Apple.

Какао-интерфейс основан на MVC. Вы используете Interface Builder для разработки своих представлений, а затем привязываете их к своим моделям и контроллерам. Цель C - это смесь C и Smalltalk.

0 голосов
/ 04 декабря 2008

Я думаю, вы будете чувствовать себя довольно нагим при переходе с IntelliJ на Xcode. Но это только с точки зрения инструмента. Принесите дополнительную одежду (TextMate + FScript)!

0 голосов
/ 03 декабря 2008

Вы уже знакомы с квадратными скобками?

Вот краткое изложение с моей точки зрения . Я надеюсь, что это может помочь также.

0 голосов
/ 03 декабря 2008

Также проверьте это:

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

Это проект, в котором делается попытка кросс-компиляции программ, написанных на множестве исходных языков, для разных целевых языков. Одним из первых тестовых примеров было написание программ на Java и запуск их на iPhone. Смотреть видео на сайте стоит.

С учетом сказанного, я не пробовал. Проект выглядит довольно бета, и на их сайте SourceForge не так много активности.

0 голосов
/ 25 сентября 2008

Другой вариант для вас - jaiPhon, который позволяет вам писать java-приложения, которые переводятся на iPhone-говорящий во время сборки.

Я не знаю, доступен ли он еще, коммерческий или еще какой-то, но тем не менее это интересно.

http://www.jaiphon.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...