Ionic es un SDK de front-end de código abierto basado en tecnologías web (HTML, CSS y JS) que es utilizado para desarrollar aplicaciones móviles híbridas. Ionic proporciona una librería de componentes híbridos optimizada para dispositivos móviles. Su compatibilidad y, gracias a la implementación de Cordova e Ionic Native, hacen posible trabajar con componentes híbridos. Este framework fue creado en 2013 por Drifty Co. y hasta la llegada de React Native ha sido una de las tecnologías líderes para el desarrollo de aplicaciones móviles híbridas.

Tipos de aplicaciones móviles
Pero antes de seguir, ¿qué es una aplicación móvil híbrida y en qué se diferencia de una nativa? Existen tres tipos de aplicaciones: nativa, web e híbrida.
App nativa
Una aplicación nativa es aquella que se desarrolla en el lenguaje de programación y las herramientas de desarrollo propias de un sistema operativo concreto. En el caso de querer desarrollar una aplicación para iOS, necesitaríamos tener conocimientos del lenguaje de programación que utilizan (Objective-C o SWIFT) y de Xcode para poder compilar nuestro desarrollo. Para una aplicación nativa Android necesitaríamos tener conocimientos de Java o Kotlin y tendríamos que trabajar en Android Studio.
Ventajas de las aplicaciones nativas
Al estar completamente desarrolladas para que se utilicen en un sistema operativo concreto, el rendimiento de la aplicación es mucho mayor dado que se saca el máximo partido a las características y funcionalidades del dispositivo.
Inconvenientes de una app nativa
Tenemos que tener en cuenta que, debido a que las aplicaciones nativas no son compatibles entre los distintos sistemas operativos, para desarrollar una app nativa en Android e iOS es necesario un equipo de personas numeroso que tenga conocimientos de al menos dos lenguajes de programación y las respectivas herramientas de desarrollo. Esto supone que el presupuesto para el proyecto de desarrollo se dispara.
App móvil web
Una aplicación móvil web no es más que una aplicación web responsive pensada tanto para su uso tanto en un ordenador como en dispositivos móviles o tablets. Algunos de los frameworks utilizados para su desarrollo son Angular, React o Vue, basados en tecnologías web.
Ventajas de las aplicaciones web
Por una parte, se trata de un único desarrollo para todas las plataformas. Y, por otro lado, las tecnologías web son conocidas por la comunidad front-end. Ambas razones hacen que el desarrollo de este tipo de aplicación sea mucho menos costoso.
Inconvenientes de una app móvil web
Estas aplicaciones se ejecutan en navegadores web, con las limitaciones que estos tienen en un dispositivo móvil. Quizás tu aplicación móvil necesita acceder al giroscopio, la cámara o el GPS y no todos los navegadores ofrecen acceso a estos recursos. Esto, unido a que no se exprimen al máximo las características del dispositivo, tanto a nivel funcional como de diseño, hace que dependiendo de la aplicación y del navegador puedan existir problemas para utilizar de forma correcta y completa la aplicación.
App móvil híbrida
Las aplicaciones móviles híbridas fueron pensadas para aprovechar al máximo las ventajas de las aplicaciones nativas y las aplicaciones web, dejando atrás los inconvenientes de cada una de ellas.
Una aplicación móvil híbrida no es más que una aplicación web dentro de una aplicación nativa. El desarrollo web se traduce a desarrollo nativo a nivel funcional gracias a que Apache Cordova o Capacitor tienen acceso completo a las capacidades del dispositivo móvil permitiendo sacar el máximo rendimiento.
Por otro lado, las librerías de diseño como Ionic o React Native permiten que, a nivel visual, los componentes de la aplicación web sean exactamente iguales que los de la aplicación nativa.

¿Por qué usar Ionic Framework?
¿Qué más se puede pedir? Con Ionic se puede realizar un único desarrollo para todas las plataformas con frameworks basados en tecnologías web como Angular o React. Permitiendo tener un coste muy inferior gracias a que son estos están muy extendidos entre la comunidad de desarrolladores, pudiendo sacar partido a las capacidades del dispositivo.
No hay que olvidar que, si lo que se quiere es exprimir al máximo las características de un dispositivo, la mejor opción es el desarrollo nativo. Esto es así ya que permite llevar a cabo un desarrollo optimizando a nivel funcional del comportamiento de la aplicación.
He aquí el quid de la cuestión. Sabiendo qué ofrece cada una de las diferentes opciones de desarrollo, la clave está en analizar varios factores de la aplicación para elegir la mejor de estas opciones.