¿Papá o mamá? ¿Letras o ciencias? Elegir entre dos caminos. Siempre elegir. Y en el desarrollo de software, no iba a ser menos. Aquí la gran decisión es: híbrido o nativo. Pues como toda en esta vida, depende. Pero, si ya tienes claro que tu desarrollo será híbrido, sí o sí tienes que conocer Ionic. Hoy, nuestro una representación de nuestro Slashteam formada por Daniela, Marc y Álvaro nos cuentan todo lo que debes saber sobre Ionic.
¿Qué es y para que sirve Ionic?
Empecemos por el principio. Álvaro lo define fácil: Ionic es un framework de código abierto que sirve para desarrollar aplicaciones híbridas, es decir, se pueden crear apps para Android y iOS al mismo tiempo. Marc matiza que se trata de un framework que se puede usar junto con otras tecnologías como Angular, React o Vue, ya que ofrece muchos componentes y servicios de gran utilidad.
Ventajas de Ionic
Para Daniela, las tres ventajas más importantes de Ionic son:
- Versatilidad: permite desarrollar una aplicación totalmente customizada a nivel de look feel y también a nivel de desarrollo, ya que se puede usar Ionic junto con los tres lenguajes de frontend más conocidos (Angular, React y Vue) para que el desarrollador pueda usar con el que más cómodo está.
- Buena comunidad: al ser una tecnología que usa muchísima gente, esto ha generado una buena comunidad en la que podemos apoyarnos si hay cualquier problema o duda. La mayoría de problemas con los que me he encontrado, antes ya le había pasado a alguien y, entre la comunidad Ionic, he podido encontrar una solución.
- Beginner friendly: con conocimientos solamente de HTML, CSS y Javascript (los lenguajes más básicos que un developer debe saber) ya se puede usar Ionic. También tiene una buena documentación con la que puedes apoyarte.
Inconvenientes de Ionic
En cuanto a los inconvenientes de usar Ionic, Daniela destaca los siguientes:
- Funcionalidades nativas limitadas. Aunque Ionic tiene un gran abanico de plugins que permiten usar funcionalidades nativas propias de Ionic, hay funcionalidades nativas que no ofrecen y se pueden conseguir de otros contribuyentes de la comunidad. A la larga puede ser un problema, ya que los plugins deben de mantenerse (ya que la tecnología siempre avanza y es necesario adaptarse a los cambios), pero como los autores son personas que tienen trabajos propios y usan su tiempo libre para mantenerlos, puede llegar a pasar que ya no puedan dedicar tiempo al mantenimiento del plugin y este quede obsoleto.
- Problemas con plugins. Dependiendo del proyecto y sus dependencias, a veces puede haber cierta incompatibilidad o problemas con plugins/dependencias, en los que genere errores en la compilación y se tengan que arreglar manualmente (en los proyectos nativos en Android Studio o Xcode) o se tengan que usar versiones específicas anteriores de las dependencias en vez de la última versión que hay publicada.
- Peor performance que apps nativas. Es un poco obvio, pero un proyecto nativo está programado para que funcione óptimamente en una plataforma en concreto y se aproveche al máximo del sistema operativo y el dispositivo físico. Al ser un framework cross-platform, este tiene que mantener una cierta compatibilidad con varios sistemas operativos o detalles propios de cada dispositivo que puede afectar negativamente a la performance de la app.
A los anteriores, Marc añade que al tratarse de un framework relativamente joven y que está en continuo cambio y hay veces que los cambios de una versión a otra, como el caso de la v.6 que comentaremos después, provoca que muchas implementaciones que se hacían en versiones anteriores dejen de ser funcionales.
Lo mejor de Ionic 6
La principal desventaja de Ionic para Álvaro es que si quieres tener una aplicación con una apariencia distintiva y que no se vea muy “Ionic”, es un poco complicado personalizar los componentes porque cada uno de ellos tiene unas propiedades distintas para cambiar ciertos atributos. Teniendo esto en cuenta, la principal mejora que trae Ionic 6 es el cambio en los componentes, que tienen una apariencia mucho más moderna. También se han creado nuevos componentes, por lo tanto puede llegar a agilizar mucho la implementación de algunas de tus funcionalidades. Marc añade que teniendo en cuenta que sus componentes no son fácilmente personalizables cualquier cosa que ellos introduzcan es tiempo que nos ahorramos los developers en crearla.
Daniela destaca que esta última versión se ha centrado bastante en conseguir un look & feel más nativo, introduciendo o actualizando componentes como por ejemplo BottomSheet, Modal o Accordion entre muchos otros. Yo creo que es un paso importante que se añadan más componentes propios de Ionic, para evitar la dependencia de plugins de terceros que podrían quedarse obsoletos.
¿Qué esperamos de Ionic 7?
¿Cuál es la wishlist del Slashteam para Ionic 7? Álvaro lo tiene claro. La principal mejora que considero que debe hacer es que se facilite la manera de cambiar la apariencia de los componentes. Considero que se puede llegar a perder mucho tiempo personalizando componentes por culpa de las css shadow parts (variables de css predefinidas en el componente).
Según Marc, sin duda hay muchos plugins muy básicos que están hechos por la comunidad y no cuentan con una versión oficial de Ionic. Sería de gran ayuda que sacaran sus propias versiones bien documentadas y mantenidas.
Daniela pide para la siguiente versión y próximas versiones de Ionic, seguir en la línea de ir añadiendo componentes propios del framework. Ya que hay muchos más componentes UI o comportamientos en nativo que se podrían llevar a Ionic para completarlo más; como por ejemplo comportamientos con gestos, mantener presionado y que aparezca un menú con opciones, activity view para compartir por redes u otras aplicaciones el contenido de la app, etc.