Разработка программ под iPhone

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Разработка программ под iPhone

Сообщение baiguzov » 30.04.2009 15:47:10

Если кто-нибудь уже пробовал писать программы под iPhone на freepascal/lazarus, поделитесь опытом, как написать простенькую программу вида "Hello World".

Я скачал себе VMWare образ системы Mac OS X Leopard для i386, скачал и установил следующие файлы
iphone_sdk_for_iphone_os_2.2.*.dmg
fpc-2.2.4-*-i386-macosx.dmg
fpcsrc-2.2.4-*-i386-macosx.dmg
fpc-2.3.1v2.arm-iphone.dmg
lazarus-0.9.27.*-i386-macosx.dmg

Создаю в лазарусе новый проект, с параметрами:
Библиотека виджетов LCL: cocoa (pre-alpha)
Операционная система: Darwin
Целевое семейство процессоров: arm

Но при компиляции пишет, что модуль Interfaces не найден.


Подскажите будет ли работать LCL на iPhone? И если нет, то какие есть альтернативы?

И где-нибудь можно посмотреть примеры программ написанных на freepascal для iPhone? Мне бы хотя бы знать от чего отталкиваться, дальше уже сам разберусь.

Пояндексил и погуглил, но информации по данной теме практически нет.
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение B4rr4cuda » 30.04.2009 16:17:06

а сделать make в папке lazarus/lcl/interfaces/cocoa?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Разработка программ под iPhone

Сообщение baiguzov » 30.04.2009 16:41:18

B4rr4cuda писал(а):а сделать make в папке lazarus/lcl/interfaces/cocoa?


Одну только эту папку нельзя скомпилировать, можно только целиком LCL собрать.

Но при попытке собрать LCL коммандой make OS_TARGET=darwin CPU_TARGET=arm выдаёт ошибку
/usr/bin/as assembler for architecture arm not installed
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение Logo » 30.04.2009 17:03:23

baiguzov писал(а):
B4rr4cuda писал(а):а сделать make в папке lazarus/lcl/interfaces/cocoa?


Одну только эту папку нельзя скомпилировать, можно только целиком LCL собрать.

Но при попытке собрать LCL коммандой make OS_TARGET=darwin CPU_TARGET=arm выдаёт ошибку
/usr/bin/as assembler for architecture arm not installed

А fpc кросскомпилятор для arm у Вас создан? Похоже, что нет. Сначала нужно откомпилировать fpc, для получения библиотек и компилятора для arm.

Добавлено спустя 10 минут 11 секунд:
Линк, как откомпилировать кросскомпилятор:
http://freepascal.ru/forum/viewtopic.php?f=1&t=4032&p=30545#p30545
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Разработка программ под iPhone

Сообщение baiguzov » 30.04.2009 17:40:17

У меня уже есть файл ppcrossarm, он установился из пакета fpc-2.3.1v2.arm-iphone.dmg и в папке units есть модули для arm-darwin

значит я так понимаю мне не нужно собсирать кросскомпилятор.

как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение Logo » 30.04.2009 17:42:38

Попробуйте тогда указать путь к кросскомпилятлру make PP={путь к кросскомпилятору}

как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?

Пакет binutils установлен?
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Разработка программ под iPhone

Сообщение shade » 30.04.2009 17:52:03

baiguzov писал(а):как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?

Да нужно устанавливать отдельно.
Поищие тут ftp://ftp.freepascal.org/fpc/contrib/cross/
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Разработка программ под iPhone

Сообщение baiguzov » 30.04.2009 17:55:05

Logo писал(а):Попробуйте тогда указать путь к кросскомпилятлру make PP={путь к кросскомпилятору}

Выдаёт туже ошибку.


как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?

Пакет binutils установлен?


Похоже что binutils не установлен. А где можно скачать для mac os?

Добавлено спустя 12 минут 35 секунд:
shade писал(а):Поищие тут ftp://ftp.freepascal.org/fpc/contrib/cross/


увы тут для mac os x нет binutils
Последний раз редактировалось baiguzov 30.04.2009 18:12:55, всего редактировалось 1 раз.
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение Logo » 30.04.2009 18:12:15

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

Добавлено спустя 7 минут 41 секунду:
arm-elf-binutils - вроде так называется пакет в портах для МАК.
или прямиком на http://www.gnu.org/software/binutils/ и компилируем кросс под arm.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Разработка программ под iPhone

