Si quieren aprender mas de como hacer navejaciones animadas Diego GDE de Flutter nos muestra como https://youtu.be/RVBJPXjgm9E
Arquitectura de Aplicaciones
Pasos para aprender Flutter Avanzado
¿Qué es una Arquitectura de software?
Tipos de Arquitecturas para Flutter
Arquitectura BLoC en Flutter
BLoC + Clean Architecture en Flutter
Estructurando nuestro proyecto utilizando la Arquitectura BLoC
Haciendo BLoC Singleton en Flutter
Aplicando Providers al Proyecto
Firebase y Flutter
Integrando Firebase Authentication, Cloud Firestore y Firebase Storage al proyecto
Integrando Firebase a Flutter para Android
Integrando Firebase a Flutter para iOS
Creación de Pantalla de Login con Flutter
Creando botones reutilizables en Flutter
Autenticación de Firebase con Google
Implementando Firebase Authentication en BLoC Pattern
Streams en Flutter
Manejando una sesión con Firebase Authentication y Flutter
Implementando Google SignOut en BLoC
Implementando Google SignOut en View
Monitoreando y validando la conexión al Sign con Google
Mostrando los datos de usuario de Google en la interfaz en Flutter
Cloud Firestore de Firebase en Flutter
¿Qué es Cloud Firestore de Firebase?
Analizando un modelo de datos no relacional
Creando un Modelo de datos en Cloud Firestore
Enviando datos a Cloud Firestore
Creando un Widget gradiente personalizado
Manejo de Desbordamiendo de Texto de Widget Text
Botón de Back en un Appbar en Flutter
Navegación entre pantallas en Flutter
Widget Text Appbar personalizado en Flutter
Widget TextField personalizado en Flutter
Creando una Safe Area para una interfaz que tiene un AppBar
Widget TextField con iconos en Flutter
Retocando el CardView
Mostrando imágenes en un CardView
Creando un botón de Submit en Flutter
Envío de datos de un fórmulario en Flutter
Subiendo datos a Firestore de Firebase
Formularios en Flutter
Acceso al Hardware con Flutter
Acceso a la cámara en Flutter
Librerías de acceso a Hardware en Flutter
Firebase Storage en Flutter
Qué es y cómo funciona Firebase Storage en Flutter
Subiendo una imagen a Firebase Storage desde Flutter
Querys avanzados en Cloud Firestore de Firebase en Flutter
Manejo de imágenes en Cloud Firestore
Cloud Firestore insertando referencias y arrays en la base de datos
Descargar imágenes de Firebase Storage y mostrarlas en Flutter
Procesando datos con BLoC Pattern
Trayendo datos de Cloud Firestore
Persistiendo datos de un usuario logueado
Aplicando Filtros en Cloud Firestore
Construyendo los Places en la pantalla de Home
Mostrando los Places en la pantalla de Home
Actualizando datos en tiempo real
Manejando la lógica de likes, como botón toggle.
Insertando y obteniendo referencias en datos de Firestore.
Usando el caché para cargar imágenes más rápido
StreamController, sink, add y StreamBuilder
Conclusiones
Conclusiones
Lectura
Comenzaremos viendo el ejemplo más simple.
Recuerda que pensar en manejar la navegación en flutter significa que estamos en un stack, por lo tanto si quiero pasar de una pantalla a otra deberé añadir un elemento al stack, esto lo hago con la opción push
de la siguiente manera.
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondRoute()),
);
Ahora imagina que queremos regresar, esto significará sacar la pantalla de la pila en este caso no es necesario llamar directamente al archivo sino únicamente usar la función pop
de la clase Navigator
.
Navigator.pop(context);
Podemos enviar de una pantalla a otra desde un dato sencillo hasta un objeto entero, simplemente usando el método constructor de la clase a dónde queremos llevar el dato. Podemos hacerlo de la siguiente forma:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailScreen(place: places[index]),
),
);
Esta acción no es tan utilizada pero te dejo el dato sobre cómo funciona y la explicación de un caso de uso para que tengas más contexto de en qué casos se puede usar:
Imagina una pantalla que tiene dos botones ambos activan dos menús, el requerimiento es que la al clickear cualquiera de los botones abra el menú y luego regrese a la pantalla anterior con el resultado de lo seleccionado en el menú.
Este tipo de actividad se conoce como obtener el resultado de la pantalla y lo podemos lograr de la siguiente forma:
1. Ir a la pantalla de opciones
onPressed: () {
_navigateAndDisplaySelection(context);
},
2. En la pantalla de opciones tener asignado el accionable de esta forma
Navigator.pop(context, "Opción Seleccionada");
Esto hará que automáticamente al ir de regreso a la pantalla inicial llegué directamente a este método, para obtener el resultado:
_navigateAndDisplaySelection(BuildContext context) async {
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => SelectionScreen()),
);
}
Cuando estamos navegando recurrentemente a la misma pantalla desde otras, puede provocar la duplicación del código. En esos casos es más recomendable utilizar la navegación por rutas.
Para lograr esto lo primero que debemos hacer es desde el Widget MaterialApp()
declarar las rutas de la siguiente forma:
MaterialApp(
initialRoute: '/',
routes: {
'/': (context) => FirstScreen(),
'/second': (context) => SecondScreen(),
'/third': (context) => ThirdScreen(),
},
);
Una vez declaradas ya podemos navegar de esta forma:
Navigator.pushNamed(context, '/second');
Y regresar a la pantalla anterior usando la misma sentencia pop
Navigator.pop(context);
Aportes 11
Preguntas 1
Si quieren aprender mas de como hacer navejaciones animadas Diego GDE de Flutter nos muestra como https://youtu.be/RVBJPXjgm9E
Esta navegacion solo se usa para las screens que llevan datos? y como se diferencia de la navegacion que estabamos teniendo de ir de home a profile. y the el sign in a home.
Gracias por la documentación. Se me hace más entendible la navegación por rutas.
Buen contenido! Muchas gracias por este gran curso! 😄
Interesante, sera igual de bueno o mejor que Navigation de Android?
Excelente Info!
Epsilon!
Muy buena explicación!
Excelente info! me gusto la navegación con rutas.
Muy clara la explicación !
Muy buena la explicación, he tenido que leerlas varias veces para poder comprender, pero muy buena.
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.