Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Migrando nuestras apps Xamarin a Flutter

El 1 de mayo de 2024 Microsoft terminará oficialmente el ciclo de vida de Xamarin, dejando de darle soporte y actualizaciones. Las últimas versiones de iOS y Android que se soportarán en el framework serán las de 2023, iOS 16 y Android 13 y ya no podremos acceder a nuevas funcionalidades de futuras versiones de los sistemas operativos.

¿Cómo podemos actualizar nuestras aplicaciones a un nuevo framework como Flutter, sin enfrentarnos a un desarrollo monolítico desde 0 y manteniendo la continuidad de operaciones? Esperamos ayudaros con este roadmap de migración que hemos diseñado.

Cómo funciona Xamarin

Xamarin es un framework multiplataforma cuyo foco es el tiempo de desarrollo, esto quiere decir que afecta al modo en el que escribimos nuestras apps, usando un lenguaje común: C#, pero que al compilar genera código nativo para cada plataforma.

Para hacer esto, tenemos en nuestro código un proyecto compartido donde estará la mayoría de nuestro código Xamarin y  un proyecto específico para iOS y otro para Android.

Estos proyectos pueden consumir librerías nativas de iOS y Android usando un sistema que se llama Xamarin Bindings library, que nos permite crear una interfaz entre la librería nativa y el código de Xamarin para que interactúen.

Arquitectura bindings Xamarin

Este es un paso importante que explotaremos más adelante.

Cómo funciona Flutter

La forma de trabajar de Flutter es ligeramente distinta a la de Xamarin. Aquí tendremos nuestro código escrito en Dart dentro de la carpeta lib y encontraremos carpetas para cada sistema operativo soportado con proyectos nativos.

Mientras que Xamarin comparte el mismo lenguaje de desarrollo, C#, para los proyectos común y nativos, Flutter solo usa Dart para el código común y los proyectos nativos usan el lenguaje de cada plataforma (Java/Kotlin, Objective-C/Swift).

Esto nos permite crear un módulo en Flutter que al compilar genera una librería nativa para iOS y Android, donde podemos tener métodos que se encarguen de inicializar el motor de Flutter, podemos arrancar una página de Flutter e interactuar con nuestros widgets.

Esquema módulos Flutter iOS y android

Encontrando el nexo común y explotándolo

Ahora que ya hemos visto, de forma muy resumida, como funciona Xamarin y Flutter, podemos encontrar en las librerías nativas el nexo común de ambos frameworks.

Por un lado, con Flutter podemos generar librarías nativas (AAR para Android, XCFramework para iOS) que contengan widgets y lógica de páginas completas escritas en Flutter.

Por otro lado, desde Xamarin podemos consumir librerías nativas usando Xamarin Bindings library.

Así, podemos crear un módulo en Flutter, donde tendremos pantallas y lógica de nuestra aplicación, escritas en Dart y usando Flutter. Consumiremos este módulo desde nuestra aplicación Xamarin usando proyectos de librería de bindings.

esquema de modulo flutter y app Xamarin

Esto nos permite ir migrando funcionalidad existente de nuestra aplicación Xamarin a Flutter, pantalla por pantalla y desarrollar nueva funcionalidad en Flutter. Llegado el momento, cuando toda nuestra aplicación esté en Flutter, podremos eliminar la parte de Xamarin y con un mínimo esfuerzo convertir el módulo de Flutter en una aplicación propiamente dicha.

migración Xamarin a Flutter en progreso

¿Siguientes pasos?

En este artículo hemos dado una pincelada a lo que podemos hacer para modernizar nuestras aplicaciones móviles escritas en Xamarin y asegurar la continuidad de operaciones llegado el 1 de mayo de 2024.

Puedes ver más información en este webinar sobre modernización de aplicaciones Xamarin en nuestro canal de YouTube.

Es posible que, dependiendo del tamaño o la criticidad de nuestra aplicación Xamarin, sea más factible comenzar desde 0 y no tener que realizar estos pasos intermedios.

Si quieres más información, no dudes en ponerte en contacto con nosotros y estaremos encantados de charlar un rato y ver como podemos ayudarte 🙂

mm

Sobre Yeray Julián Ferreiro

Apasionado de los dispositivos móviles y el desarrollo. Jugando con cacharritos desde las PDAs PSIOn Workabout y Windows PocketPC. Ex MVP de Windows Phone Dev, Windows Dev, Development Technologies y Xamarin.
Esta entrada ha sido publicada en Flutter, Movilidad, Xamarin, Xamarin.Forms. Enlace permanente.
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores