Recientemente, lidié con un pequeño error en mi aplicación Flutter, específicamente un botón desalineado que estaba volviendo locos a los usuarios. Corregirlo fue sencillo, pero la espera de días por la aprobación de la App Store era una tortura. Luego descubrí Shorebird, una herramienta que permite transmitir actualizaciones de código Dart directamente a la aplicación sin complicaciones de la tienda. Es como enviar un mensaje de texto rápido a tu app. En este artículo, comparto cómo configuré Shorebird, envié mi primera actualización y por qué ahora es mi recurso preferido para proyectos en Flutter.

¿Qué hace que Shorebird sea tan genial?

He desarrollado varias aplicaciones Flutter y el proceso de actualización solía ser tedioso. Shorebird cambia eso radicalmente, permitiendo que envíes cambios de código directamente a los teléfonos de los usuarios. No solo ahorra tiempo, es realmente una salvación. Aquí están las razones por las que estoy fascinado:

  • Gratificación instantánea: Corrige un error o añade una función en minutos.
  • Vibes de Flutter: Parece hecho para programadores Dart como yo.
  • Amigable con las tiendas: No molesta a App Store ni a Google Play.
  • Poco esfuerzo: Se integra fácilmente en tu configuración habitual.

Shorebird utiliza un motor Flutter modificado para hacer esto, permitiendo enviar actualizaciones sin inflar la aplicación.

Configurando Shorebird: Más fácil de lo que esperaba

Al principio, estaba preparado para un tormento en la configuración, pero Shorebird me sorprendió por lo fácil que fue. Vamos a desglosarlo:

Paso 1: Adquiere la CLI de Shorebird

Primero, necesitas la CLI de Shorebird, tu compañero para gestionar actualizaciones. En tu terminal, ingresa:

curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash

Esto descarga la CLI. Para asegurarte de que funcione, verifica la versión:

shorebird --version

Paso 2: Prepara tu proyecto para Shorebird

Navega a la carpeta de tu proyecto Flutter:

cd ~/mi-flutter-proyecto

Luego inicia:

shorebird init

Esto configura varios elementos:

  • Te proporciona un app_id único para tu aplicación.
  • Crea un archivo shorebird.yaml con ese ID.
  • Lo vincula a tu pubspec.yaml para los activos.

Utilizo sabores (desarrollo y producción) para mantener todo organizado, y Shorebird manejó esto sin problemas.

Paso 3: Conecta tu cuenta de Shorebird

Para conectar tu CLI con la nube de Shorebird, inicia sesión:

shorebird login

Esto abrirá un navegador para que inicies sesión con Google. Después de iniciar sesión, recibirás un token que puedes anotar para más tarde, ya que planeo configurar CI/CD con Codemagic.

Publicando tu primera versión con Shorebird

Antes de poder enviar actualizaciones, necesitas una versión construida con la «magia» de Shorebird. Es un poco como una compilación regular de Flutter, pero con un toque de Shorebird.

Paso 4: Construye esa versión

Olvida flutter build por ahora. Usa la CLI de Shorebird en su lugar. Para Android:

shorebird release android

Para iOS:

shorebird release ios

Esto generará un archivo de lanzamiento (.aab para Android, .ipa para iOS) cargado con el actualizador de Shorebird. Súbelo a la Play Store o App Store como de costumbre.

Paso 5: Dale una vuelta

Instala la versión en un teléfono a través de la tienda, TestFlight o un APK. Inicia la aplicación y explora. El actualizador de Shorebird buscará parches al iniciar la app. Como aún no has hecho ninguno, ejecutará el código base.

Enviando una actualización instantánea a tu aplicación

Ahora viene la parte divertida: empujar un cambio sin esperar a Apple o Google por permiso. Aquí te cuento cómo solucioné ese molesto botón.

Paso 6: Modifica tu código

Mi aplicación tenía un botón que se veía… industrial. Aquí estaba su aspecto inicial en lib/main.dart:

ElevatedButton( onPressed: () { // Cosas pasan }, style: ElevatedButton.styleFrom(backgroundColor: Colors.grey), child: Text('Hazlo'), )

Quería que tuviera más vida, así que lo modifiqué:

ElevatedButton( onPressed: () { // Cosas pasan }, style: ElevatedButton.styleFrom(backgroundColor: Colors.orange), child: Text('¡Ve por ello!'), )

Es un cambio pequeño, pero esperar una semana para publicarlo habría sido excesivo.

Paso 7: Envía ese parche

Asegúrate de que la versión de Flutter coincida con la de la versión. Luego ejecuta:

shorebird patch android --flavor prod

O para iOS:

shorebird patch ios --flavor prod

Esto empaqueta tu código Dart modificado, lo envía a los servidores de Shorebird y lo hace en vivo. La CLI devuelve un mensaje positivo con los detalles del parche.

Paso 8: Siente la emoción

Abre tu app en un dispositivo de prueba y reiníciala dos veces: primero para obtener el parche, y segundo para cargarlo. ¡Listo! Ahí está tu botón actualizado, sin necesidad de una actualización en la tienda.

Consejos que adquirí en el camino

Después de experimentar con Shorebird, aquí están algunos consejos que me han ayudado a aprovecharlo al máximo:

  • Prueba como si tu vida dependiera de ello: Como los parches evaden las revisiones de la tienda, los ejecuto por mi sabor de desarrollo primero o los despliego a un 10% de los usuarios con la herramienta de despliegue gradual de Shorebird.
  • Mantén sincronizado Flutter: Una discrepancia de versión puede arruinar tu parche. Anoto la versión de Flutter de mi lanzamiento para mantenerme seguro.
  • Revisa las estadísticas: La consola de Shorebird muestra quién tiene tu parche, es como espiar el progreso de tu aplicación.
  • No empujes tu suerte: Adhiérete a ajustes pequeños para evitar problemas con las tiendas.
  • Ve automático: Estoy configurando Codemagic para enviar parches cuando fusiono código. Menos trabajo, más victorias.

Limitaciones de Shorebird

Aunque Shorebird es increíble, no es una solución definitiva:

  • Límites de Dart: No puedes tocar código nativo o activos como imágenes. Sin embargo, he escuchado que el soporte para activos está en camino.
  • Requiere Wi-Fi: Los usuarios necesitan conexión para obtener parches.
  • Pequeña latencia: Algunos parches utilizan el intérprete de Shorebird, lo que puede sentirse ligeramente más lento. Sin embargo, la mayoría de los procesos son fluidos.

Por qué estoy enganchado

Shorebird ha cambiado mi percepción de las actualizaciones en Flutter. Es como tener un código de trampa para evitar la fila de la tienda de aplicaciones, permitiéndome pulir mi app en tiempo real. Desde la configuración hasta el parcheo, está diseñado para quienes solo desean enviar un gran código sin la espera.

¿Quieres probarlo? Visita shorebird.dev y configura tu proyecto. La primera vez que envíes una corrección y la veas en vivo, entenderás por qué estoy tan entusiasmado.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí