¿Puedo escribir aplicaciones nativas para iPhone usando Python?

Usando PyObjC , puede usar Python para escribir aplicaciones Cocoa para OS X. ¿Puedo escribir aplicaciones nativas para iPhone usando Python y, de ser así, cómo?

Actualmente, los únicos idiomas disponibles para acceder al iPhone SDK son actualmente C / C ++, Objective C y Swift.

No hay ninguna razón técnica por la que esto no pueda cambiar en el futuro, pero no aguanto la respiración porque esto suceda a corto plazo.

Dicho esto, Objective-C y Swift realmente no son demasiado aterradores …

Edición de 2016

Javascript con el framework NativeScript está disponible para usar ahora.

También puede usar PyObjC en el iPhone, debido al excelente trabajo de Jay Freeman (saurik). Ver aplicaciones de iPhone en Python .

Tenga en cuenta que esto requiere un iPhone con jailbreak en este momento.

Sí tu puedes. Usted escribe su código en tinypy (que está restringido a Python), luego usa tinypy para convertirlo a C ++, y finalmente comstack esto con XCode en una aplicación nativa para iPhone. Phil Hassey ha publicado un juego llamado Elephants! utilizando este enfoque. Aquí hay más detalles,

http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/

Parece que ahora esto es algo que los desarrolladores pueden hacer: el Acuerdo de desarrollador de iOS se modificó ayer y parece que se ha enmendado de tal manera que la incorporación de un intérprete de Python en su aplicación sea legal:

SECCIÓN 3.3.2 – INTERPRETES

Antiguo:

3.3.2 Una Aplicación no puede instalar o lanzar otro código ejecutable por cualquier medio, incluso sin limitación a través del uso de una architecture de complemento, llamando a otros marcos, otras API u otros. A menos que Apple lo apruebe por escrito, ningún código interpretado puede descargarse o usarse en una Aplicación, excepto el código que es interpretado y ejecutado por las API documentadas de Apple y el (los) intérprete (s) incorporado (s). No obstante lo anterior, con el consentimiento previo por escrito de Apple, una Aplicación puede usar código interpretado incorporado de forma limitada si dicho uso es únicamente para proporcionar características o funciones menores que sean coherentes con el propósito previsto y anunciado de la Aplicación.

Nuevo:

3.3.2 Una aplicación no puede descargar o instalar código ejecutable. El código interpretado solo se puede utilizar en una Aplicación si todos los scripts, códigos e intérpretes están empaquetados en la Aplicación y no se descargan. La única excepción a lo anterior son los scripts y el código descargado y ejecutado por el marco de WebKit integrado de Apple.

Sí, hoy en día puedes desarrollar aplicaciones para iOS en Python.

Hay dos marcos que puede querer retirar : Kivy y PyMob .

Por favor considere las respuestas a esta pregunta también, ya que están más actualizadas que esta.

Una actualización del Acuerdo de desarrollador de iOS significa que puede usar lo que quiera, siempre y cuando cumpla con las pautas del desarrollador. La sección 3.3.1, que restringía lo que los desarrolladores podrían usar para el desarrollo de iOS, se ha eliminado por completo.

Fuente: http://daringfireball.net/2010/09/app_store_guidelines

Pythonista tiene una función de Exportar a Xcode que te permite exportar tus scripts de Python como proyectos de Xcode que crean aplicaciones iOS independientes.

El acuerdo de iPhone SDK también es bastante vago acerca de si se le permite ejecutar lenguajes de scripting (fuera del Javascript de WebView). Mi lectura es que está bien, siempre y cuando ninguno de los scripts que ejecutes se descargue de la red (por lo tanto, los scripts preinstalados y editados por el usuario parecen estar bien).

IANAL etc. etc.

Técnicamente, siempre que el código interpretado NO SE descargue (excluyendo JavaScript), la aplicación puede ser aprobada. Rhomobiles “Rhodes” framework hace precisamente eso, al combinar Ruby móvil, una versión ligera de Rails, y su aplicación para su distribución a través de la tienda de aplicaciones. Debido a que tanto el intérprete como el código interpretado están empaquetados en la aplicación final, a Apple no le resulta objetable.

http://rhomobile.com/products/rhodes/

Incluso después del último comunicado de prensa de Apple, las aplicaciones rhodes (mobile ruby) siguen siendo viables en la tienda de aplicaciones. Me resultaría difícil creer que tinyPy o pyObjC no encontrarían un lugar si hubiera una comunidad de desarrolladores dispuestos a hacerlo.

Puedes hacer esto con PyObjC, por supuesto, con un teléfono con jailbreak. Pero si desea introducirlo en la App Store, no lo permitirán porque “interpreta el código”. Sin embargo, es posible que puedas usar Shed Skin , aunque no conozco a nadie que haga esto. No puedo pensar en ninguna buena razón para hacer esto, ya que pierdes la escritura dinámica y también puedes usar ObjC.

Creo que no fue posible antes, pero recientemente escuché sobre PyMob, lo que parece interesante porque las aplicaciones están escritas en Python y las salidas finales son códigos fuente nativos en varias plataformas (Obj-C para iOS, Java para Android, etc.). Esto es ciertamente bastante único. Esta página web lo explica con más detalle.

No le he dado una oportunidad todavía, pero echaré un vistazo pronto.

BeeWare es un marco de código abierto para crear aplicaciones nativas de iOS y Android.

El único lenguaje “externo” significativo para el desarrollo de iPhone que conozco con un soporte semi significativo en términos de marcos y compatibilidad es MonoTouch , un entorno C # / .NET para desarrollo en el iPhone.