miércoles, 16 de julio de 2014

Vídeo llamadas Versión Móvil

Las nuevas tecnologías web han permitido el desarrollo de aplicaciones que antes requerían de software adicional (plugins) para su creación.

He tenido la fortuna de hacer uso de estás nuevas tecnologías, como WebSockets o WebRTC, ésta última representa una gran oportunidad para crear aplicaciones que ofrezcan un sistema de comunicación en tiempo real, enviado vídeo, audio y datos punto a punto.

Otro campo importante es la creación de aplicaciones para dispositivos móviles, destacándose tres categorías para lograrlo como son:

appsillustrated_nativewebhybrid.jpg



  1. Aplicaciones Nativas: Se construyen para una plataforma específica y con un lenguaje específico (por ejemplo, xCode / Objective-C ó Swift para iOS, Eclipse / Java para Android, Visual Studio / C # para Windows Phone).
  2. Aplicaciones Web (Web App): Es una versión de la web optimizada para su perfecta visualización en dispositivos móviles utilizando HTML5, CSS3 y Javascript.
  3. Aplicaciones Híbridas: Al igual que las aplicaciones nativas, se ejecutan en el dispositivo, están escritas con tecnologías web (HTML5, CSS3 y JavaScript), éstas aplicaciones son ejecutadas en un contenedor nativo denominado WebView. Por ser una aplicación que se ejecuta en el dispositivo puede tener acceso a APIS nativas del mismo como el Acelerómetro, notificaciones, almacenamiento local, funcionamiento offline, entre otras opciones.
native-v-hybrid.png

Anteriormente ya se ha realizado una aplicación móvil haciendo uso del tipo de aplicaciones Web o web APP, entregando opciones como:

  • Vista de contenidos.
  • Correo electrónico.
  • Calendario.
  • Vista de calificaciones.
  • Participantes del curso.
  • Y el sistema de Chat.
Éste último hace uso de WebSockets, en combinación de Node.js/Socket.io para su funcionamiento, a este sistema se le ha adicionado una nueva opción la cual es vídeo llamadas.

Con este sistema los usuarios de la versión móvil tiene la capacidad de establecer una vídeo llamada con los usuarios de la versión de escritorio y viceversa..





Para hacer esto posible se hace uso de WebRTC, tecnología que está presente en el mundo móvil de Android en Navegadores como Chrome y firefox.

Para el funcionamiento del sistema primero se establece si el usuario móvil tiene las capacidades para realizar el proceso, en este caso tan sólo en Android es posible realizarlo, igualmente en el escritorio los navegadores Chrome, Firefox y Opera permiten WebRTC, si se cumplen estas condiciones los usuarios podrán entablar su vídeo llamada:

  • De un equipo de escritorio a otro equipo.
  • De un equipo de escritorio a un móvil.
  • De un móvil a un equipo de escritorio
  • De un móvil a otro.






Próximas versiones.

Hoy en día las nuevas tecnologías web mejoran a pasos "agigantados" y en los dispositivos móviles igualmente, tecnologías como ServiceWorker, traen nuevas opciones para desarrollar y dotar a aplicaciones web (Web Apps) a la par de aplicaciones nativas.

Esta y otras tecnologías mejoran de forma considerable, pero aún dependen del navegador, un enfoque para una futura versión es la de hacer uso del tipo de aplicaciones Híbridas, que permiten hacer uso de lo mejor de los dos mundos, Phonegap, Xamarin, entre otros aprovechan está ventaja, dando la posibilidad de desarrollar en un sólo lenguaje y desplegar para diferentes dispositivos.

Por el momento tecnologías como WebRTC no están disponibles en todos los WebViews de Android (Sabemos que en iOS la inclusión de estás tecnologías aún están en veremos), pero en las actuales versiones de Android como Kitkat o "L" está disponible.


Esto abre una posibilidad de creación de sistemas híbridos que aprovechan aún más las capacidades nativas que ofrece el dispositivo.