Sesión didáctica No.2.

Naturaleza de las Aplicaciones Moviles

Para crear aplicaciones moviles es importante conocer su naturaleza y los diferentes tipos de aplicaciones para tomar la desición mas acertada al comenzar con esta tarea.

¿Qué es una app?

Una app es una aplicación informática diseñada para ejecutarse en smartphones, tablets y diferentes dispositivos móviles. Lo enriquecedor de tener una aplicación es que facilita las gestiones y actividades que los usuarios realizan de forma periódica.

Tipos de app

Actualmente existen cuatro tipos de aplicaciones.

1. Las aplicaciones nativas

Una aplicación nativa se desarrolla específicamente para un sistema operativo en particular. Cada una de las plataformas: Android, iOS o Windows Phone, tienen un sistema operativo diferente y un entorno de desarrollo propio; por lo que si quieres que tu app esté disponible en todas las plataformas, se deberá crear varias aplicaciones usando las herramientas oficiales del sistema operativo seleccionado.

Los lenguajes utilizados para desarrollo de aplicaciones Windows Phone, son C# y Visual Basic, en conjunto con la plataforma Silverlight, que tomó a XAML como base para crear una interfaz gráfica al mejor estilo Flex/Flash con muy poco esfuerzo. 

En el caso de Android, el lenguaje es Java.

IOS existen actualmente dos lenguajes de programación para desarrollar aplicaciones de forma nativa Objective C y Swift

Las aplicaciones nativas están capacitadas para sacar el máximo provecho de las funcionalidades del dispositivo. Pueden usar la cámara, el GPS, el acelerómetro, la lista de contactos, etc. Además, las aplicaciones nativas pueden usar el sistema de notificaciones y funcionar sin conexión a internet.

Una característica importante de este tipo de aplicaciones es que deben instalarse, en su mayoría, a través de la tienda oficial de aplicaciones de cada sistema operativo y al descargarse ocupan un espacio en el dispositivo.

2. Las aplicaciones web o web apps

Las web apps son un tipo de aplicaciones que no requieren instalarse en el dispositivo ni ocupan espacio en él. Se puede acceder a ellas a través de un navegador web (Chrome, Mozilla Firefox, Internet Explorer, Microsoft Edge, etc.) independientemente del sistema operativo que se utilice. Esta optimización es posible gracias a tecnologías como HTML5, CSS3 y Javascript.

Muchas empresas no solo cuentan con aplicaciones nativas, sino también con web apps. Probablemente, has hecho uso de ellas y no lo sabías; entre las más conocidas están Whatsapp, Facebook, Spotify, Pixlr, Trello, Netflix, Microsoft Office Online, etc.

3. Las aplicaciones híbridas:

Las aplicaciones híbridas combinan características de las aplicaciones nativas y de las aplicaciones web. Lo común que tienen con las aplicaciones nativas es que se adquieren a través de una tienda de aplicaciones y ocupan un espacio en el dispositivo.

Estas aplicaciones no se desarrollan específicamente para un sistema operativo en particular, sino que reutilizan componentes de código para los diferentes sistemas operativos. Esto permite reducir un poco los costos de desarrollo.

Una característica resaltante es que las aplicaciones híbridas se ejecutan a través del navegador web del dispositivo móvil (aunque no lo notemos) lo que limita la velocidad y las funcionalidades que puedan tener.


4. apps progresivas

Las aplicaciones web progresivas o Progressive web apps son una nueva generación de aplicaciones que está revolucionando el panorama actual. ¿Y cómo lo están consiguiendo? Pues incrementando y avanzando en sus funcionalidades teniendo en cuenta el dispositivo móvil en el que van a ejecutarse para extraer todo su potencial.

Estas apps progresivas aportan al usuario las ventajas de las aplicaciones nativas, pero se desarrollan en base a tecnologías web ampliamente conocidas por los programadores como HTML, CSS o JavaScript. Sería algo así como páginas web muy similares en su funcionamiento a las aplicaciones nativas, pero que no requieren de lenguajes de programación específicos para cada sistema operativo.

Las aplicaciones progresivas, que reciben este nombre por ser capaces de adaptarse a cada dispositivo (de manera progresiva), una aplicación web progresiva es un sitio web que se siente como una aplicación móvil nativa, pero no es una aplicación móvil. El PWA tiene como objetivo brindar una experiencia nativa a los usuarios de todas las plataformas y todos los dispositivos. Al mismo tiempo, permite a los usuarios omitir la navegación e instalación de la tienda de aplicaciones. Además, no requieren que el usuario disponga de una buena conexión a internet, ya que podrá acceder a ellas sin conexión o con mala conexión, y beneficiarse de todas sus funcionalidades.

ventajas:

  • No necesita ir a una tienda de aplicaciones para descargar PWA. Cuando visite la tienda por primera vez (en su navegador móvil), aparecerá una ventana emergente que le pedirá que agregue el PWA en su pantalla de inicio. Por lo tanto, con solo un clic tiene PWA instalado rápidamente en su teléfono.
  • Es fácil actualizar PWA.
  • Puede ser buscado por los motores de búsqueda como las páginas habituales.
  • Se necesita menos tiempo, dinero y esfuerzo para construir una PWA. (Puede descargar PWA gratis aquí y tomar más minutos para instalarlo)


IOS vs ANDOID: el origen de las Apps hibridas y web progresivas

