¿Puedo escribir aplicaciones nativas para iPhone con Python? [Cerrado]

91

Con 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?

Davidmytton
fuente
36
Los desarrolladores de iPhone están marcando esta pregunta como desactualizada (demasiado localizada), y los intentos de resolver esto también están generando quejas de que todavía es correcta. Entonces, si está aquí como resultado de una búsqueda, tenga en cuenta que esta respuesta es del '08 y es posible que no tenga una respuesta correcta.
1
Para explicarlo con más detalle: Apple una vez tuvo una sección en su acuerdo que enumeraba específicamente 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, una variedad de aplicaciones estaban en la tienda, en publicación o en desarrollo que usaban secuencias de comandos Lua de una manera u otra.
LearnCocos2D

Respuestas:

37

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 porque esto suceda en el corto plazo.

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

2016 editar

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

Dave Verwer
fuente
32
Escribí una aplicación de iPhone con múltiples funciones en Objective-C y una aplicación de Mac con múltiples funciones en PyObjC, y debo decir que, según 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 desarrollar más la aplicación de mi iPhone hasta que Apple incluya soporte para PyObjC. La sintaxis comparativamente verbosa y tediosa de Objective-C me distrae increíblemente cuando intento desarrollar el flujo de arriba hacia abajo de mis algoritmos.
Chris Redford
1
@Dave Verwer: ¿esta respuesta aún está actualizada?
bukzor
5
@bukzor no, consulte stackoverflow.com/questions/3691655/…
cobbal
2
@cobbal: Entonces este hilo es bastante engañoso ... ¿Cuál es la forma correcta de hacerlo para corregirlo?
Bukzor
5
@Max ¿Ha utilizado PyObjC para crear una aplicación Mac y, por lo tanto, ha comparado la legibilidad entre los programas de Apple escritos en Python con los programas de Apple escritos en Objective-C? Si no, no tiene una base para ese juicio.
Chris Redford
53

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

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

Gavrie
fuente
24

Parece que esto es ahora algo que los desarrolladores pueden hacer: el Acuerdo de desarrollador de iOS se cambió ayer y parece haber sido 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 - INTÉRPRETES

Antiguo:

3.3.2 Una Aplicación no puede instalar o iniciar por sí misma otro código ejecutable por ningún medio, incluido, entre otros, mediante el uso de una arquitectura de complemento, llamando a otros marcos, otras API o de otro modo. A menos que Apple apruebe lo contrario por escrito, no se puede descargar ni utilizar ningún código interpretado en una Aplicación, excepto el código interpretado y ejecutado por las API documentadas de Apple y los intérpretes incorporados. No obstante lo anterior, con el consentimiento previo por escrito de Apple, una Aplicación puede usar código interpretado incrustado 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ó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 descargados y ejecutados por el marco WebKit integrado de Apple.

jkp
fuente
21

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

Hay dos marcos que es posible que desee verificar : Kivy y PyMob .

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

Filipe Correia
fuente
Kivy y PyMob no generan aplicaciones nativas
Serjik
Depende de su definición de "nativo". La pregunta implica una definición que cubre la escritura de aplicaciones de Python para OSX, hasta cierto punto de la misma manera que ahora puedes escribirlas para iOS.
Filipe Correia
19

Una actualización del Acuerdo para desarrolladores de iOS significa que puede usar lo que quiera, siempre que cumpla 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 ha eliminado por completo.

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

Gordon Christie
fuente
2
¡¡Afortunadamente, este idioma se ha eliminado de 3.3.1 !!
Dan McClain
4

El acuerdo del iPhone SDK también es bastante vago sobre 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 ejecute se descargue de la red (por lo que los scripts preinstalados y editados por el usuario parecen estar bien).

IANAL, etc., etc.

schwa
fuente
3

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

Miguel
fuente
todavía está en desarrollo y es problemático
ikel
3

Actualización de 2019:

Si bien el desarrollo de Python-iOS es relativamente inmaduro y probablemente evitará (afaik) que su aplicación tenga una interfaz de usuario nativa y una funcionalidad que podría lograrse en un lenguaje de desarrollo compatible con Apple, Apple ahora parece permitir la incorporación de intérpretes de Python en Native Swift / Obj-C aplicaciones.

Esto admite la importación de bibliotecas de Python y la ejecución de scripts de Python (incluso con argumentos de línea de comandos proporcionados) directamente desde su código nativo Swift / Obj-C.

¡Mi empresa en realidad está envolviendo nuestra infraestructura (originalmente escrita en Python) en una aplicación nativa de iOS! Funciona muy bien y la comunicación entre las partes se puede lograr fácilmente a través de un modelo cliente-servidor.

Aquí hay una buena biblioteca de Beeware con una plantilla de cortador de galletas si desea probar y ejecutar scripts de Python en su aplicación iOS: https://github.com/beeware/Python-Apple-support/tree/3.6 .

Rakeeb Hossain
fuente
1

Técnicamente, siempre que el código interpretado NO SE descargue (excluyendo JavaScript), la aplicación puede ser aprobada. El marco Rhomobiles "Rhodes" hace precisamente eso, agrupando 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 de Rhodes (ruby móvil) 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.

Michael McCracken
fuente
0

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

Zifre
fuente
-1

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 iPhone.

Miguel
fuente
Sí, pero con el nuevo Acuerdo de desarrollador de iPhone debemos esperar y ver qué será de Mono Touch.
TalkingCode
1
@Holli: El nuevo acuerdo de desarrollo pone a MonoTouch en claro
Dan McClain
-1

Creo que no era posible antes, pero recientemente escuché sobre PyMob, lo 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.). Esto es ciertamente bastante único. Esta página web lo explica con más detalle.

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

John M.
fuente
Aparentemente esto se va a lanzar como un proyecto comercial. A partir de ahora (28 de septiembre de 2012), el sitio dice: "Estamos aceptando clientes para un programa Beta limitado. Comuníquese con nosotros para solicitar información" y eso es todo.
ccpizza