¿Por qué Python no es adecuado como lenguaje de desarrollo de aplicaciones móviles?

Bueno, eso depende completamente de la aplicación móvil que quieras construir.
Si te gustan las aplicaciones de Android, Java es el idioma para ti. Android usa xml para el diseño (aunque no necesita ‘aprenderlo’, lo obtendrá sobre la marcha) y java para la lógica principal y el funcionamiento de la aplicación.

Para Windows Phone y Windows Desktop, deberá usar C #. Es como una mezcla de C ++ y Java. Para el diseño, usará XAML, que de nuevo se familiarizará cuando comience a trabajar (además, el intellisense de Visual Studio realmente facilita el trabajo). Además, Microsoft le da la libertad de crear aplicaciones universales (básicamente escribiendo el mismo código que funciona tanto en Windows Phone como en Windows Desktop, con solo unos pocos pequeños cambios).

No tengo mucha experiencia cuando se trata de iOS, pero usarás Swift u Objective C.

Llegando al concepto de aplicaciones híbridas. Las aplicaciones híbridas le permiten escribir código una vez y usarlo para múltiples plataformas. Apache Cordova y el marco iónico son buenos ejemplos de esto. El idioma que use para crear estas aplicaciones depende del marco que use.

Sin embargo, debe tener en cuenta el hecho de que las aplicaciones híbridas, por más tentadoras que parezcan, no aprovechan al máximo las características de la plataforma. La aplicación ciertamente funcionará, pero no usará características características de la plataforma (por ejemplo, mosaicos en vivo en dispositivos Windows y widgets en dispositivos Android).

¿Qué es wxPython?

wxPython es un kit de herramientas GUI para el lenguaje de programación Python. Permite a los programadores de Python crear programas con una interfaz gráfica de usuario robusta y altamente funcional, simple y fácil. Se implementa como un módulo de extensión de Python (código nativo) que envuelve la popular biblioteca GUI multiplataforma wxWidgets, que está escrita en C ++.
Al igual que Python y wxWidgets, wxPython es de código abierto, lo que significa que es gratis para que cualquiera lo use y el código fuente está disponible para que cualquiera lo vea y modifique. O cualquiera puede aportar soluciones o mejoras al proyecto. WxPython es un juego de herramientas multiplataforma. Esto significa que el mismo programa se ejecutará en múltiples plataformas sin modificación. Las plataformas compatibles actualmente son Microsoft Windows de 32 bits, la mayoría de los sistemas Unix o similares a Maixtosh OS X.

En julio, ofrecemos un conjunto completo de servicios de diseño y desarrollo. Lea algunos de nuestros casos de estudio interesantes y póngase en contacto con nosotros para crear una aplicación móvil que supere las expectativas de los usuarios.

Encontrará diferentes compañías de servicios que ofrecen diferentes estructuras de costos para el desarrollo de aplicaciones móviles. Algunos se centran en el trabajo de desarrollo de calidad, mientras que otros se centran en el desarrollo rápido y descuidado de bajo costo. La decision es tuya.

Versión tl; dr: PSF hizo que la migración a Python 3 fuera una prioridad para la comunidad, lo que provocó innovaciones pitónicas durante 2006-2016, que fue el momento decisivo en la historia de las tecnologías web modernas.

Aquí está la respuesta genuina. Python 3 fue la causa raíz de este problema.

Python 3 se lanzó en 2006 y no despegó tan rápido como esperaba PSF. Para superar la gravedad de Python 2.7, tuvieron que matar deliberadamente Python 2 utilizando numerosas estrategias, la estrategia principal es dejar de agregar nuevas características a Python 2.7 (también conocido como simplemente abandonar el lenguaje de escritura dinámica más popular del mundo de la época)

Ahora había varias comunidades que mantenían las nuevas características de Python 3 en el pasado a Python 2.7, lo que ralentizó aún más la adaptación de Python 3.

Esos 10 años de período de transición fueron una gran pesadilla en el peor de los casos, las comunidades (especialmente los propietarios de bibliotecas) se vieron obligadas a mantener su código compatible con 2 y 3, lo que causó que el costo de las pruebas se disparara, esto impactó el pensamiento libre de los desarrolladores al golpear su productividad que originalmente hizo popular a Python. En los 10 años enteros, los Pytonistas no codificaron en Python 2 ni en Python 3, sino que codificaron un lenguaje intermedio ( Python X) lleno de hacks hodge-podge aquí y allá sin documentación clara, hubo suficientes pautas oficiales para portar a Python 3 pero no para mantener el código en Python 2 y 3, ya que realmente no esperaban que surgiera tal problema.

La experiencia de aprendizaje de Python a través de Internet llegó a su punto más bajo, las preguntas en Google conducirían a publicaciones en el blog y Stackoverflow que fueron para Python 2. Cada conocimiento archivado (incluso tan simple como ‘ordenar un dict’) tuvo que ser reescrito nuevamente para Python 3 y etiquetó las versiones de Python correctamente. Esta parte causó una gran confusión para los novatos y convirtió a Javascript como un posible primer idioma . La mayoría de las respuestas de desbordamiento de la pila dejaron de funcionar repentinamente, ya que se escribieron originalmente para Python 2. Las nuevas respuestas no se escribieron, ya que con frecuencia hacer la misma pregunta para Python 3 hará que la pregunta sea rechazada, bloqueada y eliminada o marcada como ‘duplicada’ por los moderadores ya que Stackoverflow no está bien diseñado para conversar sobre preguntas de múltiples versiones de un mismo lenguaje de programación.