Entendido lo que es una App nativa desarrollada por iOS, es decir el sistema operativo nativo para los dispositivos de Apple y una App nativa desarrollada para Android el sistema operativo creado por Google, que utilizan el resto de dispositivos del mercado independientemente del fabricante, a excepción de otros sistemas más residuales como Windows Phone, desarrollado por Microsoft y actualmente sólo instalado de serie en dispositivos Nokia y Microsoft.

Entender las diferencias básicas entre estas dos plataformas mobile, nos ayudará a comprender el porque de la evolución natural y lógica de las Apps nativas hacia las Apps híbridas y su exponente más avanzado que es React Native, framework de programación 100% móvil, liberado en 2015 por Facebook que es quien lo creó y desarrolló para aplicar a su propia App y también a Instagram. Esta tecnología representa un ahorro sustancial en el tiempo de desarrollo y costes.

¿Cuáles son las principales características, pros y contras de las Apps nativas para iOS y Android?

Las Apps nativas desarrolladas para iOS:

  • Lenguaje de programación orientado a objetos: Objetive-C
  • Se trabaja con editores de código que incluyen todas las necesidades para iOS: Xcode
  • Una vez el desarrollador finaliza su trabajo la compila en un archivo: Build
  • El desarrollador decide publicar en la App Store: Build
  • Una vez la sube decide en que estado: Pruebas (Beta Testing) o Terminada (Release)
  • Su trabajo tiene que ser validado por Apple: iTunes Connect
  • Criterios de validación de Apple: Patrones de diseño, usabilidad, contenido
  • Una vez validada por Apple ya se publica: Beta (Test Flight) o App Store (Release)

Las Apps nativas desarrolladas para Android:

  • Lenguaje de programación orientado a objetos: Java
  • Se trabaja con editores de código que incluyen todas las necesidades para Android: Android Studio
  • Una vez el desarrollador finaliza su trabajo la compila en un archivo: Apk
  • El desarrollador decide publicar la App en Google Play Console: Pruebas (Alfa / Beta) Terminada (Release)
  • Su trabajo debe ser validado por: Google Play Console
  • Criterios de validación de Google: Contenido
  • Una vez validada por Google ya se publica: Play Store

Pros de las Apps nativas iOS / Android:

  • Máximo rendimiento del dispositivo sin restricciones (cámara, altímetro, GPS..)
  • Se incrementa la experiencia del usuario y mejor respuesta de las acciones
  • Disponibilidad en las stores App Store / Play Store
  • Notificaciones push
  • Constantes actualizaciones disponibles

Contras de las Apps nativas iOS / Android:

  • Conocer dos lenguajes de programación diferentes: Objetive-C / Java
  • Curva de aprendizaje lenta en constante reciclaje de los conocimientos
  • Requiere dos perfiles diferentes iOS / Android
  • Tiempo de desarrollo más elevado
  • Incrementa el TTM (Time to Market) y la producción de versiones MVP (Minimum Viable Product)
  • Diferentes funcionalidades para cada plataforma

¿Y cuáles son las principales características de las Apps híbridas?

Principales características de las Apps híbridas:

  • Tecnología que permite convertir código JavaScript en código nativo
  • Desarrolladas con lenguajes de programacio web: HTML5 / CSS / JavaScript
  • Hacen funcionar el mismo código independientemente de la plataforma iOS / Android
  • Aceptan la inyección o integración de código nativo iOS / Android
  • Pueden acceder a los recursos de hardware de los dispositivos móviles: cámara, GPS, altímetro...

Las Apps híbridas están construidas sobre frameworks o estructuras diseñadas para la implementación y desarrollo de una aplicación, con la finalidad de gestionar por separado datos, acciones, y cómo se muestra finalmente. Estos frameworks son los encargados de convertir lenguajes web HTML5 / CSS / JavaScript en código nativo iOS / Android.

¿Y cuáles son los frameworks más populares para desarrollar Apps híbridas?

Apache Cordova (2011)
Framework 100% mobile
Utiliza lenguajes web y puede encapsular HTML5 / CSS / JavaScript en función de la palataforma iOS / Android
Puede utilizar todo el hardware del dispositivo (cámara, GPS, altímetro...)

Ionic (2013)
Construido sobre Angular propiedad de Google
Permite hacer test de desarrollo de la App en Chrome
Gracias a PhoneGap y Cordova puede acceder a todo el hardware del dispositivo (cámara, GPS, altímetro...)
Apps de Diesel y McDonald's están desarrolladas con Ionic

React Native (2015)
Construido sobre React y directamente sobre JavaScript
Creado por Facebook y liberado como Open Source con política de uso, ofrece componentes diferentes y adaptados para iOS / Android
Permite hacer test de desarrollo desde un dispositivo móvil y un emulador
Apps de Facebook e Instagram están desarrolladas con React Native

Video de repaso

Actividad

Una vez comprendido el tema sobre las naturaleza de las Aplicaciones Moviles, crea un mapa mental donde representes de manera gráfica éste conocimiento, reuniendo las ideas principales como definiciones o conceptos, caracteristicas, ventajas y desventajas, lenguajes y programas o aplicaciones para desarrollar. Iportante ilustrar con con imagenes. 

Puedes utilizar herramientas como GoCongr, Canva, Creately o cualquier otra aplicación que conozcas y te permita descargar o compartit el diagrama.

Sube la actividad a la plataforma de Classroom.

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar