jueves, 8 de septiembre de 2016

Desarrollo de Apps híbridas con Ionic Framework

@uocuniversidad @ionicframework

Como os comenté a principios de año, estoy estudiando un máster universitario online en la Universitat Oberta de Catalunya (UOC).
Durante el máster he aprendido cómo realizar aplicaciones nativas para los sistemas operativos iOS y Android. Sin embargo, la asignatura que por ahora más me ha llamado la atención es una que se dedica al desarrollo de aplicaciones que basan su lógica en la capa cliente, con código fuente escrito en Javascript. En esta asignatura se ha estudiado en profundidad el framework de desarrollo AngularJS (ya tenía ganas de hincarle el diente hace tiempo), que me ha parecido increíble, aumenta la productividad de los programadores de forma brutal, y la curva de aprendizaje no es demasiado abrupta. También he aprendido bastante sobre el uso de herramientas para el desarrollo Javascript como gulp (para automatizar los flujos de trabajo), o el entorno de desarrollo WebStorm de la gente de JetBrains, o BrowserSync.
Encantado con la asignatura y a punto de finalizarla (y pensando que ya había exprimido al máximo su contenido), la última práctica se basó en el uso de Ionic Framework, esto sí que fue un descubrimiento

Qué es Ionic Framework

Ionic es un framework de desarrollo de aplicaciones híbridas (ver más sobre tipos de apps) basadas en tecnología web, de forma que se pueden utilizar en distintos sistemas operativos como iOS, Android o incluso Windows sin necesidad de reprogramarlas.
Ionic se basa en tecnologías web como HTML5, CSS3, Javascript, Sass y AngularJS. Para el acceso a las funcionalidades nativas del dispositivo, Ionic utiliza Apache Cordova o Phonegap.
Me ha parecido un framework muy intuitivo y fácil de usar (en gran parte gracias a AngularJS), además de contar con una librería de componentes visuales con aspecto muy cuidado y profesional, tal como mencionan en su web:

"Clean, simple, and functional. Ionic has been designed to work and display beautifully on all current mobile devices and platforms. With ready-made mobile components, typography, and a gorgeous (yet extensible) base theme that adapts to each platform, you'll be building in style."

En realidad, más que un framework de desarrollo al uso, Ionic se define como un ecosistema, cuenta con algunas características muy interesantes:

  • Ionic Market: Una tienda de componentes y plantillas de partida (templates) que me ha ahorrado muchas horas de trabajo. Tiene bastantes componentes de buena calidad, si vas a desarrollar algo desde cero primero echa un vistazo al market por si alguien ya ha hecho algo similar.
  • Ionic Creator: Se trata de una herramietna online de diseño visual de pantallas. La he utilizado bastante, y me ha parecido muy potente (te ahorra mucho tiempo de búsqueda en el API de los componentes visuales). 
  • Ionic View App: Esta herramienta me ha encantado. Se trata de una App disponible en los markets de los distintos sistemas operativos, que te permite visualizar tus proyectos sin necesidad de haberlos publicado. Todo un lujo para probar tus aplicaciones sin el engorro de pasar por la burocracia de la publicación o el lento despliegue nativo.

Ionic se integra perfectamente con Firebase como backend (mi alternativa preferida a Parse, que como sabéis cerró), por lo que he decidido que voy a desarrollar mi trabajo de final de máster con estas tecnologías para profundizar más en su uso, porque como os comento veo mucho futuro en ellas... ya os iré contando.