Ya sea que estés pensando en contratar los servicios de una empresa de software o hacerla tú mismo es importante elegir bien el tipo de aplicacion que vas a hacer.

Método

Para poder decidir esto vamos a analizar 3 cosas principalmente:

  1. Qué son
  2. Qué puedo/no puedo hacer
  3. Como hacerlas/desrrollarlas

1. Qué son

PWA

Primero, Las Progressive Web Apps (PWA) son aplicaciones que corren en tu explorador web que utilizan ciertos recursos del ambiente donde se ejecutan para parecerse más a aplicaciones nativas. Estás se desarrollan en HTML + CSS + JavaScript

Las PWA son aplicaciones web que se aprovechan de los recursos del browser

Aunque tengan un nicho de mercado interesante, éstas todavia estan en una etapa muy precoz (4 años). Cabe destacar además que las PWA ya llevan un buen tiempo en el mercado y su compatiblidad ha ido mejorando cada vez más.

Aplicaciones Nativas

Las aplicaciones nativas son aquellas que se desarrollan utilizando las herramientas brindadas por el dueño del sistema operativo. En iOS se usa XCode y Swift/Objective-C y en Android se usa Android Studio y Java/Kotlin.

LOCUS is a smart city and IOT mobile application. The application provides a direct connection between the citizens and the information system of the city in a visualized form.

Full project here: https://bit.ly/2GUFZYJ
Photo by Balázs Kétyi / Unsplash

2. Qué Puedo Hacer

PWA

Las Progressive Web Apps, son principalmente aplicaciones web que aprovechan de los recursos del explorador (Safari, Chrome) y del Sistema  Operativo (iOS/Android) de donde se acceden para ofrecer una mejor experiencia.

Aplicaciones Nativas

Estas aplicaciones tienen acceso a todas las características que el Sistema Operativo decida ofrecer.

Características PWA vs las Apps Nativas (iOS + Android):

Característica Apps Nativas Progressive Web Apps
Cámaras (Frontal y posterior) y mícrofonos Si Si
Notificaciones Push Si Solo si está activa en pantalla (iOS)
Appstore Si No
Guardar Datos Si Max 50 MB (iOS)
Uso Offline Si Si 1
Descargar para Usar Si No
Bluetooth Si solo Android
NFC Si No 2
Acceso a Contactos, Calendario, Alarmas Si No
SMS y Llamadas Si No
AR y VR Si solo Android
Compartir Con Si solo Android
Instalar desde web No solo Android
Geolocalización Si Solo Android
Vibraciones Si Solo Android
Accelerómetros y Giroscópio Si Solo Android
Pantalla Completa Si Solo Android
Esquemas de URL Si No
Touch ID/ Sensor de Huellas Si Solo Android
Porcentaje de la Batería Si solo Android
  1. Siempre y cuando se use continuamente, si no el app borrara el contenido offline y tendra que volver a ser descargado ( iOS)
  2. Android ha implementado esto en su seccion de experimentos

Ventajas de las PWA

  • Facilidad de puesta en marcha: los usuarios no tienen que entrar al AppStore/Google Play para bajarse el app, lo cual significa que es más facil para el usuario utlizar tu servicio.
  • Una sola sirve tanto para iOS como para Android, ya que es una aplicación web en esteroides, esta funciona para ambos sistemas operativos (e incluso funciona para escritorio y tablets)
  • No se necesitan licencias de App Store ni Play Store, ya que viven en la nube estos no son aprobadas por Apple ni Google asi que se puede lanzar el app sin el costo adicional de licencias y de restricciones de las tiendas de aplicaciones.
  • Se pueden encontrar por busquedas en Google ya que funcionan como páginas web y el SEO va a ayudar a que ésta sea encontrada.
  • Son más rapidas al cargar que las aplicaciones web ya que usan mejor los recursos disponibles (almacenamiento), y siempre es bueno considerando que la mayoría de usuarios abandona algun sitio web si demora más de 3 segundos en cargar. Por ejemplo el e-commerce Konga a cortado el uso de datos por 92% a su primera carga por migrar a PWA, y Nikkei ha visto un cambio de 2.3x en el tráfico orgánico de su plataforma y un cambio de 58% más conversiones.

Desventajas de las PWA

  • Gastan mas batería ya que utilizan el explorador además de la aplicacion y no son tan eficientes.
  • Son un poco más lentas que las apps nativas, no solo desde el punto de la conectividad de internet, pero por el simple hecho que corren dentro de un explorador.
  • No todos los exploradores soportan todas las funcionalidades que puedes necesitar para tu PWA.

Cosas que no puedes hacer (aún)

iOS

  • Máximo 50MB de info
  • Si no se usa en varias semanas se borra el conteindo
  • No puede usar Bluetooth, serial, Beacons, Touch ID, Face ID, ARKit, altimetro, info de la batería
  • No puede ejecutar servicios en 2do plano
  • No puede acceder a ninguna info privada
  • No tiene IAP (compras dentro del app)
  • No tienen Notificaciones

Android

  • En Android puedes almacenar más de 50mb de info
  • Normalmente Android no borra los files que no se usan, pero si no tiene espacio los va a borrar, en caso se utilize mucho o se instale en el dispositivo se puede usar el almacenamiento persistente.
  • Acceso a Bluetooth para dispositivos BLE (Bluetooth de baja energía)
  • Compartir con nativo de Android
  • Reconocimiento de Voz
  • Notifiaciones Push y Actualizacion en 2do Plano (cuando no se usa)
  • Banner web que te invite a instalar la app
  • Se puede personalizar un poco el inicio de la aplicacion y las orientaciones que se queiren.
Photo by Christian Wiediger / Unsplash

Ventajas de las Apps Nativas

Android + iOS:

  • Mejora la confianza en tu marca por la presencia de un app en el App Store (y Google Play).
  • Paquetes de íconos independientes
  • Widgets
  • Símbolo de notifiacion pendiente (el circulo rojo en la esquina del ícono)
  • Acceso a todos los sensores y features de cada plataforma
  • Más rapidas que las PWA
  • Interacción con otras apps
  • Notifiaciones Push
  • Pagos Móviles ( Apple Pay, Google Wallet)
  • Acceso a GeoFencing (Geo localización dentro de un lugar)
  • Son más Seguras (mucho más dificil de ser hackeadas ya que tienen que pasar por la revision de Apple / Google)
  • Atajos a partes de tu app desde el ícono

Solo Android:

  • Iconos que se adaptan mejor a Android
  • Categorias de Notificaciones
  • "Slice", que son pedazos de informacion que puedes incluir cuando el usuario usa el buscador de Google.

y finalmente

3. Como Desarrolladores

Photo by Chris Ried / Unsplash

PWA

Están basadas en HTML + CSS + JavaScript, son fáciles de empezar a hacer ya que son básicamente apliaciones web mejoradas. La puedes hacer desde cualquier editor de Texto y Sistema Operativo y una vez publicada va ser accesible para todos los Sistemas Operativos (incluso de escritorio)

Aplicaciones Nativas

Son más complejas, necesitas un IDE para realizarlas. Para Android debes de Usar Android Studio y el lenguaje Java o Kotlin. En cambio, para iOS tendrás que usar XCode, el lenguaje Swift u Objective-C y sobretodo una Mac.


Conclusión

Resumiendo, si  1) no necesitas ninguna de las características que aún no soportan las PWA, y 2) tu mercado objetivo usa principalmente Android (la gran mayoría lo hace), opta por una PWA.

Por ahora, en mi opinion, si tienes los recursos es mejor construir aplicaciones nativas tanto para iOS + Android y tener un sitio Web o una landing para dirijirlos a descargar el app. O en su defecto, una nativa en iOS y una PWA para los que usen Android y una web.

Ojalá que en poco tiempo tenga que volver a este artículo y lo actualice para decir lo contrario.

N.B. De todos modos siempre es bueno revisar whatwebcando.today para saber en qué estado se encuentran las PWA, (y si son compatibles con el explorador en el que estás ingresando, o van a ingresar tus usuarios) ya  que éstas sin lugar a dudas van a formar parte de la siguiente ola de aplicaciones.

Gracias por leer este artículo, si aún tienes alguna duda sobre este tema (u otro) no dudes en escribirme  a franco@riverarivas.com trataré de contestar lo mas rápido posible.


Fuentes (y lecturas recomendadas):

Prathik S Shetty, Progressive Web Apps(PWA) vs Native Apps, Sep 26, 2018 Bohdan, Jelvix. PWA vs Native App: Benefits for Users and Developers Dan Dascalescu, Why “Progressive Web Apps vs. native” is the wrong question to ask. September 2018 Magestore PWA vs Native App and How to Choose Between Them, Sep 26, 2018 JudahGabriel Himango I build a Progressive Web App and published it in 3 app stores. Here's what I learned. Abr 25, 2018.