2009-07-07 6 views
5

Me gustaría comenzar a desarrollar aplicaciones para iPhone, pero realmente me gustaría usar OCaml en lugar de Objective-C. Después de buscar en Google, parece que esto definitivamente es posible, pero no he encontrado ningún fragmento de código que compile realmente.¿Cómo inteface OCaml con la API de iPhone?

¿Es posible escribir aplicaciones de iPhone con OCaml? De ser así, ¿podría proporcionar un fragmento que demuestre cómo realizar llamadas a la API Cocoa desde OCaml?

+0

Hola Juliet, ¿cómo progresaste con tu desarrollo OCaml/iOS? Estaría muy interesado en saber más, porque me gustaría hacer lo mismo en unos meses. Max – Max

+0

@Max: hola Max :) Yo y unos pocos amigos íbamos a formar una empresa de nueva creación para escribir aplicaciones de iPhone, pero no estaban lo suficientemente comprometidas como para mover un proyecto de una idea a otra. Al final aprendí, el proyecto murió antes de que se materializara, pero al menos tuve que jugar con Obj-C y algunas plataformas con las que nunca había trabajado antes. – Juliet

Respuesta

4

Fuera de la caja, OCaml no se puede usar para crear aplicaciones para iPhone. Tendría que tener OCAMl código ARM de salida en lugar de código x86. También debería crear envoltorios para todas las llamadas a API de IPhone.

Aún así, estos muchachos están pasando por el dolor de intentar esto.

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

Mi humilde recomendación es que usted se centra en el uso de Obj-C para todo. Si realmente quiere un ML, úselo solo para el kernel o la porción interesante. Encontraría un * ML que codifica gens a algo así como C, y luego usa ese resultado como biblioteca en la aplicación.

Buena suerte.

+0

+1: Temía que fuera más difícil de lo que parece, pero creo que puedo vivir con el objetivo C ... siempre que pueda descifrar una macro inteligente que solucione el problema de los funargs hacia arriba y hacia abajo;) – Juliet

+1

Puede consultar esto fuera: http://www.plausiblelabs.com/blog/?p=8 – drudru

12

Tenemos instrucciones para construir un compilador cruzado de OCaml a iOS en nuestro sitio. Comenzamos con los parches mencionados anteriormente, pero descubrimos que debían modificarse de varias maneras para ejecutarse en un stock de iPhone/iPad. Estamos vendiendo una aplicación de iPhone llamada Cassino que está completamente escrita en OCaml (excepto para envoltorios delgados a Cocoa Touch). Las envolturas para todo Cocoa Touch serían un gran trabajo, pero los envoltorios para una sola aplicación no son tan malos. Y la codificación en OCaml es muy agradable en comparación con ObjC.

También acabamos de publicar fuentes completas para una pequeña aplicación para iPhone OCaml llamada Portland en nuestro sitio. Lea más en psellos.com.

+0

Las instrucciones fueron muy buenas y no generaron ningún error al compilar el compilador to-ARM. +1 – ScootyPuff