Escribir una aplicación para macOS: swift vs coronalabs

En la actualidad coronalabs permite, entre otros,  que a partir de un fuente escrito en LUA, generar app para Android y iOS, código HTML5 para instalado en un servidor WEB y ser ejecutado mediante un navegador sobre cualquier Sistema Operativo y generar un ejecutable para xOS, es decir para un ordenador Mac (Ver especificaciones para el build) . Así pues coronalabs es una alternativa a Swift en el desarrollo de aplicaciones para Mac, sin duda menos optimizadas, pero funcionales.

VS 

Probado con MacOS High Sierra (10.13.6, la versión mínima es 10.11 Capitan) y con coronalabs (3334) con una de nuestras app legancy como es HSK-III se ejecuta sin ningún problema y sin necesidad de firmar la app con certificado digital.

HTML5 ¿Desarrollar una app o una aplicación web?

¿Es necesario que una aplicación se descargue y se ejecute en un dispositivo móvil? … pues depende de las necesidades del usuario y de los requerimientos de la aplicación.

Ventajas de una app frente a una aplicación web:

  • Se descarga solamente una vez y se ejecuta muchas
  • Puede trabajar sin conexión
  • Mayor optimización y rendimiento, sobre todo si se programa en nativo

Ventajas de una aplicación web frente a la app:

  • Un único desarrollo es ejecutable en cualquier navegador
  • No es necesario actualziar versiones en tienda de app y dispositivos.

Una forma sencilla de programar aplicaciones en la web para ser ejecutadas en un navegador, y por consiguiente en cualquier dispositivo fijo o móvil (windows, xOS, iOS, android, etc.) es mediante el lenguaje  HTML5 que es una versión del leguaje de programación HTML (HyperText Markup Language; lenguaje de etiquetas) y un conjunto de tecnologías que enriquecen su ejecución (elementos multimedia, objetos javascript, api con CANVAS, etc) .

HTML5 Logo

La versión actual de HTML es la 5.2 y el estandar lo mantiene W3C que proporciona un validador.

Coronalabs a partir de una fuente escrito en LUA puede generar entre otros objetos o ejecutables:

  • Un fichero .apk para instalar en un dispositivo Android o subir a Google Play
  • Un fichero .ipa para instalar en un dispositivo iOS (iPhone,iPad, etc.) o subir a App Store.
  • Una carpeta de ficheros HTML5 para instalar en un servidor WEB

Una prueba de concepto a partir de una app clásica, YCT-I (Permite prepara el examen del nivel I de chino para niños) , disponible para Android en Google Play y para iOS en itunes / app store  y escrita en LUA para Coronalabs, generamos su HTML5 y copiamos la carpeta directamente con Filezilla en nuestro servidor WEB, puede comprobar el resultado aquí.

Otro escrito sobre este tema native vs hybrid app development

Después del 1, el 2

Hoy Xiaomi ha anunciado desde  Madrid los modelos de teléfono móvil (celular) Mi A2 (Desde 249€) y Mi A2 Lite (Desde 179€) que cuentan con la última versión de Android One

Discutir  a estas alturas sobre si los teléfonos móviles de  Xiaomi son competidores o no de los iPhone de Apple es absurdo, cualquier producto es competidor de otro, pues cuando compramos uno dejamos de comprar el otro; y más cuando Xiaomi ha superado ya a Apple en ventas en España, y existen sospechas sobre la obsolescencia programada de los productos apple y sobre la fiabilidad de los mismos.

¿Crear una app en nativo, hibrido o con un motor?

Con frecuencia me hacen preguntas del tipo  ¿Qué es mejor Windows o xOS? ¿Android o iOS? ¿Java o Swift? … y mi respuesta es siempre “depende”, si eres o aspiras a ser  un profesional tendrás que saber de todo (A mi me resulta indiferente trabajar en entorno windows, xOS o Linux, u otros menos conocidos) y usar tus conocimientos para satisfacer los requerimientos del cliente … si el cliente quiere Android, es poco serio que intentes venderle iOS.

Para un aficionado o recién llegado, que es quien suele preguntar,  mi respuesta es sencilla como eres tu quien se pone los requerimientos programa una app en lo que te resulte más cómodo, y si tienes que aprender un lenguaje de programación huye de los lenguajes nativos  cómo java o swift y aprende algún lenguaje de un motor  en los que  las curvas de aprendizaje y de satisfacción son más rápidas, así que recomiendo  Coronalabs (para aplicaciones de texto  o 2D, que usa el lenguaje  LUA) o Unity (para juegos y 3D), ambas son gratuitos y permite generar objetos para Android e iOS con un mismo fuente y te va sobrar para las aplicaciones que puedas imaginar (Ambas las usamos en Sonotrigger)

Asi, pero ejemplo mediante Coronalabs permite a partir de un fuente escrito en LUA generar una app para Android de Google sin necesidad de descargarse el Android Studio el SDK para Android o de usar un lenguaje de programación como  Java o kotlin, también una aplicación para iOS de Apple sin tener que reprogramar de nuevo la app en  Swift o Objective-C, pero también genera HTML5 que instalado en un servidor web permite la ejecución en un navegador o browser y objetos .dmg para MacOS de Apple y .exe para Windows de Microsoft ... un único programa fuente, ejecutables para cinco entornos distintos.

Debemos saber que hay un mayor número de instalaciones de Android que de iOS (En junio de 2018 77% vs 19%), sin embargo los ingresos de una aplicación es similar en Google Play que en Apple Store (Los usuarios de Apple compran más que los de Google, Aunque hay que restar la cuota anual de unos 100€), por otra parte Apple obliga  aun actualización más rápida que Google (El 76% de los dispositivos IOS tienen la ultima versión frente al 4,6%).

Una última advertencia para desarrollar una app para Android se pueden crear en un entorno Windows o xOS pues precisan de Java de Oracle que está disponible en estos entornos y algunos más, mientras que para una app para  iOS de Apple (iPhone, iPAD, etc.), se precisa de un ordenador con xOS pues requiere de XCODE,