От программирования iPhone до Mac

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

Я занимаюсь разработкой iPhone уже около года, и мне комфортно с Objective-C, Xcode и Cocoa (по крайней мере, то, что используется на iPhone), но программирование для OS X выглядит гораздо более привлекательным.

Какие хорошие бесплатные ресурсы для кого-то вроде меня? Большинство вещей, которые я видел, это обучение Objective-C и Cocoa, и я действительно хочу попасть в части IB, с которыми я не знаком, и что-то еще важное для OS X, которое не находится на iPhone.

Ответ 1

В то время как разработка iPhone не является подмножеством Mac, так как есть некоторые улучшенные и специфичные для iPhone биты, это почти так (и это в основном хорошие бит). Таким образом, Mac, вероятно, самая простая платформа для перехода с iPhone.

На Mac вы особенно захотите узнать о Cocoa Bindings, в котором очень много современного пользовательского интерфейса, но пока нет (телефона).

Обращаясь к вашему конкретному вопросу, некоторые уважаемые бесплатные ресурсы для кодирования Mac включают:

  • канонический cocoa -dev список рассылки, который работает Apple (к сожалению, woefully lame web access, реализованный Apple, и спорадически дополненный ненадежными сторонними усилиями, что делает его в основном полезным, фактически подписываясь на него из одного из ваших учетных записей электронной почты).
  • CocoaDev wiki
  • Rogue Amoeba Майк Эш имеет необычно полезную серию Q & A по пятницам на блог
  • передовая книга программирования Mac от Aaron Hillegass, Расширенное программирование на Mac OS X
  • хотя документы Apple сейчас довольно хороши, в плохие старые "описания предстоящих" дней многие из нас узнали, как Mac OS X отмечена от открытого кода, опубликованного авторитетными домами программного обеспечения, например Omni frameworks, который вы можете вставлять как есть в свои приложения, или код cherrypick из

(Хм, я обычно не публикую здесь, поэтому мне было запрещено гиперссылки на приведенные выше ссылки... могу ли я поместить их в текст? Ну, нет! Ну, всегда есть google, я думаю.)

Ответ 2

К счастью, Cocoa на рабочем столе и Cocoa Touch очень похожи. Я бы порекомендовал просто загрузить код для начинающих с веб-сайта Apple. Поскольку вы уже знаете Objective-C/Cocoa, вы можете легко следовать за ним. Если некоторые части запутывают, вы можете просканировать с помощью руководств Apple.

То же самое:

  • Шаблоны проектирования (цель/действие, делегат, источник данных, первый ответчик и т.д.).
  • Objective-C
  • Конструктор интерфейсов

Вещи, которые отличаются друг от друга:

  • Элемент управления может иметь только одну цель и действие. На iPhone у вас может быть одна цель/действие для касания внутри, коснуться снаружи и т.д. На Mac есть только один.
  • NSWindowController для загрузки xibs (концептуально похоже на UIViewController, тем не менее)

Изменить: В целом, у большинства разных iPhone есть более "предварительно построенные" пользовательские интерфейсы (UINavigationController, UITabBarController и т.д.), которые вы можете использовать в своем приложении, чтобы сделать его красивым и красивым (и, самое главное, совместимым с Apple приложения).

Ответ 3

Я начал разработку Mac OS и пошел на разработку iPhone. Вероятно, вы уже знаете основные понятия о том, как работают API. Самая большая проблема, которую я вижу разработчикам, которые переходят с iPhone на Mac, используется всеми тонкими способами, которые пользователи Mac ожидают, что их приложения будут работать. Такие вещи, как обращение с кнопками "вверх страницы" и "вниз страницы", чтобы прокручивать ваше представление (стыдно за Tweetie за то, что не поддерживали это). Или обрабатывать несколько окон. Или несколько размеров дисплея (и не заставляйте окна выходить из экрана).

Для технических вопросов программирования наилучшим местом для запуска является собственная документация Apple. Насколько я знаю, для нюансов проектирования для Mac OS и того, что делает правильно, нет книги или веб-сайта, на котором есть все ответы. В основном это связано с использованием приложений, которые являются победителями Apple Design Award и имитируют то, что они делают.