2009-07-07 57 views
5

我想開始爲iPhone開發應用程序,但我真的想使用OCaml而不是Objective-C。一些谷歌搜索後,似乎這是絕對可能的,但我還沒有找到任何實際編譯的代碼片段。如何與iPhone API接口OCaml?

是否可以使用OCaml編寫iPhone應用程序?如果是這樣,你能否提供一個片段來演示如何從OCaml調用Cocoa API?

+0

嗨,朱麗葉,你的OCaml/iOS開發過程如何?我會對更多瞭解更感興趣,因爲我想在幾個月內做同樣的事情。 Max – Max 2011-05-12 19:49:20

+0

@Max:hi Max :)我和幾個朋友正在組建一家創建iPhone應用程序的創業公司,但他們沒有足夠的承諾將項目從理念轉移到現實。最後得知,該項目在它實現之前就已經死亡,但至少我得到了Obj-C和一些以前從未與之合作過的平臺。 – Juliet 2011-05-13 00:02:18

回答

4

開箱即用,OCaml不能用於構建iPhone應用程序。你將不得不擁有OCaml輸出ARM代碼而不是x86代碼。您還必須爲所有IPhone API調用構建包裝器。

不過,這些傢伙正在經歷痛苦嘗試這一點。

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

愚見recomendation是你專注於使用的OBJ-C的一切。如果 你真的想要一個ML,只用於內核或有趣的部分。 我會找到一個* ML代碼生成類似於C的代碼,然後使用該結果 作爲應用程序庫。

祝你好運。

+0

+1:我擔心這聽起來會比聽起來難,但我認爲我可以用客觀的C來生活......只要我能找出一個聰明的宏來解決向上和向下的funargs問題;) – Juliet 2009-07-08 13:15:37

12

我們有在我們的網站上建立OCaml到iOS交叉編譯器的指令。我們從上面提到的補丁開始,但是我們發現它們需要通過多種方式進行修改才能在股票iPhone/iPad上運行。我們銷售的是一款名爲Cassino的iPhone應用程序,完全用OCaml編寫(除了Cocoa Touch的薄包裝外)。所有Cocoa Touch的包裝器都將是一項很大的工作,但單一應用程序的包裝並不是那麼糟糕。與ObjC相比,OCaml編碼非常令人愉快。

我們剛剛發佈了一個名爲Portland的小型OCaml iPhone應用程序的完整源代碼。閱讀psellos.com