2008-09-04 6 views
84

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

+28

Los desarrolladores de iPhone están marcando esta pregunta como desactualizada (demasiado localizada), y los intentos de resolver esto también generan quejas de que sigue siendo correcta. Entonces, si estás aquí como resultado de una búsqueda, ten en cuenta que esta respuesta es del '08 y es posible que no tenga una respuesta correcta. – Will

+1

Para explicar mejor: Apple una vez tuvo una sección en su acuerdo que específicamente enumeró los lenguajes de programación permitidos C, C++, Objective-C y Javascript. Esto fue motivo de mucha confusión, dudas y miedo. Finalmente, Apple dejó de nombrar los idiomas. Sé con certeza que, incluso mientras esto estaba en su lugar, había una variedad de aplicaciones en la tienda, en proceso de publicación o en desarrollo que usaban secuencias de comandos Lua de una forma u otra. – LearnCocos2D

Respuesta

33

Actualmente, 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 contaría con que esto ocurra en el corto plazo.

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

2016 editar

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

+30

Escribí una aplicación multifuncional para iPhone en Objective-C y una aplicación para Mac de múltiples funciones en PyObjC, y debo decir que, de acuerdo con la experiencia, la sintaxis de Objective-C para estructuras de datos en particular (como matrices) y diccionarios) es significativamente más engorroso y tedioso que el de Python. Básicamente me he negado a hacer más desarrollos en mi aplicación de iPhone hasta que Apple incluya compatibilidad con PyObjC. La sintaxis comparativamente prolija y tediosa de Objective-C me distrae increíblemente cuando intento desarrollar el flujo descendente de mis algoritmos. –

+1

@Dave Verwer: ¿esta respuesta todavía está actualizada? – bukzor

+5

@bukzor nope, vea http://stackoverflow.com/questions/3691655/embedding-python-in-an-iphone-app – cobbal

52

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

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

5

El acuerdo de iPhone SDK también es bastante impreciso acerca de si incluso se le permite ejecutar lenguajes de scripting (fuera de un 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

1

Usted puede hacer esto con PyObjC, con un teléfono con jailbreak, por supuesto. Pero si quieres ingresar a la App Store, no lo permitirán porque "interpreta el código". Sin embargo, es posible que pueda usar Shed Skin, aunque no conozco a nadie que lo haga. No puedo pensar en ninguna buena razón para hacer esto, ya que pierdes la escritura dinámica, y también podría usar ObjC.

0

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

+0

Sí, pero con el nuevo Acuerdo de desarrollador de iPhone debemos esperar y ver qué sucederá con Mono Touch. – TalkingCode

+1

@Holli: el ahora nuevo acuerdo de desarrollo pone MonoTouch en claro –

+0

@phsr Sí, ya lo noté. Una gran noticia. – TalkingCode

20

una actualización del Acuerdo para desarrolladores de iOS significa que se puede usar lo que quiera, siempre y cuando cumpla con las pautas de desarrollo. La sección 3.3.1, que restringió 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

+2

Afortunadamente, este lenguaje ha sido eliminado de 3.3.1 !! –

2

Técnicamente, siempre y cuando el código interpretado no se descarga (excluyendo JavaScript), la aplicación puede ser aprobado. El marco de Rhodes de Rhomobiles hace justamente eso, combinando el móvil Ruby, una versión ligera de Rails, y su aplicación para 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 considera objetable.

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

Incluso después de que el último comunicado de prensa de Apple - Rodas aplicaciones móviles (rubí) siguen siendo viables en la aplicación de la tienda. Me cuesta creer que tinyPy o pyObjC no encuentren un lugar si hay una comunidad de desarrolladores dispuesta.

23

Parece que esto es ahora se permite algo que los desarrolladores hacer: el Acuerdo para desarrolladores de iOS fue cambiado ayer y parece haber sido ammended en una manera tal como para hacer que la incorporación de un interpretter Python en su aplicación jurídica:

SECCIÓN 3.3.2 - INTÉRPRETES

antigua:

3.3.2 Una aplicación no puede en sí instalar o iniciar otros 01 ejecutable Códigopor cualquier medio, incluida la limitación mediante el uso de una arquitectura de plug-in , llamando a otros marcos , otras API u otras. salvo disposición contraria de Apple en la escritura, el código no puede ser interpretado sea descargado o usado en una aplicación excepción de código que se interpreta y dirigido por API documentadas de Apple y incorporada intérprete (s). No obstante lo anterior, con el consentimiento previo por escrito de Apple, una aplicación puede utilizar incrustado código interpretado de una manera limitada si tal uso es únicamente para proporcionar características o funcionalidades menores que son consistente con la intención y finalidad anunciada de la aplicación.

Nuevo:

3.3.2 Una aplicación puede no descargar o instalar código ejecutable. El código interpretado solo se puede usar en una Aplicación si todas las secuencias de comandos, código y los intérpretes están empaquetados en la Aplicación y no se descargan. La única excepción a la es la de las secuencias de comandos y el código descargado y ejecutado por integrado en el marco WebKit de Apple.

1

creo que no era posible antes, pero recientemente he oído hablar de PyMob, que parece interesante porque las aplicaciones están escritas en Python y los productos finales son códigos fuente nativa en varias plataformas (Obj-C para iOS, Java para Android etc.). Esto es ciertamente bastante único. This página web lo explica con más detalle.

Aún no lo he probado, pero lo echaré un vistazo pronto.

+0

Aparentemente, se lanzará como un proyecto comercial. A partir de ahora (28-Sep-12) el sitio dice: "Estamos aceptando clientes para un programa Beta limitado. Contáctanos para preguntar" y eso es todo. – ccpizza

19

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

Hay dos marcos que puede desear pagar: Kivy y PyMob.

Considere también las respuestas a this question, ya que están más actualizadas que esta.

+0

Kivy y PyMob no generan aplicaciones nativas – Serjik

+0

Depende de su definición de "nativo". La pregunta implica una definición que cubre escribir la aplicación de Python para OSX, hasta cierto punto de la misma manera que ahora puede escribirlos para iOS. –

7

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

Cuestiones relacionadas