2009-07-07 3 views
5

Я хотел бы начать разработку приложений для iPhone, но мне бы очень хотелось использовать OCaml, а не Objective-C. После некоторого поиска в Google кажется, что это определенно возможно, но я не нашел фрагментов кода, которые действительно компилируются.Как интегрировать OCaml с API iPhone?

Можно ли писать приложения для iPhone с помощью OCaml? Если да, можете ли вы предоставить фрагмент, демонстрирующий, как делать вызовы в Cocoa API от OCaml?

+0

Привет, Джульетта, как вы продвинулись в разработке OCaml/iOS? Мне было бы очень интересно узнать больше, потому что я хотел бы сделать то же самое через несколько месяцев. Max – Max

+0

@ Max: hi Max :) Я и несколько друзей собирались создать стартап-компанию, пишущую приложения для iPhone, но они были недостаточно уверены в том, чтобы переместить проект вместе с идеей на реальность. В конце концов, проект умер, прежде чем он когда-либо материализовался, но по крайней мере мне пришлось играть с Obj-C и некоторыми платформами, с которыми я никогда не работал. – Juliet

ответ

4

Невозможно использовать OCaml для создания приложений IPhone. Вы должны иметь OCAM-код вывода ARM, а не код x86. Вам также придется создавать оболочки для всех вызовов IPhone API.

Тем не менее, эти ребята испытывают боль, чтобы попробовать это.

http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/

Мои скромные, что Рекомендации для вас сосредоточиться на использование Obj-C для всего. Если вы действительно хотите ML, используйте его только для ядра или интересной части. Я бы нашел * ML, что код gens на что-то вроде C, а затем использовать этот результат в качестве библиотеки приложения.

Удачи.

+0

+1: Я боялся, что это будет тяжелее, чем кажется, но думаю, что я могу жить с объективным C ... до тех пор, пока я могу найти умный макрос, который решает проблему вверх и вниз по лучшему;) – Juliet

+1

Вы можете проверить это: http://www.plausiblelabs.com/blog/?p=8 – drudru

12

У нас есть инструкции по созданию кросс-компилятора OCaml-to-iOS на нашем сайте. Мы начали с патчей, упомянутых выше, но мы обнаружили, что их нужно модифицировать несколькими способами, чтобы работать на складе iPhone/iPad. Мы продаем приложение iPhone под названием Cassino, которое полностью написано в OCaml (за исключением тонких оберток для Cocoa Touch). Обертки для всех Cocoa Touch будут большой работой, но обертки для одного приложения не так уж плохи. И кодирование в OCaml очень приятно по сравнению с ObjC.

Мы также опубликовали полные источники для небольшого приложения для iPhone OCaml с именем Portland на нашем сайте. Читайте больше на psellos.com.

+0

Инструкции были очень хорошими и не привели к ошибкам при создании компилятора ARM. +1 – ScootyPuff