Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

Еще один вариант — jaiPhon, который позволяет писать Java-приложения, которые переводятся на язык iPhone во время сборки.

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

http://www.jaiphon.com/

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top