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-е. Но сначала систематизируем информацию.
По шагам
- Установили Delphi XE2.
- В папке "C:\Program Files\Embarcadero\RAD Studio\9.0\PAServer" нашли "setup_paserver.zip".
- Перекинули его на Mac. Открыли, установили PAServer - Platform Assistant Server. Подробно - к документации.
- Запустили PAServer на Mac-е.
- Запустили Delphi XE2.
- Сделали новый проект (FireMonkey HD). VCL-проект не исполняется на Mac OS X. Кроссплатформенность только в рамках FireMonkey-проектов.
- Прогнали проект под Win32.
- Добавили новую платформу (OSX32). Правой кнопкой на "Target Platform" в узле проекта.
- Создали и настроили профиль отладки (нужен для связи Delphi XE2 с PAServer-ом на Mac-е). Протестировали его в окне создания профиля.
- В Project Manager выбрали платформу (стала жирной).
- Сделали Build.
- Сделали 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 |








RSS Feed

September 9th, 2011 at 9:53 am
Только разместил у себя ссылку на подобный туториал )
http://keeper89.blogspot.com/2011/09/delphi-xe2-mac.html
September 11th, 2011 at 12:30 am
Спасибо за материал.
September 15th, 2011 at 12:20 am
На Oracle VM VirtualBox с Mac OS X 10.6.7 Snow Leopard не запускается, paserver выдает
>Runtime error 231 at 000169AD
это при том, что окно запущенного сервера свернуто, если же оно на переднем плане, виртуалка вообще наглухо виснет…
Можно ли запускать приложения на Mac OS X в режиме отладки? У меня сервер ругается, а студия после такой попытки запуска вылетает с ошибкой…
September 15th, 2011 at 1:40 am
теперь ждем нечто подобного под iPad и IPhone и андроид
September 15th, 2011 at 3:09 am
@Evgeny
Консольное приложение тоже ругается?
А если руками приложение запустить, а не через paserver?
PAServer - типа "новый удаленный отладчик", он и сделан для отладки приложений на Mac OS. Я без виртуалки на двух железках, все работает.
@Yura
для iPad и IPhone можно создавать "нативные" приложения. Можно уже пробовать. Чуть позже будет информация на русском языке.
September 15th, 2011 at 3:48 am
@Vsevolod Leonov
Как создать консольное приложение в FireMonkey?
А вот что происходит при ручном запуске
http://imageshack.us/photo/my-images/695/unled111m.jpg/
September 15th, 2011 at 3:59 am
Консоль - она без Firemonkey. Делайте как обычное консольное, а потом добавляйте платформу.
Firemonkey - это для кроссплатформы с GUI.
Но ругань у Вас насчет отсутствия библиотеки, походу, проявлена на trial-версиях.
http://stackoverflow.com/questions/7271317/delphi-xe2-firemonkey-sample-app-not-running-on-a-mac
там есть как решить проблему.
September 15th, 2011 at 4:24 am
с консолью та же беда
http://imageshack.us/photo/my-images/153/unled111w.jpg/
спасибо за ссылку, буду разбираться
September 15th, 2011 at 4:28 am
@Vsevolod
а можно где нибудь достать демку, которую David показывал на семинаре, 3D база данных на FireMonkey?
September 15th, 2011 at 5:54 am
https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches/RadStudio_XE2/FireMonkey/
посмотрите. Не найдете, пришлю Вам по e-mail.
September 15th, 2011 at 6:11 am
Первым делом там и посмотрел, сразу после семинара, но там нет.
Пожалуйста, пришлите на почту.
September 15th, 2011 at 11:12 am
вот сюда, если не сложно
decoding@yandex.ru
September 17th, 2011 at 9:10 pm
Так что с примером то?
September 18th, 2011 at 11:35 pm
@Evgeny
Отсюда:
http://embt.ru/datacube.zip
September 19th, 2011 at 3:37 am
Огромное спасибо!
September 29th, 2011 at 10:43 pm
А никто скрин-каста не делал случайно с последнего вебинара? Хотелось бы поделиться с колегами пропустившими демонстрацию возможностей перерожденных дельфей?
зы Всеволод, спасибо за интересную и наглядную презентацию продукта.
September 30th, 2011 at 12:11 am
Запись вебинара - дело такое. Это как фондовая запись музыканта. Если это лекция, которую 100 раз прочитал - то она получится хорошо. Если это вебинар по новому продукту с большой долей новой информации, то всегда хочется сделать еще раз в более лучшем исполнении. Давайте я буду блогом описывать содержание вебинаров.
November 2nd, 2011 at 5:45 pm
После установки XCod-a –>> fpc-2.4.4.intel-macosx.pkg нормально устанавливается, а вот, FireMonkey-IOS-XE2(из FireMonkey-IOS-XE2.dmg) не устанавливается в Mac Lion-е?
Что делать, Всеволод, я не знаю.
кстати, Mac OSX Lion у меня на WMware
November 2nd, 2011 at 7:19 pm
Уже всё ок. Скачал update-2 для xe2. Из темп папки вынул:
- FireMonkey-IOS-XE2.dmg
- PAServer.zip
И оба (вернее 2+1) заново установил и всё легло как надо
November 2nd, 2011 at 11:30 pm
@vuginet
>>Скачал update-2 для xe2
Спасибо!
November 27th, 2011 at 2:57 pm
А почему в FireMonkey нет компонента для работы с видео?
November 28th, 2011 at 12:19 am
Будет. Уверяю Вас - достаточно скоро.
November 28th, 2011 at 7:18 am
Спасибо, Всеволод, Вам. А то, ни в какие рамки не укладывается
использование компонентов сторонних кампаний. Будем с нетерпением ждать!
November 28th, 2011 at 7:32 am
Спасибо Вам за понимание!
January 3rd, 2012 at 2:41 pm
Всеволод, а под Андроид "натив" когда компилиться FireMonkey будет?
PS. C Новым годом Вас!!! Хороший дали старт! Респект!
April 15th, 2012 at 10:55 am
блин народ помогите у меня в platformtarget нету mac os,там тока Win32 и 64.подскажите плз, а то я всю жизнь с delphi7 работал,а теперь надо перегнать один проект под mac.
P.S. заранее спасибо!
April 19th, 2012 at 8:27 am
Что подсказать-то?
Правой педалью на "Target Platforms", MacOS нужно выбрать… Профиль создать. Без профиля нельзя. В профиль нужно вколотить IP-адрес Mac-машины, где будет запускаться скомпайлиный модуль.