# [AT-62] Analisis Atmosfy
Análisis de que frameworks y utilidades tenemos disponibles para embeber la PWA en dispositivos mobiles (android y/o iOS).
## Tabla comparativa de soluciones
| Nombre | Descripción | Review personal | Coste | Mobile |
| --- | :------|:------|:------:| :------:|
| [PWA2APK](https://appmaker.xyz/pwa-to-apk) (Hibrida online) | Consiste en una plataforma online que nos permite la posibilidad de generar instantaneamente a partir de la url de la PWA tanto APK'S como iOS. Está más orientada a WooCommerce y Shopify. | Muy facil de usar, aunque conlleva menor control sobre el proceso y requiere de un pago mensual. |+79$/mes | iOS/APK ✅
| [NativeScript](https://nativescript.org/) (nativo) | Nativescript es un framework que lleva bastantes años existiendo que igual que React Native, ofrece la posibilidad de desarrollar aplicaciones nativas con Javascript. Desde hace unos años nació la posibilidad de crear apps nativas con NativeScript y Angular. [Más info aqui](https://blog.angular.io/apps-that-work-natively-on-the-web-and-mobile-9b26852495e7?gi=e579b09704f7) | Este acercamiento nos trae las ventajas de las apps nativas, pero con un coste de complejidad añadida al proyecto. | GRATIS | iOS/APK ✅
| [PWABuilder](https://www.pwabuilder.com/) (Hibrida online) | Consiste en una plataforma similar a PWA2APK pero más simple y gratuita. Lo malo es que nos permite solo compilar para Android/Samsung/Windows, nada de iOS. | Muy facil de usar, muy intuitiva y el proceso es muy liviano. Nos permite modificar el manifest de la app, pero poco más. Es gratuita. | GRATIS | iOS⛔ APK✅ SAMSUNG✅ WINDOWS✅
[Cordova](https://cordova.apache.org/) (Hibrido) | Plataforma que renderiza codigo web en un webview dentro de una aplicación nativa. Tiene un CLI que facilita varios procesos y gestión de plataformas. | Desarrollar con Cordova es moderadamente facil y tiene variedad de plugins nativos. Una de las desventajas más grandes que presenta es que Apache no lo soporta más, la comunidad lo mantiene. | GRATIS | APK✅ iOS✅
[Capacitor](https://capacitorjs.com/)(Hibrido) | Muy similar a Cordova, pero actua como un modulo importable en el proyecto y con un CLI muy completo. Su enfoque a diferencia de los demás, es de generar un directorio de Android Studio o Xcode para que nosotros posteriormente lo compilemos con las configuraciones que queramos. | Este proyecto me gusta, es actual, es mantenido por su equipo de desarrolladores y soporta todos los plugins de cordova y otros custom. Lo unico malo es ese paso extra de compilar en xcode/android studio. | GRATIS | APK✅ iOS✅
[Ionic](https://ionicframework.com/) (Framework) | Ionic es un framework de desarrollo de aplicaciones multiplataforma, se pueden desarrollar tanto webapps,pwa's y mobile con webview, aunque su enfoque es en estos ultimos y predomina el concepto de "mobile first". Tiene un CLI muy completo que interactua por debajo con Cordova y Capacitor y facilita mucho el desarrollo. | Ionic es un gran framework y conocido para mi. Tiene muchos componentes predefinidos mobile y permite la compilación directa a APK/iOS. Lo malo es que requiere mayor configuración y es más pesado en cuanto a libreria. | GRATIS | APK✅ iOS✅ |
## Decisión final
Realmente la decisión está entre Ionic y Capacitor, Ionic es un conjunto de utilidades para el desarrollo mobile com para la puesta en producción de este. Mientras que capacitor es más una libreria que nos permite hacer el acoplamiento de la webapp al webview, este se comporta como un modulo importable y cada plugin se importa bajo demanda.
Por ello Capacitor se plantea como una solución eficiente y ligera. Aparte la necesidad de tener que coger el directorio resultante de capacitor y compilarlo en Android Studio o Xcode puede parecer un incoveniente, realmente es una gran ventaja ya que nos permitirá modificar la configuración a nuestro gusto y dependiendo del publico objetivo de una forma más completa que con las configuraciones JSON de IONIC/Cordova.
Además la interaccion con la API de Capacitor es facil y bien documentada, mientras que con Ionic a menudo está desactualizada o el plugin en si caido en el olvido.
Ionic por su parte tiene un CLI interesante que nos facila mucho la vida creando una experencia de desarrollo más facil, tanto para compilar para mobile, como visualizar la apk en un emulador instalado, como el emulador de android studio o Xcode directamente sin nosotros tener que hacerlo manualmente.
Aunque Ionic es una opción más que interesante por la comodidad que ofrece, este nos trae un coste de mantenimiento de configuración extra, un tamaño de libreria superior y una configuración nativa limitada. Por ello y demás razones **confio en la que optima decisión de transformar la PWA en mobile pasará por usar Capacitor.**
###### Aratech
###### Tihomir Stoychev Stoychev