Contenido del curso
Fundamentos de BLoC y Firebase
Navegación y Autenticación
- 10

BlocProvider y RepositoryProvider en Flutter
06:24 min - 11

Pantalla de login con BlocListener en Flutter
11:12 min - 12

Creación y Validación de Formularios en Flutter con Firebase
17:43 min - 13

Rutas en Flutter con GoRouter y Firebase Auth
15:46 min - 14

Conectar botón de login con Firebase Auth
11:34 min - 15

Cómo implementar logout con Firebase y GoRouter
10:30 min
Diseño Avanzado en iOS
Integración con Firestore usando BLoC
- 18

Modelo e repositório Firestore para BLoC
16:43 min - 19

Manejo de Estados y Eventos en Flutter con Bloc para Finanzas
09:57 min - 20

Agregar transacciones en Firebase con Flutter Bloc
06:41 min - 21

Eliminar Transacciones con Firebase en Flutter
05:29 min - 22

MultiBlocProvider con auth y transacciones en Flutter
06:06 min
Funcionalidades con BLoC
- 23

BlocBuilder para mostrar datos en Flutter
15:13 min - 24

Integración de Gráficas y Estados en Aplicaciones Flutter
11:50 min - 25

Creación de Listados Dinámicos en Aplicaciones Flutter
18:25 min - 26

Configuración de Balance y Estados en Pantalla de Wallet
07:12 min - 27

Lista de Transacciones en Aplicaciones Móviles
04:02 min - 28

Agregar Transacciones en Firebase con Flutter y Bloc
10:55 min - 29

Eliminar transacciones en Flutter con BLoC y Firebase
03:57 min
Testing
Cupertino Widgets en tu app Flutter iOS
Resumen
Si tu app en Flutter está pensada para iOS, los Cupertino Widgets te permiten replicar la apariencia nativa del sistema operativo: barras de navegación, botones, paletas de colores e indicadores de actividad que ya vienen integrados en iOS. Aquí verás cómo aplicarlos paso a paso sobre una pantalla de dashboard, sustituyendo widgets genéricos de Material por componentes que sienten propios de Apple.
¿Qué son los Cupertino Widgets y por qué usarlos?
Los Cupertino Widgets son la librería oficial de Flutter que imita los componentes nativos de iOS. Vienen listos para usarse y respetan la guía de diseño de Apple, así que tu app se ve y se siente como una aplicación construida directamente en Swift.
¿Qué diferencia hay entre Material y Cupertino en Flutter? Material sigue el diseño de Google (Android), mientras Cupertino replica el estilo de iOS. Cambian colores, tipografías, transiciones y la forma de los botones.
Dentro de esta librería tienes desde el Activity Indicator hasta acciones como cortar y pegar, pasando por una paleta completa de colores del sistema. Y aquí viene lo interesante: combinarlos con widgets propios de Flutter te da flexibilidad sin perder la estética nativa.
¿Cómo reemplazo el Scaffold por un CupertinoPageScaffold?
El punto de partida es cambiar el Scaffold tradicional por su equivalente de Cupertino [00:48]. La estructura se mantiene similar, pero ahora el contenedor superior y la barra de navegación responden al estilo iOS.
Los pasos clave son:
- Eliminar el
themeprevio, porque vas a usar la paleta nativa de iOS. - Envolver la pantalla en un
CupertinoPageScaffold. - Asignar un
CupertinoNavigationBara la propiedadnavigationBar. - Usar la propiedad
middlepara colocar el título de la barra superior.
Este scaffold exige un child, que será el cuerpo de la pantalla. Una buena práctica es separarlo en un método privado tipo _buildBody, así mantienes el código legible.
¿Cómo aplico la paleta CupertinoColors y un gradient nativo?
La paleta CupertinoColors te da acceso directo a los colores del sistema operativo: systemGreen, white, systemGrey y muchos más [03:30]. No necesitas definir un tema personalizado para usarlos.
Para crear un fondo con degradado al estilo iOS, dentro del Container configuras un BoxDecoration con un LinearGradient:
colors: arranca conCupertinoColors.systemGreeny termina enCupertinoColors.white.begin:Alignment.topCenter.end:Alignment.bottomCenter.stops:[0.3, 0.7]para distribuir el 30% y 70% de la pantalla.
¿Qué hace la propiedad stops en un LinearGradient? Define en qué porcentaje del recorrido se ubica cada color. Con
[0.3, 0.7], el primer color ocupa hasta el 30% y el segundo arranca en el 70%, dejando una transición suave en medio.
Envuelve el contenido en un Padding de 16 píxeles para que las tarjetas no queden pegadas a los bordes. Si usas Android Studio, el atajo Option + Enter te permite agregar const, envolver o eliminar widgets sin escribir todo a mano.
¿Cómo transformo un botón de Flutter en un CupertinoButton?
El botón es donde más se nota el cambio visual. Sustituyes el botón de Material por un CupertinoButton.filled, que ya trae el estilo redondeado y el color de acento típico de iOS [07:45].
La estructura mínima necesita dos propiedades:
child: unTextcon la etiqueta, por ejemplo"Create Saving Goal".onPressed: la función que se dispara al tocar el botón.
Para mantener la coherencia visual, el color principal del botón apunta a CupertinoColors.systemGreen, mientras los textos secundarios pueden usar CupertinoColors.systemGrey. Los textos por defecto ya heredan el color correcto del sistema, así que en muchos casos puedes eliminar el style y dejar que iOS decida.
¿Cómo ajusto el espaciado para que el dashboard se vea bien?
Al combinar CupertinoPageScaffold con un Column, el contenido tiende a quedar pegado a la barra superior. La solución rápida es agregar un SizedBox como primer hijo del Column con un height de 120 píxeles [11:50].
Ese pequeño ajuste libera espacio visual y permite apreciar el difuminado del gradient junto con la barra de navegación nativa. El resultado: botones, colores y transiciones que se sienten parte del sistema operativo, no de un framework externo.
¿Ya probaste mezclar Cupertino con widgets de Material en la misma pantalla? Cuéntame en los comentarios qué componentes de iOS te gustaría implementar en tu próxima app.