Ionic: historia de uno de los principales frameworks visuales

Artículo

Ionic: historia de uno de los principales frameworks visuales

Ionic ha sido, desde su publicación en 2013, el gran abanderado del desarrollo hibrido, construido sobre dos pilares solidos: framework web y wrapeo nativo. Ahora publicará su versión 4 con un cambio drástico.

Ionic ha sido, desde su publicación en 2013, el gran abanderado del desarrollo hibrido, construido sobre dos pilares solidos: framework web y wrapeo nativo. En 2018 publicará su versión 4 con un cambio drástico, pero para conocer hacia dónde se dirige, conviene mirar primero al pasado. 

 

Historia de Ionic

Ionic 1: los comienzos

En 2013 se publica la primera versión de Ionic, construida sobre AngularJS y Cordova. Al estar construido sobre AngularJS hereda las virtudes y defectos de este framework. Por otro lado, gracias a Cordova disponía del wrapeo nativo y su multitud de plugins para proveer de ciertas funcionalidades nativas.

Ionic es una revolución en su momento, permitiendo de forma fácil lo que el mercado buscaba: una manera sencilla de crear aplicaciones hibridas.

 

Ionic 2: la gran actualización

En 2016 el equipo de Angular actualiza por completo su framework, siendo tan grande el cambio que es considerado un nuevo framework en lugar de una actualización, así nace Angular. De este modo, Ionic se ve obligado a actualizarse para utilizar el nuevo framework. Debido a los cambios tan drásticos en el framework base, la actualización supone un gran esfuerzo para el equipo de Ionic.

De la mano de Angular llega el uso de Typescript y la modularizacíon, esto permite a Ionic separar su framework en partes: core, angular, native, etc.

 

Ionic 3: la pausa

En lugar de repetir el caso de AngularJS, Angular decide adoptar semver y un ciclo de releases major de seis meses y LTS bianual. Esto permite tener un framework en constante evolución, con un periodo de seis meses entre breaking changes, la primera versión publicada con este modelo fue Angular 4 saltándose la tercera para estandarizar el versionado interno de sus partes.

Ionic libera así su versión 3 sobre esta versión LTS de Angular, y decide que sus actualizaciones se limitaran a la versión LTS de Angular.

En su versión 3 Ionic se centra en mejorar su propio framework y continuar con su integración con Angular

  • Ionic Cli
    Mejoras considerables en el cli de Ionic, para permitir de manera sencilla configurar, desarrollar y compilar los proyectos y abstraer al desarrollador de los comandos internos: angular-cli, Webpack o Cordova cli

  • Ionic Native
    En la parte nativa, ofreciendo clases propias que recubren los plugins de Cordova para trabajar de manera más sencilla con ellos.

  • Mejor integración Angular

- Integración con el Routing de Angular

- Definición de anotaciones propias

 

Cambio de rumbo

La revolución del mundo híbrido

Desde que en  2013 fuera publicado Ionic, el mundo hibrido ha vivido ciertos cambios:

  • Las WPA: la aparición de las WPA, aplicaciones web que se pueden instalar directamente en el dispositivo sin necesidad de distribución en tienda, ha provocado que el wrapeo no sea la única manera de publicación de apps web.
  • La madurez de los estándares web: ciertas funcionalidades que antes solo estaban disponibles en aplicaciones híbridas, como notificaciones PUSH, uso de la cámara o geolocalización, están ya disponibles en el estándar web y cualquier web sin necesidad de ser instalada como app puede utilizarlas.
  • Frameworks realmente híbridos: aparecen una serie de frameworks como React Native y Native Script, que cambian el concepto de app hibridas. En lugar de ofrecer componentes visualmente nativos, estos frameworks lo que hacen es identificar ciertos componentes HTML que pueden ser sustituidos por componentes nativos. El ejemplo más típico son las listas, en lugar de emular en web una lista nativa, estos frameworks construyen una lista nativa con el contenido web, pero el usuario interacciona con una lista nativa.
  • Unificación de diseño en las plataformas: cada vez es más común que una app iOS y Android sean visualmente idénticas, provocando que la funcionalidad base de Ionic: componentes visualmente nativos alineados con cada plataforma, quede en un segundo lugar.

Ionic se adapta

¿Qué es Ionic?, se preguntaron desde Ionic. En mi opinión una descripción bastante certera de Ionic podría ser la siguiente: Angular con componentes visualmente nativos, wrapeado mediante Cordova y una serie de clases para integrar fácilmente ciertos plugins de Cordova.

¿Pero realmente que nos aporta Ionic?

  • Distribución:

        - Mediante Cordova se puede wrapear cualquier web

        - El estándar web permite crear una WPA de manera sencilla

  • Componentes visualmente nativos: si el diseño de la app es agnóstico de plataforma, muchas veces es más un problema que una solución.

  • Funcionalidades nativas: en muchos casos con el uso de los estándares web ha dejado de ser necesario el uso de plugins de Cordova, pero aun en el caso de que se necesiten siempre se puede integrar directamente con ellos, sin necesidad de pasar por Ionic.

Por lo tanto, podríamos decir que el valor que Ionic provee es muy variable, siendo en muchos casos únicamente la facilidad de uso su virtud. A esto hay que sumar el hecho de que la dependencia completa con Angular cierra otras puertas a Ionic, ya sea el uso independiente o con otros frameworks.Por este motivo, desde Ionic se ha decidido con la próxima versión realizar una revolución en todos los sentidos.

Ángel Hernández Fernández

Ángel es analista senior del área de tecnología de Deloitte con más de 6 años de experiencia. Se incorporó a Deloitte en 2011 dentro del área de DxD. Su carrera ha estado enfocada desde el inicio en el ámbito front-end formando parte de la iniciativa de la compañía desde su creación. Ha participado en proyectos que abarcan desde portales web, aplicaciones web SPA y aplicaciones móviles tanto hibridas como nativas en ambas plataformas, trabajando con las arquitecturas y frameworks más comunes en el mercado.

Did you find this useful?