Сообщение скалогрыз » 30.04.2009 22:13:13

Уже писал "hello world" для iPhone.

Компилить и собирать консольные приложения несложно, но опыта работы с ними у меня нет :) я тренировался на эмуляторе интерфейсов (именно интерфейсов, а не arm устройства), и делал гуёвый Hello world. Т.к. у меня самого iPhone/iPod нету, то просил участника fpc команды скомпилить и проверить - и заработало!

статью о подготовке fpc к iPhone, читаем здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
(здесь же есть пример opengles приложения)

если нужны ГУЁвые проги, то про Cocoa widgetset - забудьте! он основывается на framework-е AppKit.
AppKit существует только для Mac OS. В iPhoneOS используется UiKit.

что приятно порадовало, большое количество Cи-шных системных функций (вроде Core Foundation, sockets, opengles, openal и т.д.) успешно перекочевало на iPhoneOS, и не нужно использовать только Objective-C. Для этих функций уже сконвертированы хедеры. Но про MacOSAll тоже забудьте, потому что он заточен под OSX 10.4.

Основные вилы, это:
1) нужна лицензия разработчика (минимум 100$ в год) чтобы загружать на iPhone проги через XCode. Про другие способы я не знаю (но точно знаю что они есть :) ибо пираццтво!)
2) как конкретно Xcode заливает проги на iPhone доподлинно неизвестно. А это значит, чтобы залить прогу, придётся создавать FPC XCode проект. Лично меня это не радует, потому что я пишу с помощью Lazarus-а, и ковыряться с XCode, не охота (а надо). В планах написать конвертер Lazarus Project -> XCode project
3) Заголовки UIkit и все iPhoneOS библиотек НЕЛЬЗЯ распространять, даже в виде паскалевских исходников - нарушение лицензии Apple. Если это нарушить, то можно испачкать себя и всех окружающих (сообщество fpc).
Есть 2 варианта: конвертировать только то, что нужно ручками и никому не показывать (так уже делал - не слишком трудно кстати), либо ждать PasCocoa с её конвертером.
4) есть несколько проектов PasCocoa - для работы с интерфейсами Objective-C. В целом ничего сложного в работе с objc объектами нет (Спасибо разработчикам Apple). Но ни один из PasCocoa незакончен :) Есть куча желания довести это всё до ума, а времени нет.... http://wiki.lazarus.freepascal.org/PasCocoa
Есть ещё вариант PasCocoa, как расширение синтаксиса паскаля.
http://wiki.lazarus.freepascal.org/FPC_PasCocoa
5) intel mac os x ONLY. скорей всего - хакинтош сгодится то же :) powerpc - забудьте
6) собственно девайс. Лично мне нужно 2 месяца питаться исключительно святым духом, и не пользоваться инетом, светом и водой, чтобы позволить купить себе сие устройство (не влезая в долги). т.к. iPod touch дешевле iPhone, имеет смысл приобрести именно iPod.

Всё собирался прикрутить к Lazarus-у расширение, чтобы можно было по-быстрому собирать iPhone приложения. Но т.к. конвертер (пункт №2 см.выше), не написал, то и расширение не реализовано .. (эх, позор на мою голову! грозился ещё месяц назад это всё сделать)

Вывод:
* нужны срочные финансовые вложения в развитие FPC+iPhone :D ...это так, иначе терпеливо ждём/помогаем в разработке.
* задатки положены отличные! Все будущие возможные выкрутасы Apple, с повальным переходом на Objective-C, FPC воспримет абсолютно безболезненно :) Неплохо, если будущий apple-book тоже будет основан на iPhoneOS. ну и поддержка 64-битных приложений в маке будет (carbon - 32 bit only)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Разработка программ под iPhone

Сообщение baiguzov » 01.05.2009 00:22:40

Установил таки себе програму MacPorts, а в месте с ней и arm-elf-binutils, только lcl при компиляции с ним всё равно выдавал туже ошибку.
После этого сделал поиск ports search iphone и нашёл порт arm-apple-darwin-binutils @r188 (cross, iphone), установил его, а затем в нём нашёл файл скопировал arm-apple-darwin-as, скопировал его в /usr/libexec/gcc/darwin/arm и переименовал просто в "as", и тогда lcl при сборке перестал на него ругаться, но теперь ругается на отсутствие модуля MacOSAll "Fatal: Can't find unit MacOSAll used by FileUtil".

скалогрыз, девайсы сейчас начали дешеветь, если ещё осенью iPhone 3G 16Gb стоил порядка 30тыр, причём половина из них продавались серыми, без гарантии и документов, то сейчас этот же девайс уже продаётся за 22тыр причём белый с гарантией и документами, и я так думаю что в ближайшие полгода цена на него будет ещё падать.

Я разрабатываю IM-мессенджер для одного сайта, изначально он был написан на delphi и только под win32, сейчас я его переписал на lazarus и скомпилировал под win32, linux и mac os x, а также для КПК с windows mobile. В идеале хочу скомпилировать под все популярные платформы, включая symbian и iphone. Но со сборкой под symbian помоему всё глухо. А вот iphone, я так понимаю, всё таки развивается.

Может если не на lcl, то каким либо другим способом можно написать гуёвое приложение для iphone на freepascal/lazarus, то было бы замечательно. Потому что мне pascal привычнее чем си.
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение Logo » 01.05.2009 00:49:30

baiguzov писал(а):Установил таки себе програму MacPorts, а в месте с ней и arm-elf-binutils, только lcl при компиляции с ним всё равно выдавал туже ошибку.
После этого сделал поиск ports search iphone и нашёл порт arm-apple-darwin-binutils @r188 (cross, iphone), установил его, а затем в нём нашёл файл скопировал arm-apple-darwin-as, скопировал его в /usr/libexec/gcc/darwin/arm и переименовал просто в "as", и тогда lcl при сборке перестал на него ругаться, но теперь ругается на отсутствие модуля MacOSAll "Fatal: Can't find unit MacOSAll used by FileUtil".

Спасибо за информацию. Дальше по MacOS я уже ничем не помогу, не работал пока с этой системой :oops:

В Linux, иногда, нужно путь указывать к binutils первым в PATH, например:
export PATH=/opt/cross/arm-linux/bin:/opt/cross/arm-linux/lib:$PATH
Может и в MacOS это поможет.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Разработка программ под iPhone

Сообщение скалогрыз » 01.05.2009 10:47:04

блин. ну не нужен тебе MacPorts

если у тебя XCode версии 3.0 и выше а так же Intel mac, то все необходимые библиотеки для кросс-сборки у тебя есть.
осталось скачать fpc заточенный под кросс сборку

скачать здесь: ftp://ftp.freepascal.org/fpc/snapshot/v ... iphone.dmg

читать здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
знание английского - обязательно.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Разработка программ под iPhone

Сообщение baiguzov » 01.05.2009 23:44:29

скалогрыз писал(а):скачать здесь: ftp://ftp.freepascal.org/fpc/snapshot/v ... iphone.dmg

читать здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
знание английского - обязательно.


именно это я и сделал, ты лучше покажи простенький пример программы, например окно, несколько контролов, и кнопка, при нажатии которой появляется табличка "Hello World" ;-)

Скажи какие модули нужно подключать? И какие вообще на данный момент есть возможности написания программ для iPhone, т.е. все ли возможности iPhone будут доступны из моей программы или только какая-то часть.
baiguzov
новенький
 
Сообщения: 14
Зарегистрирован: 13.01.2009 20:30:58

Re: Разработка программ под iPhone

Сообщение скалогрыз » 02.05.2009 00:09:33

именно это я и сделал, ты лучше покажи простенький пример программы, например окно, несколько контролов, и кнопка, при нажатии которой появляется табличка "Hello World"

хех... см. аттач. и читай фпц вики...

Скажи какие модули нужно подключать? И какие вообще на данный момент есть возможности написания программ для iPhone, т.е. все ли возможности iPhone будут доступны из моей программы или только какая-то часть.

1-м делом нужно подключить основной модуль для разработчика паскаль - голову
2-м делом придёться почитать эти вещи: http://developer.apple.com/DOCUMENTATIO ... ction.html
3-х ...
4-х PROFIT
Вложения
Picture 8.JPG
прога в эмуляторе iPhone
iphonetest.zip
(4.88 КБ) Скачиваний: 544
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

Рейтинг@Mail.ru