Watch, Follow, &
Connect with Us

Vsevolod Leonov

Delphi Mac 1

Как в первый раз

Предыдущие публикации (Открыл крышку, Открыл окошко, Салют - кстати, там видео с программы, написанной на Delphi XE2 и FireMonkey) были, если выражаться языком волновой динамики, "упругими предвестниками" настоящей ударной волны. Но теперь можно (после официального объявления), резво гнать сжатый поток информации. Вопросы позиционирования приложений, созданных на Delphi для платформы Mac, целесообразность реализации кроссплатформенных проектов и прочие существенно взрослые вопросы мы отложим на потом (но на вебинарах как раз этой теме мы и уделяем максимум внимания). Сейчас перенесёмся в то время, когда любая написанная нами, пусть и простая программа вызывала бурный восторг. И если фраза "Hello, World!" не обязательно приветствовала рождение нового программиста, то сообщение "Hello from Delphi to Mac World!" точно откроет для вас новый мир технических реалий креативного приложения инженерных мыслей.

Hard & Soft

Что потребовалось для изготовления приложения:  Dell Latitude E6400 с Windows XP и MacBook Pro c Mac OS X "Snow Leopard". Delphi XE2 является приложением Win32, поэтому была использована одна "виндовая" машина. Запуск готовых приложений потребовал, соответственно, компьютер под Mac OS X.

Реализация кроссплатформенной разработки в Delphi XE2 такова. Сначала изготавливается приложение под Windows, затем отлаживается, а после всего его можно запустить под Mac OS. Это - базовый вариант. Варианты постоянного запуска "сырого" приложения на Mac смысла не имеет из-за потерь времени. Время теряется на а) deployment б) на отладку/тестирование в новой операционной системе - чисто человеческий фактор. Естественно, темп взаимодействия с элементами управления под Mac требует на порядок большего времени и концентрации, если данная ОС для вас не родная.

а) Идея поставить виртуальную машину на Windows, в качестве гостевой ОС установить Mac OS X, и запускать "виртуализированные" приложения мне не понравилась. Когда на такой удлиненном технологическом стенде возникнут проблемы, локализация ошибки - нетривиальная задача. Грубо говоря, не работает на уровне дефицита функциональности. Только не понятно: делаю ли неправильно, баг ли в фреймворке, проблема ли виртуализированного исполнения и т.д.. Не хочется расширять себе поле поиска.

б) Идея поставить виртуальную машину на Mac-е, в ней поставить Delphi XE2, затем изготавливать "виртуально", а запускать тут-же реально - более продвинутая. Сам видел работающие прототипы (например, для того, чтобы евангелисты Embarcadero носили не два, а один компьютер). Однако это означало бы для меня перенос большого фронта работы на Mac в качестве единственного и основного компьютера. Но по соображениям эргономики я на это не пойду.

в) Еще одним вариантом является следующее. Разработчики (в команде) имеют по 2 машины с Windows. Одна - базовая с Delphi XE2, другая - чисто для удаленного управления Mac-овским компьютером. Такой компьютер - один на команду.

Задача-то очевидна - именно вначале нагрузка на Mac-овский компьютер будет большая, т.к. любые первые шаги в кроссплатформенном проекте будут требовать верификации. Как этот элемент (привычный в Windows) будет смотреться на Mac-е? Да и просто "любопытство". А потом, со временем, Мас будет работать только на более-менее значимых сборках. Не надо сразу впадать в панику, что каждому разработчику нужно покупать отдельный дополнительный компьютер Mac.

PAServer - это специальный "агент", он должен быть запущен на Mac-овской машине. Из Delphi XE2 IDE устанавливается с ним связь, а запуск проекта на исполнение вызывает его запуск на машине с Mac OS X. Не надо "разшаривать" папки и/или как-либо в ручную запускать модуль. Всё делается по кнопке "Run (F9)" из IDE.

Теперь, когда deployment проекта поддерживает несколько платформ (для Delphi XE2 это Win32, Win64, OSX32), папка проекта содержит ряд вложенных в зависимости от выбранных вариантов. По-умолочанию платформа проекта - Win32, поэтому эта папка уже есть.

Добавили в Project Manager дополнительную платформу OSX32 (Mac OS X 32 бита), создалась отдельная папка. Выбрали, перестроили проект, можно запускать на Mac-е. Но сначала систематизируем информацию.

По шагам

  1. Установили Delphi XE2.
  2. В папке "C:\Program Files\Embarcadero\RAD Studio\9.0\PAServer" нашли "setup_paserver.zip".
  3. Перекинули его на Mac. Открыли, установили PAServer - Platform Assistant Server. Подробно - к документации.
  4. Запустили PAServer на Mac-е.
  5. Запустили Delphi XE2.
  6. Сделали новый проект (FireMonkey HD). VCL-проект не исполняется на Mac OS X. Кроссплатформенность только в рамках FireMonkey-проектов.
  7. Прогнали проект под Win32.
  8. Добавили новую платформу (OSX32). Правой кнопкой на "Target Platform" в узле проекта.
  9. Создали и настроили профиль отладки (нужен для связи Delphi XE2 с PAServer-ом на Mac-е). Протестировали его в окне создания профиля.
  10. В Project Manager выбрали платформу (стала жирной).
  11. Сделали Build.
  12. Сделали Run.

Установка Platform Assist Server на Mac


Запуск PAServer-а

На Mac сначала запускаем Terminal. Потом заходим в папку с установленным PAServer и запускаем "агента" командой ./paserver. Пароль - по желанию. Такой же пароль потом нужно ввести при настройки профиля из Delphi XE2.

Да, так, если следовать документации. Но в папке с установленном PAServer-ом на Mac-е есть "пускальщик" paserver.command. Лучше пускаться с него.

Настройка профиля

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

Также, как и не под Mac. Одним пальцем.

Пока смотрел, лет 20 назад скрутил.

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

Posted by Vsevolod Leonov on September 9th, 2011 under Delphi XE2, FireMonkey, Mac |



27 Responses to “Delphi Mac 1”

  1. Yuri Petrov Says:

    Только разместил у себя ссылку на подобный туториал )
    http://keeper89.blogspot.com/2011/09/delphi-xe2-mac.html

  2. Lena Says:

    Спасибо за материал.

  3. Evgeny Says:

    На Oracle VM VirtualBox с Mac OS X 10.6.7 Snow Leopard не запускается, paserver выдает
    >Runtime error 231 at 000169AD
    это при том, что окно запущенного сервера свернуто, если же оно на переднем плане, виртуалка вообще наглухо виснет…

    Можно ли запускать приложения на Mac OS X в режиме отладки? У меня сервер ругается, а студия после такой попытки запуска вылетает с ошибкой…

  4. Yura Novikov Says:

    теперь ждем нечто подобного под iPad и IPhone и андроид

  5. Vsevolod Leonov Says:

    @Evgeny

    Консольное приложение тоже ругается?
    А если руками приложение запустить, а не через paserver?
    PAServer - типа "новый удаленный отладчик", он и сделан для отладки приложений на Mac OS. Я без виртуалки на двух железках, все работает.

    @Yura
    для iPad и IPhone можно создавать "нативные" приложения. Можно уже пробовать. Чуть позже будет информация на русском языке.

  6. Evgeny Says:

    @Vsevolod Leonov
    Как создать консольное приложение в FireMonkey?
    А вот что происходит при ручном запуске
    http://imageshack.us/photo/my-images/695/unled111m.jpg/

  7. Vsevolod Leonov Says:

    Консоль - она без Firemonkey. Делайте как обычное консольное, а потом добавляйте платформу.
    Firemonkey - это для кроссплатформы с GUI.

    Но ругань у Вас насчет отсутствия библиотеки, походу, проявлена на trial-версиях.
    http://stackoverflow.com/questions/7271317/delphi-xe2-firemonkey-sample-app-not-running-on-a-mac
    там есть как решить проблему.

  8. Evgeny Says:

    с консолью та же беда
    http://imageshack.us/photo/my-images/153/unled111w.jpg/

    спасибо за ссылку, буду разбираться

  9. Evgeny Says:

    @Vsevolod
    а можно где нибудь достать демку, которую David показывал на семинаре, 3D база данных на FireMonkey?

  10. Vsevolod Leonov Says:

    https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches/RadStudio_XE2/FireMonkey/

    посмотрите. Не найдете, пришлю Вам по e-mail.

  11. Evgeny Says:

    Первым делом там и посмотрел, сразу после семинара, но там нет.
    Пожалуйста, пришлите на почту.

  12. Evgeny Parkhomenko Says:

    вот сюда, если не сложно
    decoding@yandex.ru

  13. Evgeny Says:

    Так что с примером то?

  14. Vsevolod Leonov Says:

    @Evgeny
    Отсюда:
    http://embt.ru/datacube.zip

  15. Evgeny Says:

    Огромное спасибо!

  16. Kruglov Dmitry Says:

    А никто скрин-каста не делал случайно с последнего вебинара? Хотелось бы поделиться с колегами пропустившими демонстрацию возможностей перерожденных дельфей?

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

  17. Vsevolod Leonov Says:

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

  18. vuginet Says:

    После установки XCod-a –>> fpc-2.4.4.intel-macosx.pkg нормально устанавливается, а вот, FireMonkey-IOS-XE2(из FireMonkey-IOS-XE2.dmg) не устанавливается в Mac Lion-е?
    Что делать, Всеволод, я не знаю.
    кстати, Mac OSX Lion у меня на WMware :(

  19. vuginet Says:

    Уже всё ок. Скачал update-2 для xe2. Из темп папки вынул:
    - FireMonkey-IOS-XE2.dmg
    - PAServer.zip

    И оба (вернее 2+1) заново установил и всё легло как надо :)

  20. Vsevolod Leonov Says:

    @vuginet
    >>Скачал update-2 для xe2
    Спасибо! :)

  21. vuginet Says:

    А почему в FireMonkey нет компонента для работы с видео?

  22. Vsevolod Leonov Says:

    Будет. Уверяю Вас - достаточно скоро.

  23. vuginet Says:

    Спасибо, Всеволод, Вам. А то, ни в какие рамки не укладывается
    использование компонентов сторонних кампаний. Будем с нетерпением ждать!

  24. Vsevolod Leonov Says:

    Спасибо Вам за понимание!

  25. Евгений Says:

    Всеволод, а под Андроид "натив" когда компилиться FireMonkey будет? ;)

    PS. C Новым годом Вас!!! Хороший дали старт! Респект!

  26. Sasha Says:

    блин народ помогите у меня в platformtarget нету mac os,там тока Win32 и 64.подскажите плз, а то я всю жизнь с delphi7 работал,а теперь надо перегнать один проект под mac.
    P.S. заранее спасибо!

  27. Vsevolod Leonov Says:

    Что подсказать-то?
    Правой педалью на "Target Platforms", MacOS нужно выбрать… Профиль создать. Без профиля нельзя. В профиль нужно вколотить IP-адрес Mac-машины, где будет запускаться скомпайлиный модуль.

Leave a Comment



Server Response from: BLOGS2