перенос приложения с углерода на какао

Я работаю над приложением, в котором мне нужно перенести весь его код с углерода на какао. У меня есть опыт программирования на C, C ++, python и Java во время учебы и стажировки, но я никогда не касался цели C или делал любое программирование для Mac (Carbon и Cocoa) до этого.

Итак, не могли бы вы предложить мне несколько источников для начала, а также как мне выполнить всю миграцию?

После исследования в сети я обнаружил, что большинство людей предлагали следующие книги

Программирование какао для Mac® OS X, третье издание, Аарон Хиллегасс

Программирование в Objective C - Стивен Кочан

У меня есть обе эти книги.

Следует ли мне сначала прочитать их, а затем начать с изменения кода? (прочтение обоих займет некоторое время)

OR

Должен ли я непосредственно приступить к миграции кода после приличного знакомства с Obj C и Какао?

Также,

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


person deovrat singh    schedule 13.10.2010    source источник


Ответы (2)


Во-первых, изучите Carbon, чтобы вы могли прочитать программу и понять, как она в настоящее время реализована.

Установите комплект документации Legacy в Xcode, чтобы получить доступ к руководствам по Carbon. Вы захотите прочитать Обзор углерода, затем Начало работы с углеродом, а затем все ссылки "Начало работы" к. Вам также необходимо изучить Core Foundation, которую используют некоторые из более современных частей Carbon; прочтите Основные концепции дизайна основы и Руководство по программированию управления памятью для Core Foundation.

Затем изучите какао.

Я не учился по книге Хиллегасса, но многие люди ей доверяют. Моя текущая любимая книга по Cocoa - это «Какао и цель-C: все работает» Скотта Стивенсона. Я изучал Какао с помощью собственной документации Apple. Начните с языка программирования Objective-C, Руководство по основам какао и Руководство по программированию управления памятью для Какао. Большая часть последнего документа покажется вам знакомым, но ничего не пропускайте. Прочтите все эти руководства от начала до конца и до конца.

Изучив общие концепции Какао, вы можете переходить к материалам, относящимся к конкретным приложениям. Начните с обзора архитектуры приложения и большей части этого документа. ссылки на. В списке руководств по какао есть полный список руководств. .

В будущем вам также потребуется сделать приложение совместимым с 64-битным режимом. Если к этому моменту у вас все еще есть углеродный код, вам необходимо прочитать Руководство по 64-битной версии для разработчиков Carbon; в любом случае вам также понадобится общее 64-разрядное руководство по переходу и 64-битное руководство по переходу для какао .

person Peter Hosey    schedule 13.10.2010

Я сам работаю над этим процессом прямо сейчас, и это довольно сложное мероприятие для полноценного приложения на основе документов, которое использует несколько фреймворков. В приложении My Carbon есть десятки пунктов меню, интерфейс построен с использованием Carbon Nibs и реализован с использованием перехватчиков событий Carbon. Язык программирования - C ++. Возвращаясь к истории, оригинальная классическая версия Mac была реализована на прямом языке C, так что есть немного наследия той эпохи. Например, PICS на основе ресурсов!

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

Вам действительно нужно применить методический подход и посмотреть, от чего зависит ваше приложение в Carbon, а не от того, какие части вашего приложения являются независимыми - например, ваши абстрактные классы. Если ваше приложение написано на C ++, при переходе на чистый Objective-C могут возникнуть некоторые подводные камни. Например, может быть сложно заметить переопределение оператора.

Вы можете смешивать C ++ с Objective-C, как описано в Apple Руководство по интеграции углерода и какао, а в Интернете можно найти множество оболочек C ++ для основных объектов, таких как NSStrings. Так что, если у вас уже есть классы C ++, которые обертывают CFString, они могут пригодиться.

Вообще говоря, вы можете оставить свое хранилище данных в том виде, в каком оно есть. Если вы используете malloc () и calloc () для создания связанного списка структур, нет особых причин переходить на NSArray. Вы не получите лучшей производительности. Настоящее изменение происходит в интерфейсах, в том, как вы вызываете и получаете доступ к этим данным из других объектов. Если вы решите смешать объекты C ++ и Objective-C в одном приложении, это поможет инкапсулировать как можно больше. То есть, насколько это возможно, сделайте так, чтобы ваши абстрактные классы C ++ ссылались только на свои собственные данные и данные других объектов C ++. В конце концов, это упростит их перевод на Objective-C.

Если вы переходите от одной модели событий к другой или от визуализации на основе портов Carbon к визуализации на основе представлений Какао, вероятно, лучше всего начать со свежего приложения Objective-C и сначала перенести классы вашей модели. Добавьте несколько тестовых функций, чтобы убедиться, что все они работают с новым языком. Если ваше приложение чем-то похоже на мое (старое), то, вероятно, оно должно отображать некоторые элементы большего размера и иметь более совершенный интерфейс. Это хорошее время, чтобы восстановить эти детали по частям.

Определенно нет отличного ярлыка. Приведенный выше PDF-файл - лучший документ, который я нашел по этой теме.

person Scott Lahteine    schedule 14.08.2011