ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

 
Start a new topic Add Reply
> Учусь писать приложения под МакОС
Slice
post May 4 2010, 09:23 PM
Post #1
До сих пор я писал только драйвера, и С++ знаю неплохо, а вот с приложениями под MacOSX пока туговато, только command-line utility.
Какие есть варианты?
1. Cocoa, Objective-C. Есть Interface Builder, в котором можно сделать очень много, есть образцы программ. Да вот, блин, эти образцы под Леопарда, новые классы, новые методы, а мне нужно под Тигра, и я тупо не могу ничего сделать с тем же генерикЦПУПМ, он не подходит к Тигру, и не переделывается. Ну и соображение на будущее: как бы я не любил Мак, но Objective-C применяется только на нем, и нигде больше, бесперспективно.
2. Carbon, C++. Это уже гораздо ближе к истине, Интерфейс-билдер строит визуальную оболочку, а дальше наполняем программу кодами. Автоматизация проектирования близка к нулю. Я не вижу в кодах никакой связи с интерфейсом, не вижу созданных объектов, не знаю, какие у них методы и свойства. В тексте только события. Где их перечень? Свойства, прописанные в интерфейсе также не отображаются в кодах. Короче, все нужно делать вручную, если знать как. А Эппл не очень объясняет, как пользоваться карбоном, все какао рекламируют.
3. QT4, C++ от компании Nokia ohmy.gif . Есть собственный Designer с очень богатым набором свойств. Есть туториалы и демо, есть образцы. Но когда я нарисовал интерфейс, я не понял, как это компилировать. Связь с XCode отсутствует, нужно вроде делать makefile. Преимущества колоссальные - это и универсальность для разных платформ, хочешь, делай под Винды, хочешь - для iPhone, хочешь - для Nintendo. И естественно, для Линукса, откуда оно и взялось. Небольшой баг пакета - КП на аудио плагине. Я уже зарегился на баг-трекере, буду их колотить. Что бы там не говорили про кривые драйвера, но хорошая программа не должна паниковать из-за плохой входной информации.
Еще проблема чтобы поставить на Тигра.
4. SDL, Objective-C. Пакет классов, встраивается в XCode. Если он как-то соединяется с Carbon, тогда имеет смысл поизучать, а в голом виде отсутствие графической оболочки перечеркивает все достоинства, если они есть. Соединяется с Cocoa и расширяет его возможности.
5. RealBasic. Взяв этот пакет, я за один вечер написал работающую программу. Есть там описание, как сделать интерфейс к языку С, а из него уже можно иметь доступ к системе. Можно компилировать под разные системы. Но пакет небесплатен, и с современными версиями проблема. Да и взаимодействие с системой все же проблематично.
6. Eclipse. C++. Чего-то я в ней не понял. Что это?
7. XSD, xerces, C++. Идея пакета - писать программу на XML, а затем переводить ее в С++. Меня в этой технологии заинтересовала возможность использования xib файла, сгенеренного Interface Builder-ом. Но вся эта технология далека от очевидной.
8. PowerPlantX, C++ Ностальгия по классике. Проект компанией Метроверкс был переведен в разряд свободных и появился на сорсфорже как OpenPowerPlant. В нем есть все старые PowerPlant классы, которые карбонизированы, и добавлено что-то для OSX. Мне удалось собрать Constructor, однако, он не выполняет некоторых функций, есть ошибки. Да и элементы не все присутствуют. Короче, явная недоделка. И сомневаюсь, что ее будут доделывать. Если у вас есть большая программа, написанная еще в старые времена классики под старый PowerPlant, то это - кратчайший путь для ее перевода под MacOSX.

Еще варианты?
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Bugagazavr
post May 4 2010, 09:30 PM
Post #2
QUOTE (Slice @ May 5 2010, 01:23 AM) *
хочешь - для iPhone

хочешь, не хочешь - но под него нельзя smile.gif
Однако кроссплатформаенность иногда заставляет взглянуть на кути, но мне кажется он каким то громоздким и не слишком приятным.

Если целиться на мак то лучше всего выбрать коку.

З.Ы. вроди ещё есть моно.

This post has been edited by Bugagazavr: May 4 2010, 09:45 PM
Name: MacPro4,1, Mac OS X: Snow Leopard 10.6.5 - 64 bit
CPU: Core i7 930, MB: P6X58D-E, GPU: Sapphire Radeon HD 5850, RAM: 3x2GB Kingston 1600 MHz
SOUND: Realtek ALC889 - Work with AppleHDA, LAN: Marvell 88E8056 - Yukon Injector, HDD: Seagete 250 gb SATAII, Seagate 2x500 gb SATAII
Slice
post May 5 2010, 11:50 AM
Post #3
QUOTE (Bugagazavr @ May 5 2010, 01:30 AM) *
хочешь, не хочешь - но под него нельзя smile.gif
Однако кроссплатформаенность иногда заставляет взглянуть на кути, но мне кажется он каким то громоздким и не слишком приятным.

Если целиться на мак то лучше всего выбрать коку.

З.Ы. вроди ещё есть моно.

Не, какао для младенцев, на серьезные задачи встанут серьезные ограничения. Короче, не хочу изучать ОбъективныйСи, язык, сочетающий надежность С, с быстродействием SmallTalk biggrin.gif
Я смотрю послужной список SDL, и мне начинает нравится: Battle for Wesnoth, VLC, Game Maker, DOSBox, клон игры Marathon 2, и другие.
Есть соединение с Interface Builder!

Какой еще Mono?
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Bugagazavr
post May 5 2010, 01:06 PM
Post #4
http://www.mono-project.com/Mono_on_MacOS_X
Name: MacPro4,1, Mac OS X: Snow Leopard 10.6.5 - 64 bit
CPU: Core i7 930, MB: P6X58D-E, GPU: Sapphire Radeon HD 5850, RAM: 3x2GB Kingston 1600 MHz
SOUND: Realtek ALC889 - Work with AppleHDA, LAN: Marvell 88E8056 - Yukon Injector, HDD: Seagete 250 gb SATAII, Seagate 2x500 gb SATAII
Slice
post May 5 2010, 01:29 PM
Post #5
QUOTE (Bugagazavr @ May 5 2010, 05:06 PM) *

Тоже какао, только для 10.3.
Разобрался с SDL. Классная вешь, но это просто пристройка к Cocoa/Objective-C для написания OpenGL игр. Хорошо, полезно, но не то, что я искал.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post May 6 2010, 08:46 AM
Post #6
Итак, первые пробы.
Cocoa.
Нарисовал интерфейс, стал по туториалу создавть объекты, связи, события, хрен знает что... Скомпилированная без ошибок программа не запускается. Очевидно сделал не все и не так. Тестирование в бета-фазе не получилось. Три дня на то, чтобы запустить голый интерфейс?! Не, технология не для меня.
Carbon
Интерфейс создан, запустился без проблем, попытки добавить новые функции прошли успешно. Можно работать.
Вот только я смотрю, а в Барсике уже нет опции создания карбоновой программы, т.е. технология устарела. Ну посмотрим, как пойдет дальше, можно ли компилировать готовый проект под Барсиком. Во всяком случае запускается без проблем.
Qt4
Удалил PhononPlugin, и смог работать в дизайнере. Прекрасный пакет! Начинаю изучать подробности, ну и надо испытать под Тигром.
Продолжаю.
В хелпах все рассказано и показано.
Нарисовал оболочку в дизайнере класса QDialog.
Создал файл App.pro
CODE
TEMPLATE    = app
FORMS       = InternalMonitor.ui
SOURCES     = main.cpp

Создал файл main.cpp
CODE
#include "ui_InternalMonitor.h"
int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     QDialog *widget = new QDialog;
     Ui::Monitor ui;
     ui.setupUi(widget);

     widget->show();
     return app.exec();
}

Набираю команду в терминале
CODE
qmake -o Makefile App.pro

