Java Developer встречает Objective-C в Mac OS

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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
12
0
3 839
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

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

Извините, что не принимаю ваш ответ. Это было очень полезно. Я просто хочу помочь новичку (Майклу Бакли), приняв его. Спасибо!

Ryan Delucchi 26.09.2008 10:38

Без проблем. Его ответ более информативен, чем мой. Я даже проголосовал за это!

jop 26.09.2008 10:52

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

Не знаю, есть ли он еще в продаже, коммерческий или что-то еще, но тем не менее интересно.

http://www.jaiphon.com/

Интересно. Честно говоря, я думаю, что есть что сказать об изучении Objective C, среды программирования и xCode. Отсутствие встроенной поддержки Java для iPhone разочаровывает, но мне нравится то, что я читал об инструментах разработки для Mac.

Ryan Delucchi 26.09.2008 01:08

подожди .. Я проверил их сайт ... похоже на пароварку ... :-(

Ryan Delucchi 26.09.2008 01:13

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

Thorbjørn Ravn Andersen 24.07.2010 03:58
Ответ принят как подходящий

Купив обе книги по вашему вопросу, я рекомендую Программирование Какао для Mac OS X как быстрый способ изучить язык и структуру Какао, и, вероятно, это самый быстрый способ начать создавать настоящие приложения в Какао. Я очень рекомендую это. Программирование на 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 управление памятью осуществлялось методами сохранения, выпуска и автоматического освобождения. Объекты были созданы с удерживаемым счетчиком, равным 1. Сохранение этого счетчика увеличивалось, отпускание уменьшало его, а автосвобождение объектов немного сложнее. Опять же, книга по программированию какао хорошо это объясняет. Сборка мусора - это вариант, и если он включен, методы keep, release и autorelease ничего не делают. Однако, если вы пишете библиотеку или фреймворк для использования другими, вам следует запрограммировать ее так, как будто сборка мусора отключена. Таким образом приложения могут использовать его независимо от того, включена ли у них сборка мусора.

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

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

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

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

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

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

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

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

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

Textmate поверх xcode для разработки obj-c? я не согласен. xcode потрясающий. и это бесплатно;)

lajos 13.01.2009 17:42

Я определенно скучаю по IntelliJ. Но, похоже, что XCode имеет совсем другой набор философий, поэтому я собираюсь отложить суждение до тех пор, пока не пойму эту философию и не начну писать некоторые нетривиальные приложения с ее использованием.

Ryan Delucchi 24.01.2009 09:11

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