¡Eyyyy hola que tal dev, muy buenas! [email protected] al canal, Aitor otra vez por aquí. Y hoy vamos a seguir hablando de nuestro querido y odiado a partes iguales, Flutter.
Alguna vez te has pregunta ¿por qué debería de elegir Flutter para mi siguiente desarrollo? O lo que es mejor aún ¿qué ventajas tiene Flutter en competencia con los demás?
Si la respuesta es si a alguna de las dos preguntas anteriores, o algo parecido, déjame decirte que no estás solo en esto. Hay mucha gente que se hace esta pregunta todos los días. E, incluso, yo fui uno de ellos. Pero tome la decisión correcta.
Cómo ya sabrás, mi nombre es Aitor y soy desarrollador de software, de apps en particular, desde el 2014 y hoy te voy a contar 9 cosas que convierten a Flutter en la mejor idea para desarrollar apps multiplataforma a día de hoy. Y con esto contestamos la preguntas antes mencionadas.
Pero antes de continuar, este es El Círculo. Es mi newsletter donde te puedo enseñar desarrollo de apps móviles, aso y monetización. Por cierto, si te suscribes te regalo mi ebook Duplica los ingreso de tus apps en 5 minutos. No es broma.
P.D: Darse de alta es gratis y de baja, también.
Consultar estructura del artículo
Es un SDK de código abierto/open source
No me voy a explayar mucho en este punto dado que ya deberías de conocer que es el Open Source.
Básicamente Flutter es de uso totalmente gratuito y está apoyado por la comunidad para su desarrollo. Solo puntualizar, que hasta Google tiene a un equipito de desarrolladores que respalda el proyecto. Por esta razón lo convierte en más apetecible de elegir aún.
Es multiplataforma
Esta es otra de las principales razones por las que elegir este SDK de desarrollo.
Para quien no sepa lo que es esto, aunque imagino que todos los que lean este artículo lo sabrán, nos permite compilar desde nuestra base de código, apps para Android e iOS.
A parte de eso, y esto es lo que lo hace tan especial, es que la compilación es totalmente nativa. Por dicha razón el rendimiento de las aplicaciones es mucho mejor en comparación con otros Frameworks que usan tecnologías web para hacer desarrollo móvil.
Su lenguaje de desarrollo es Dart
Aunque pueda parecer una desventaja, nada más lejos de la realidad. Hoy en día, aprender un lenguaje de programación actual, cómo es Dart, te da muchas ventajas cómo desarrollador de software.
¿Y esto por qué, Aitor? Muy sencillo, porque son tecnologías emergentes que supera, con creces, a los lenguajes del pasado. Están pensadas para las necesidades actuales y carecen de todo lo innecesario que hacia el desarrollo más tedioso de la cuenta.
Véase el ejemplo de TypeScript que se está comiendo a JS, aunque sean hermanos. También, aunque no es tan novedoso, tenemos a Python intentando derrocar a Java y a C++.
Nota: Qué quede claro, que este punto no está aquí por tendencia.
A parte, aprender Dart es una gran opción por que ya se están comenzando a implementar paquetes en él que permiten el desarrollo web de una manera más robusta y el desarrollo de apps de escritorio.
El hot reloading/recarga en caliente
Otra gran feature de este Framework es la recarga en caliente. Con esta característica el debug de las apps se hace mucho más rápido y el desarrollo de las vistas también.
Pero ¿qué significa y qué es el hot reloading? Primero hay que saber lo que NO es.
Cuando hacemos un app en el SDK nativo cada vez que hacemos un cambio, por mínimo que sea, debemos de recompilar la app y volverla a mandar el dispositivo, instalarla y ejecutarla (aunque es cierto que van saliendo herramientas para solventar esto un poco).
Claro, este paso cada que hay que modificar algo hace que perdamos una cantidad de tiempo enorme en cada uno de los desarrollos que hagamos.
Ahora que ya sabemos cual es el problema, el hot reloading nos permite enviar los cambios a nuestra app mientras esta está en ejecución.
Sencillamente, cuando modificamos un archivo al guardar cambios un watch del proyecto se dispara y manda los cambios directamente a nuestra aplicación que se verán reflejados al instante.
Aunque hay que puntualizar que, si tenemos que modificar cosas que solo se ejecutan en los constructores o en tiempo de “pre-ejecución” (variables definidas e inicializadas fuera de cualquier función) no funcionarán y si que habrá que reiniciar la app para que funcionen.
Los widgets
Otro grandísimo aliado que tenemos en Flutter son esto, los Widget. Aunque parezca mentira, han conseguido que programar una interfaz visual fuera del estándar HTML sea una verdadera gozada.
Hay que aclarar que en Flutter todas las vistas, de la más compleja a la más simple, son Widgets.
¿Y por qué esto es tan bueno? Pues porque TODOS los widget tienen un atributo “child” que nos permite anidar otro Widget. ¿Tú sabes lo potente que es esto? Tenemos libertad absoluta para crear nuestras interfaces. Además de que son super sencillas de trabajar.
Imagina poner en el ActionBar un icono a la derecha, o a la izquierda, del título con una simple línea de código. Vale, ¿lo tienes? Ahora, si sabes cómo se hace, si no búscalo, compáralo con cómo se haría en Java Nativo. ¿Ahora lo entiendes?
Para todo aquel que no lo sepa, si queremos modificar a conciencia, que se puede OJO, cualquier componente predefinido del Sistema, cómo podría ser el ActionBar o el menú Drawer, cuando estamos programando en Nativo tenemos que tirar un montón de código y con Flutter nos bastan unas pocas líneas más.
MVP muy rápidos
A ver, Flutter se creó pensando en las dos características que lo hacen único. Hay más, pero estas son las dos principales.
Dichas features son: Reducir mucho los tiempos de desarrollo y que las aplicaciones fuesen bonitas y fluidas de narices.
El primer punto lo consiguen agregando una cantidad enorme de componentes visuales predefinidos, a modo de plantillas, que están a nuestra disposición. A parte, eliminan por completo la parte tediosa de modificar cualquiera de estos al hacer uso de los Widgets.
El segundo punto lo logran al tener una posibilidad enorme de abstracción de las vistas para que hagas lo que te de la gana con ellas. Si te lo curras un poquito, las vistas parecerán aplicaciones creadas por super empresas visualmente.
Por otro lado, y complementando el punto anterior, el rendimiento y fluidez de estas se consigue al poseer una compilación nativa, y que usan el Hardware para renderizar logrando así los 60FPS en las vistas. Solo tienes que comparar las animaciones de una aplicación hecha aquí contra cualquier competencia que use tecnologías web para notar la diferencia.
Si juntamos esta dos características ¿qué conseguimos? MVPs de gran calidad en tiempo récor. Ojo, qué luego podrán se trabajados sobre dicho SDK sin ningún problema, no solo se va a poder hacer el MVP si no que podrás hacer super aplicaciones con él.
Es más, para tener una caso de éxito, la app de Aliexpress está hecha en esta plataforma. Si no te lo crees, hay un video en YT que lo afirma. Busca “Flutter Aliexpress” y verás que presentación más chula.
60FPS en las vistas
Aunque lo hemos comentado un poco en el párrafo anterior, Flutter, por sus compilación nativa y el uso de Hardware para el renderizado, nos permite llegar sin problema a los 60FPS en nuestras vistas.
Lógicamente, esto depende en gran medida del dispositivo, pero vamos. En interfaces que no sean demasiado complejas, y en dispositivos de gama media, llega sobrado.
Acceso a características nativas
Cómo disponemos de una comunicación directa con el SDK y con el NDK del dispositivo donde se esté ejecutando la app, tenemos acceso directo a todas las funcionalidades nativas del sistema. Ya sean cámara, sensores, llamadas, etc…
Eso es normal, y de esperar, la mayoría de los SDK y los Frameworks la tienen. Si, es cierto, pero la diferencia principal es que Flutter no hace uso de cosas intermedias para llevar a cabo el trabajo. Reduciendo así los tiempos de ejecución y mejorando, más aún si cabe, el rendimiento de la app.
Para poner un ejemplo: Ionic usa Cordova cómo brdige para poder comunicarse con la parte nativa, y creo que React usa un Bridge propio para esto mismo. Pero de este último, React, no estoy 100% seguro de ello.
Soporte Oficial
Y cómo he comentado en la intro, Flutter es extendido por la comunidad, pero tiene a un equipo de más de 1000 desarrolladores de Google dando un soporte oficial a la herramienta. Algo que lo hace extraordinariamente competitivo.
Solo por esto, ya merece una oportunidad. ¿Por qué? Pues porque todo lo que aprendas no caerá en saco roto cómo ha pasado con un montón de sistema emergentes que al final se han ido al carajo.
Info adicional
Es muy importante para mí que, si te ha gustado el contenido del artículo o del video, te suscribas al canal de YT. Lo puedes hacer desde aquí. Así estaré informado de que el contenido que voy haciendo te ayuda/gusta. A parte me ayudas a mí a seguir haciendo más de este y continuar creciendo por ahí para poder dedicarle más tiempo a los tutoriales.
Por otro lado, pásate por aquí. Se trata de El Circulo, y es una comunidad que estoy montando alrededor del desarrollo de software donde te enseñaré a hacerte un sueldo pasivo con el desarrollo de apps móviles.
Sin nada más que agregar, me despido ya. Nos vemos en el siguiente artículo. ¡Hasta entonces, que vaya bien!