В результате я получаю... XCode.project! Ну а теперь Build, проверка и исправления ошибок, наполнение новым кодом и т.д.
На выходе - рабочая оболочка. Изучение инструментария заняло полдня.
Attached File  Screen_shot_2010_05_06_at_15.36.40.png ( 27.85K ) Number of downloads: 29

В отличие от Какао я имею нормальный С++, в отличие от Антрацита - намного более полная система классов и визуальное построение связей.
Маленькое неудобство - предварительные действия по созданию проекта, уже преодолел.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
PauliK
post May 6 2010, 01:14 PM
Post #7
Класс Маэстро! Слежу за твоей темой.
Slice
post May 6 2010, 09:21 PM
Post #8
А вот и маленькая неприятность. Эта программа под Тигром не запустилась, пока не установил Qt Framework.
Так что, если сделаю для других, в пакет я еще должен и Qt прикладывать?
Мда, мысли снова уходят на антрацит.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
PauliK
post May 6 2010, 09:53 PM
Post #9
QUOTE (Slice @ May 6 2010, 10:21 PM) *
А вот и маленькая неприятность. Эта программа под Тигром не запустилась, пока не установил Qt Framework.
Так что, если сделаю для других, в пакет я еще должен и Qt прикладывать?
Мда, мысли снова уходят на антрацит.

У меня он (Qt) стоит, точнее стоял, ноут пока в ауте, на днях восстановлю.

This post has been edited by PauliK: May 6 2010, 09:54 PM
Slice
post May 7 2010, 06:29 AM
Post #10
QUOTE (PauliK @ May 7 2010, 01:53 AM) *
У меня он (Qt) стоит, точнее стоял, ноут пока в ауте, на днях восстановлю.

А я на ноуте собираюсь менять ХДД, так что новые разработки пока откладываются, буду поднимать систему с нуля. Да тут еще гости... Но это не по теме.
У меня есть мысль, что, наверно, достаточно какую-то часть Qt вставить внутрь аппликации. Определиться бы, какую именно, чтобы весила поменьше.
Вот образец
/Applications/OsiriX.app/Contents/Frameworks/Nitrogen.framework.
Надо будет на чистой системе, без Qt, поэкспериментировать.
Мда QtGui.framework=26Мб, не очень весело, если нужна именно она. С другой стороны, даже простенький Mail.app весит 77Мб, так что это нормально.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post May 12 2010, 12:54 PM
Post #11
Продолжаю исследования.
1. Qt. Nokia отозвалась на мой баг, сказали, что исправили, а я пока работаю без аудио-плагина. Да, Qt остается лучшей средой для серьезных проектов.
2. Carbon. Ту мелочь, что я задумал, придется все же делать в Карбоне. Вот только не пойму, как сделать таймер для обновления внешнего вида.
3. PowerPlant Явная недоделка.
Attached File  Screen_shot_2010_05_12_at_16.25.49.png ( 138.01K ) Number of downloads: 26

i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
Slice
post Jun 2 2010, 01:45 PM
Post #12
Смотрите, какая прелесть!
Attached File  ______________2010_06_02___17.43.40.png ( 113.28K ) Number of downloads: 55
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
PauliK
post Jun 2 2010, 06:24 PM
Post #13
QUOTE (Slice @ Jun 2 2010, 01:45 PM) *
Смотрите, какая прелесть!
Attached File  ______________2010_06_02___17.43.40.png ( 113.28K ) Number of downloads: 55

Выглядит впечатляюще, как сам оцениваешь работу?
Slice
post Jun 2 2010, 08:03 PM
Post #14
QUOTE (PauliK @ Jun 2 2010, 10:24 PM) *
Выглядит впечатляюще, как сам оцениваешь работу?

Резюме всей этой темы, что Qt - лучшая среда разработки приложений под MacOSX. Но на работе у меня нету для этого времени, а дома только Тигер и в нем этот криэйтор не запустился, хотя у меня еще не все готово в Тигре.
i3-2120 GA-H61M-S1 UEFI, Radeon HD6670-UEFI, ALC887(VoodooHDA 2.8.6), OS⌘10.9.4, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2

Add Reply Start a new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: