Saltar al contenido

Flutter vs Android y iOS nativo ¿cuál debería aprender?

noviembre 21, 2020

Cuando programamos aplicaciones para celulares, tenemos varias opciones. Podemos usar los lenguajes nativos como Java o Kotlin para hacer aplicaciones para Android y Swift para iOS. Pero también tenemos una segunda opción, podemos usar tecnologías que nos permiten programar para varias plataformas al mismo tiempo. ¿Cuál me conviene usar?

En este artículo vamos a analizar las ventajas y desventajas de Flutter frente a las tecnologías nativas para crear aplicaciones móviles. De esta forma sabrás si te conviene aprender Flutter o si mejor debes aprender lenguajes nativos.

Velocidad de desarrollo

Este es un punto para Flutter. Crear una aplicación en Flutter es mucho más rápido que crear las aplicaciones al mismo tiempo para Android y para iOS, esto ya de por si reduce el tiempo de producción a la mitad con el mitad de los programadores.

Cuando creamos una aplicación en Flutter, podemos exportar esta aplicación para Android y para iOS al mismo tiempo. Esto sucede porque la programación en Flutter se hace con un lenguaje llamado Dart. Con lo que se hace la programación y el llamado a clases y funciones.

A la hora de compilar el proyecto para crear el archivo de la app, el compilador de Flutter se encarga de convertir las funciones creadas a código nativo y lo que no puede hacerlo nativo, lo emula. De la misma forma Flutter puede exportar el proyecto también a HTML para crear una página web a partir del código en Dart.

Podría interesarte: Crea tu primer sitio WEB con Flutter

Cabe destacar que para crear la aplicación para iOS necesitas programar en un computador Mac, ya sea un iMac o un Macbook. Esto sucede porque se necesita a XCode para compilar el proyecto y exportar a la tienda de aplicaciones, ademas de firmas necesarias de seguridad. Al igual que el tester.

Rendimiento de Flutter vs Nativo

Ya dijimos que cuando compilamos en Flutter convertimos el código Dart a código nativo, sin embargo el rendimiento (aunque muy poco) no es el mismo. Sin embargo la diferencia es muy poca y en la mayoría de los casos es casi imperceptible.

Con los dispositivos móviles que tenemos hoy en día es muy difícil que encontremos un dispositivo en el que se note la diferencia entre una aplicación en Flutter y una aplicación creada de forma nativa. La mayoría de dispositivos tiene la suficiente capacidad para correr nuestras aplicaciones sin ningún tipo de problemas.

Podría interesarte: Requisitos para aprender Flutter en 2020

La verdad es que hablando de rendimiento tiene más importancia la forma en que programamos. La misma aplicación puede hacerse en Flutter y en nativo de la misma manera, pero si se programa de forma adecuada y se administrar los recursos de forma responsable, la aplicación de Flutter puede presentar mejor rendimiento que una mal gestionada en nativo.

Cuando programamos en Flutter, podemos crear los llamados Futures que nos permiten hacer adminstración de los esperas, si los usamos de forma adecuada podemos diseñar una experiencia de usuario muy agradable y profesional.

Curva de aprendizaje

Cuando comenzamos a aprender una tecnología de programación hay algo que se llama «curva de aprendizaje» que se refiere a la cantidad de tiempo que tardas en aprender desde cero una tecnología específica. En este sentido aprender a programar en nativo pierde un punto.

Por el contrario Flutter tiene una curva aprendizaje mucho más corta y mucho más intuitiva que los lenguajes como Java o Swift. Los lenguajes nativos tienen curvas de aprendizaje mucho más larga y complicadas, hablando de Flutter, en una semana podrías estar creando aplicaciones sencillas.

En resumen, cuando creamos aplicaciones móviles con Flutter tenemos todas las ventajas de los sistemas nativas, salvo un poco el rendimiento de la aplicación, pero la diferencia es mínima y podemos decir que una aplicación creada con Flutter va a rendir igual en el 99% de los casos.

Podría interesarte: Aprender Flutter

También recordemos que Google está desarrollando Flutter y cada vez aumenta las capacidades de este SDK. Personalmente creo que aprender Flutter es una mejor inversión de tiempo, sin embargo, cuando aprendas Flutter te recomiendo que después tomes un curso básico de los lenguajes nativos. Siempre es bueno saber cómo funcionan internamente las compilaciones.