Pregunta

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

¿Fue útil?

Solución

Actualmente no, actualmente los únicos idiomas disponibles para acceder al SDK de iPhone son 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 aguantaría la respiración si esto sucedería en el corto plazo.

Dicho esto, Objective-C y Swift realmente no dan demasiado miedo...

edición de 2016

Javascript con el marco NativeScript ya está disponible para su uso.

Otros consejos

También puedes usar PyObjC en el iPhone, gracias 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.Escribe su código en tinypy (que es Python restringido), luego usa tinypy para convertirlo a C++ y finalmente lo compila 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 esto es algo que ahora los desarrolladores pueden hacer:El Acuerdo de desarrollador de iOS se modificó ayer y parece haber sido modificado de tal manera que sea legal la incorporación de un intérprete de Python en su aplicación:

SECCIÓN 3.3.2 — INTÉRPRETES

Viejo:

3.3.2 Una aplicación no puede instalar o iniciar otro código ejecutable por ningún medio, incluso sin limitación mediante el uso de una arquitectura enchufable, llamando a otros marcos, otras API o no.A menos que Apple apruebe lo contrario por escrito, no se puede descargar o usar ningún código interpretado en una aplicación, excepto el código que es interpretado y ejecutado por las API documentadas de Apple y los intérpretes incorporados.A pesar de lo anterior, con el consentimiento previo por escrito de Apple, una aplicación puede usar código interpretado integrado de manera limitada si dicho uso es únicamente para proporcionar características o funcionalidades menores que sean consistentes con el propósito previsto y anunciado de la aplicación.

Nuevo:

3.3.2 Una Aplicación no puede descargar ni instalar código ejecutable.El código interpretado solo se puede usar en una aplicación si todos los scripts, código 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 descargados y ejecutados por el marco WebKit incorporado de Apple.

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

Hay dos marcos que quizás quieras consultar: Kivy y PyMob.

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

Una actualización del Acuerdo para desarrolladores de iOS significa que puedes usar lo que quieras, siempre y cuando cumplas con las pautas para desarrolladores.La sección 3.3.1, que restringía lo que los desarrolladores podían usar para el desarrollo de iOS, se eliminó por completo.

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

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

El acuerdo del SDK de iPhone también es bastante vago en cuanto a si se le permite ejecutar lenguajes de secuencias de comandos (fuera del Javascript de WebView).Mi lectura es que está bien, siempre y cuando ninguno de los scripts que ejecute se descargue de la red (por lo que 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 aprobarse.El marco "Rhodes" de Rhomobiles hace precisamente eso: incluye 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, Apple no lo encuentra 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 dispuesta.

Puedes hacer esto con PyObjC, con un teléfono liberado, por supuesto.Pero si desea llevarlo a la App Store, no lo permitirán porque "interpreta el código". Sin embargo, es posible que pueda usar Mudar la piel, aunque no tengo conocimiento de que nadie haya hecho esto.Sin embargo, no se me ocurre ninguna buena razón para hacer esto, ya que se pierde la escritura dinámica y también se podría usar ObjC.

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

Todavía no lo he probado, pero lo echaré un vistazo pronto.

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

El único lenguaje "externo" importante para el desarrollo de iPhone que conozco con un soporte semisignificativo en términos de marcos y compatibilidad es Monotáctil, un entorno C#/.NET para desarrollar en el iPhone.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top