Grandes herramientas como WxPython, PyQT, PySide se volvieron viejas y ajenas porque ‘Python 3’ se convirtió repentinamente en una ‘prioridad’ impuesta de todo el código abierto. (Imagínese como un desarrollador de código abierto, de repente PSF / comunidad declara su trabajo como ‘obsoleto’, puede perder el espíritu, no le importaría mucho, eso es lo que sucedió con cientos de bibliotecas, las grandes bibliotecas fueron declaradas heredadas por mucho tiempo) razones por las que el autor no tenía tiempo / interés en portar a P3 aunque eran funcionales y muy utilizables.

La experiencia de portar a Python 3 no fue tan fácil como te imaginas o la PSF pensó. Para un desarrollador, puede simplemente pasar de 2 a 3. Pero para el propietario de una biblioteca se trata de ‘ mantener ‘ 2 y 3 con un costo de prueba adicional.

Por lo tanto, todos fueron testigos de que durante 2006 a 2016 no hubo nuevas innovaciones o que ocurrieron cosas innovadoras en el mundo de Python, estuvieron ocupados resolviendo el problema de Python 3 (portabilidad y mantenimiento) y lanzando pequeñas características apenas sobreviviendo. Pero todos sabíamos que 2006-2016 fue el momento decisivo de la tecnología web.

Javascript comenzó a dominar en todas partes con marcos revolucionarios y nuevas formas de hacer las cosas (como IO sin bloqueo, zócalos web, etc.) mientras la comunidad Python se sacudía la cabeza para limpiar el desastre. Python 3 es bueno pero está mal cronometrado. Es por eso que Python no tiene un marco multiplataforma adecuado para dispositivos móviles.

Mientras que C # tiene Xamarin, JS tiene Cordova y Titanium, incluso Lua tiene Corona, pero los equivalentes de Python Kivy y PyQT siguen estancados. Sin embargo, Python tendrá un gran futuro en el aprendizaje automático, la PNL, la informática estadística y científica. Entonces, para repetir el punto, Python perdió lo que merecía de 2006–2016, pero dominará lo que realmente merece de 2016–2026, desafortunadamente el desarrollo móvil (front-end) no es uno de ellos

Resumen: No hubo nuevas innovaciones en 2006–2016 que respondan a su pregunta.

Desde que respondí esta pregunta, dejé de usar python-for-android porque las bibliotecas SSL están desactualizadas y no pude encontrar una manera de actualizarlas fácilmente. Kivy sigue siendo una alternativa de trabajo.

Sin embargo, no he dejado de usar Python. Con la forma en que se está desarrollando la informática móvil, tenía sentido mover esas partes de mis aplicaciones codificadas en Python a la nube. Entonces eso es lo que hice.

Python se puede usar para desarrollar aplicaciones móviles. Puede encontrar uno de los que he desarrollado aquí: https://play.google.com/store/ap

La aplicación anterior se basa en el script para la plantilla de Android, que le permite empaquetar su aplicación Python para el mercado de Android. Aquí está la página que describe cómo publicar su script como APK: http://code.google.com/p/android

Definitivamente deberías probar Kivy (Kivy: Python Framework multiplataforma para NUI). Es gratis y es compatible con iOS y Android. Además, es bastante fácil comenzar y tiene una documentación impresionante.
También es más rápido que las aplicaciones móviles HTML / CSS. Por ejemplo, prueba este juego de aplicaciones de Android en Google Play. Simplemente se siente nativo. Mientras que la contraparte del teléfono está literalmente retrasada mientras interactúa.

La razón principal (creo) que Python no se usa para el desarrollo móvil es por la velocidad. Dado que los teléfonos móviles tienen memoria y capacidad de procesamiento limitadas, necesitan aplicaciones diseñadas en un marco que sea rápido para proporcionar una funcionalidad fluida. Como Java es más rápido que Python (v / s compilado interpretado), se usa en el desarrollo móvil.

Kivy.org es la respuesta más sólida que conozco para el desarrollo móvil en Python. Y aunque se ve bien para algunos usos, está efectivamente estructurado más como un motor de juego que como un motor de aplicación nativo: representa controles 100% personalizados en OpenGL (detrás de escena) en lugar de usar controles nativos, si entiendo la arquitectura.

Algunas aplicaciones usan máscaras completamente personalizadas de todos modos, por lo que esto no es completamente asesino. Pero si desea utilizar controles nativos, otras opciones son más fuertes. NativeScript se basa en JavaScript, y le permite crear una aplicación nativa utilizando controles nativos.

El rendimiento de JavaScript, la última vez que lo revisé, también es mejor que Python. Y la depuración de JavaScript es realmente robusta y bien compatible en comparación con Python. Y TypeScript le brinda seguridad y terminación de tipos, y npm le brinda miles de bibliotecas …

He usado muchos idiomas, incluido Python, y mi dinero está en JavaScript para el desarrollo móvil en este momento. Todavía uso Python para otros dominios. Es mejor elegir el idioma basado en parte en su ecosistema, y ​​eso es débil para Python en dispositivos móviles en este momento.

Siempre puede usar CoffeeScript si le gusta el espacio significativo. 😉

Ciertamente, usar Python en el servidor es una opción válida.

En el dispositivo real solo puedo hablar sobre iOS, donde es obj-c, Lua, y muy recientemente ruby ​​/ macruby, que son las opciones disponibles para el desarrollo nativo.
HTML5, por supuesto, también se puede usar.

Es un lenguaje de interpretación y el rendimiento de la aplicación es lento en comparación con las aplicaciones nativas.

kivy?