"El diseño es el embajador silencioso de tu marca"
- Paul Brand

¿Qué es Ionic?

Mucha gente hoy se pregunta ¿Qué es Ionic?, uno de los frameworks más populares de hoy en día.

En primer lugar hay que aclarar el proposito que tiene, que no es otro que el de crear aplicaciones híbridas. Si nunca has escuchado este término puede asustar, pero es muy sencillo, veamos las diferencias.

¿Qué son las aplicaciones nativas?

Una aplicación nativa es una aplicación construida específicamente para una plataforma en concreto, esto nos ata a usar el lenguaje/lenguajes y en muchos casos un entorno de desarrollo concreto.

Incluso dependiendo de la plataforma podemos vernos obligados a desarrollar bajo el sistema operativo que nos indiquen.

Esto tiene ciertos inconvenientes, por ejemplo pensemos en que queremos crear una aplicación que funcione tanto bajo dispositivos que funcionen con android como con ios.

Para el sistema operativo de apple vamos a necesitar conocer o bien Objective C o bien Swift, de la misma manera vamos a necesitar para compilar usar el Xcode que solo esta disponible para MacOs, un sistema operativo que te obliga a tener un ordenador de Apple (o virtualizarlo, aunque a mi las máquinas virtuales de MacOs siempre me han funcionado bastante mal).

Luego esta android de Google, que es menos endogámico que apple obviamente pero que también nos va a obligar a controlar de otros lenguajes como son Java o Kotlin, y a usar otro IDE distinto, el famoso Android Studio, en este caso si que podemos distintos sistemas operativos y cualquier ordenador sin necesidad de virtualizar nada.

Obviamente las aplicaciones nativas son más rápidas porque durante la compilación de código el resultado es código máquina, pero en este caso si la aplicación es sencilla (como suele ser la mayoría) con el hardware actual no vas a notar demasiado la diferencia (pero la hay).

También es cierto que una aplicación nativa te da un control total de las características del terminal, puedes hacer de todo, lo que debes determinar es si tu aplicación necesita semejante nivel de control o cubres su funcionalidad con una acceso más básico al hardware (también aquí debo decir por mi experiencia que la mayoría van sobradas con las características básicas, si es que las usan).

En definitiva que son rápidas, eficientes y acceden a todas las funcionalidades pero a costa de ser específicas de una plataforma.

Por lo que si necesitamos que si queremos una aplicación multiplataforma implica tener que aprender distintos lenguajes y plataformas, y de llevar varios proyectos paralelos en desarrollo.

¿Qué son las aplicaciones híbridas?

Por otra parte una aplicación híbrida es una aplicación que multiplataforma, es decir que con ella podríamos crear tanto aplicaciones para android, ios y otras plataformas minoritarias.

Esto es maravilloso porque:

  1. No necesitamos aprender distintos lenguajes de programación
  2. Ni necesitamos tener que controlar distintos IDE´s,
  3. Ni tampoco necesitamos desarrollar bajo distintos sistemas operativos.

Hay que aclarar que para hacer el empaquetado si que necesitamos tener los SDK´s en la máquina donde este el proyecto, de manera que en este punto, por ejemplo, aunque tengas una aplicación híbrida para hacer una app de ios, lo vas a tener que hacer desde MacOS a la fuerza.

Decir que las aplicaciones híbridas no tienen futuro es como decir que Java ha sido un fracaso, o lo que es lo mismo, una tontería.

Poniendo Java como ejemplo, también las aplicaciones construidas con este lenguaje eran más lentas que las nativas, necesitaba de una máquina virtual instalada en cliente para funcionar.

Sin embargo el concepto de que pudieras construir un programa multiplataforma estable, bajo un lenguaje compilado y fuertemente tipado fue un éxito y aun tres décadas después Java sigue siendo uno de los lenguajes más usados y respetados.

Y aunque sean más lentas hoy en día con las máquinas que tenemos se nota mas bien poco.

¿Que es Ionic?

Despues de toda esta parrafada, repetimos la idea, Ionic es un framework para crear aplicaciones híbridas.

A día de hoy estamos en la versión 3, y Ionic está basado en Javscript, o lo que es lo mismo, para hacer una aplicación híbrida con Ionic solo tienes que controlar de HTML, CSS y Javascript.

Si eres un desarrollador web aunque no te lo hayan dicho también eres un desarrollador mobile, aunque eso sí, usando estas tecnologías.

Básicamente lo que estás haciendo es:

  • Crear una aplicación web enfocada a dispositivos móviles, a sus resoluciones y al modo de interactuar con ellos.
  • Estás usando librerías de Javascript para interactuar con el harware, como por ejemplo la cámara o el acelerómetro.
  • Por ultimo estas empaquetando todo como si se tratase de una aplicación nativa.

Y cuando las usas lo que estas consumiendo realmente es una aplicación nativa que inicializa una página web con las características mencionadas.

El encargado de que la aplicación web pueda tener características de las nativas es Apache Cordova, este es el proyecto que permite a Ionic usar las características nativas del dispositivo usando Javascript.

Sin Apache Cordova nada de esto sería posible, es el corazón de Ionic, si quieres mas información de este proyecto puedes visitar su pagina.

Para construir la parte web Ionic usa Angular, si estás usando la última versión de Ionic (v3) verás que el proyecto está construido completamente con Angular (v5).

De manera que si ya eres un experto en Angular, aprender Ionic te resultará tremendamente sencillo.

Antes hicimos la comparativa de las apps multiplataforma con Java, mencionábamos que era compilado y fuertemente tipado, a mayores existen anotaciones, interfaces…

Me parece importante destacar que typescript también tiene estas características, aunque no es compilado sino que es transpilado, durante este proceso también se pueden depurar posibles errores lo que nos permite corregir que al menos el resultante sea correcto.

Typescript también es un lenguaje tipado, no es obligatorio como en Java, pero el concepto es que se use así, a mayores también tiene anotaciones e interfaces.

Por estas razones es también un lenguaje que va muy bien para proyectos colaborativos y como Angular 5 esta hecho en Typescript nuestro framework es muy completo.

Además de todo esto Ionic tiene un cli que nos permite usar una serie de comandos para automatizar muchas tareas.

¿Cómo crear un proyecto Ionic?

Ionic es un proyecto javascript que funciona con Node, para crear proyectos simplemente necesitamos la linea de comandos.

Pero para eso necesitamos tenerlo disponible globalmente en nuestro equipo, tanto Ionic como el proyecto que usa para hacer la magia de interactuar con el dispositivo que si recordáis es Apache Cordova.

Por ello lo primero que hay que hacer es instalarlos:

npm install -g ionic cordova

Una vez instalados tienes el cli de ionic disponible en cualquier sitio, lo unico que te queda por hacer es ir a la carpeta donde quieras crear el proyecto y usarlo de esta manera.

ionic start nombre_del_proyecto tipo_de_proyecto

El único parámetro a tener en cuenta en el comando que acabamos de poner es el de tipo_de_proyecto, estas son las posibilidades:

  1. tabs – Proyecto con navegación mediante pestañas.
  2. blank – Proyecto en blanco
  3. sidemenu – Proyecto con navegación mediante menú lateral colapsable.
  4. super – Proyecto que integra contenido usando las prácticas recomendadas.
  5. conference – Proyecto interactivo con características nativas.
  6. tutorial – Proyecto que integra el contenido de la documentación oficial.
  7. aws – Proyecto simple de Amazon web service.

Con esto el proyecto está creado, os dejo el enlace a la página de ionic para el que quiera profundizar, aunque el propósito es escribir nuevas entradas explicando como trabajar con él.

The following two tabs change content below.
Especialista en diseño web responsive, programador html5, css3, jquery, php y java.

Latest posts by Óscar Lijó (see all)