Arquitectura de Aplicaciones

1

Pasos para aprender Flutter Avanzado

2

¿Qué es una Arquitectura de software?

3

Tipos de Arquitecturas para Flutter

4

Arquitectura BLoC en Flutter

5

BLoC + Clean Architecture en Flutter

6

Estructurando nuestro proyecto utilizando la Arquitectura BLoC

7

Haciendo BLoC Singleton en Flutter

8

Aplicando Providers al Proyecto

Firebase y Flutter

9

Integrando Firebase Authentication, Cloud Firestore y Firebase Storage al proyecto

10

Integrando Firebase a Flutter para Android

11

Integrando Firebase a Flutter para iOS

12

Creación de Pantalla de Login con Flutter

13

Creando botones reutilizables en Flutter

14

Autenticación de Firebase con Google

15

Implementando Firebase Authentication en BLoC Pattern

16

Streams en Flutter

17

Manejando una sesión con Firebase Authentication y Flutter

18

Implementando Google SignOut en BLoC

19

Implementando Google SignOut en View

20

Monitoreando y validando la conexión al Sign con Google

21

Mostrando los datos de usuario de Google en la interfaz en Flutter

Cloud Firestore de Firebase en Flutter

22

¿Qué es Cloud Firestore de Firebase?

23

Analizando un modelo de datos no relacional

24

Creando un Modelo de datos en Cloud Firestore

25

Enviando datos a Cloud Firestore

26

Creando un Widget gradiente personalizado

27

Manejo de Desbordamiendo de Texto de Widget Text

28

Botón de Back en un Appbar en Flutter

29

Navegación entre pantallas en Flutter

30

Widget Text Appbar personalizado en Flutter

31

Widget TextField personalizado en Flutter

32

Creando una Safe Area para una interfaz que tiene un AppBar

33

Widget TextField con iconos en Flutter

34

Retocando el CardView

35

Mostrando imágenes en un CardView

36

Creando un botón de Submit en Flutter

37

Envío de datos de un fórmulario en Flutter

38

Subiendo datos a Firestore de Firebase

39

Formularios en Flutter

Acceso al Hardware con Flutter

40

Acceso a la cámara en Flutter

41

Librerías de acceso a Hardware en Flutter

Firebase Storage en Flutter

42

Qué es y cómo funciona Firebase Storage en Flutter

43

Subiendo una imagen a Firebase Storage desde Flutter

Querys avanzados en Cloud Firestore de Firebase en Flutter

44

Manejo de imágenes en Cloud Firestore

45

Cloud Firestore insertando referencias y arrays en la base de datos

46

Descargar imágenes de Firebase Storage y mostrarlas en Flutter

47

Procesando datos con BLoC Pattern

48

Trayendo datos de Cloud Firestore

49

Persistiendo datos de un usuario logueado

50

Aplicando Filtros en Cloud Firestore

51

Construyendo los Places en la pantalla de Home

52

Mostrando los Places en la pantalla de Home

53

Actualizando datos en tiempo real

54

Manejando la lógica de likes, como botón toggle.

55

Insertando y obteniendo referencias en datos de Firestore.

56

Usando el caché para cargar imágenes más rápido

57

StreamController, sink, add y StreamBuilder

Conclusiones

58

Conclusiones

Curso Avanzado de Flutter

Curso Avanzado de Flutter

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Integrando Firebase a Flutter para iOS

11/58
Recursos
Transcripción

Ahora en esta clase configuraremos Flutter y Firebase para iOS. Cuando desarrollamos con Flutter debemos siempre tener un ojo en Android y otro en iOS, en lo que instalación de paquetes respecta, una que funciona bien en Android puede romperse en iOS o viceversa; en esta clase te mostraremos cómo implementar bien iOS.

Debemos registrar la aplicación en Firebase así como lo hicimos para registrarlo con Android.

Repasemos los puntos que irán en este vídeo:

  • No implementar Firebase con cocoapods.
  • Pegar el archivo GoogleService-Info.plist a nivel de Runner
  • Para Google Sign In:
  • Copiar el fragmento de código para el key CFBundleURLTypes que se encuentra aquí.
  • Para CloudFirestore:
  • Actualizar Firebase con el comando pod: $ pod update Firebase

Aquí puedes acceder al repositorio.

Aportes 32

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Tanto batallar para hacerla correr en android y ahora necesito una mac haha, VVLV

Estoy siguiendo los cursos y me pareció muy bueno el de dart y el de flutter. Seguí los 2 cursos a la par con los de otra plataforma (CF) y los complemente excelentemente.

Pero a pesar que el contenido de este curso (Flutter Avanzado) es interesante y me encanta firebase, de hecho lo uso en desarrollo android, me parece que no era el lugar para ponerlo.

Considero que hay otras cosas mas sobre Flutter que se puede hablar (estoy siguiendo a la par el 3er curso de la otra plataforma tambien), antes de empezar a verlo integrada con una tecnologia como Firebase, y hasta me parece que podria ir como un curso a parte.

o en su defecto tendria que ir al final de todo el curso avanzado como algo agregado, asi como hicieron con Dart , no tan atinado pero bueno, al menos lo pusieron al final de todo. Igual acabaré el curso ,la app y aprobaré el examen mas adelante como lo hice con los 2 anteriores, pero debo hacer un alto acá para ir a la otra plataforma a continuar con lo que considero el camino correcto antes de ver integracion con firebase, me parece se comieron una gran parte de temas a tratar antes de tocar Flutter con Firebase. Como digo incluso podría hacerse como un curso a parte, incluso despues de aprender a trabajar con BD, luego de aprender a consumir servicios en general, etc. Me encanto ver el tema de arquitectura, pero luego creo que se salieron del camino. Con lo cual tanto el curso de Dart y Flutter me parecieron muy ordenados, pero este desafortunadamente no. 👎 . No me afecta mucho el tema de firebase ya que ya lo he manejado en mis apps android y uso mi mac sin problemas para IOS, pero a alguien que recien empieza podria serle confuso y ni siquiera tener una mac para probar que todo lo que esta haciendo le va bien (de hecho la profesora lo comenta antes de iniciar con Firebase), de hecho lo he leido en los comentarios de algunos compañeros. Es una critica con buena onda. Volvi a Platzi despues de mucho tiempo, por una oferta de Freddy(gracias freddy 😄) y me lleve un buen sabor de boca con los 2 primeros cursos que hicieron interesarme mas en la tecnologia Flutter y aprenderlo ahora si de verdad, tanto que adquiri tambien una suscripcion en otra plataforma para complementar todo Flutter, (de hecho voy a continuar con mi suscripcion en platzi por los cursos de IOS), pero el tercer curso de Flutter (Flutter avanzado) me parece fuera de tiempo en la linea de aprendizaje de esta tecnologia, hay mas cosas que se podrian ver antes de juntarlo con Firebase.

En mi caso, para poder ejecutar el pod update Firebase tuve que ejecutar primero la aplicación en el simulador de iOS.

Con eso se crea el archivo Podfile y ya se puede ejecutar el comando para actualizar Firebase.

se debe ejecutar pod install antes de pod update Firebase

Yo queriendo configurar todo para iOS pero sin Mac es imposible que lastima… 😢

Hasta ahora me ha gustado el curso tanto básico como avanzado, pero lo que no veo, hasta ahora, en ningún chat por video, es que la “experta” en el tema participe aclarando dudas expuestas…


Alguien pudo habilitar la opcion Fluter al hacer cllick derecho en la carpeta IOS en windows?

Esta muy cool el curso, me esta gustando mucho, yo desarrollo en iOS y bueno, creo aqui falto explicar un poco más el por qué no debe agregarse el pod

Por lo que vi es que flutter por defecto te instala el Podfile por defecto, no es que no lo ocupemos, es que realmente ya esta creado en el proyecto, en dado caso que no lo tengas si tendrías que crearlo.

MBP-de-Victor:ios victor$ ls Flutter Frameworks ->>Podfile Runner Runner.xcodeproj Runner.xcworkspace ServiceDefinitions.json

Es como un gradle pero para iOS , el update sirve para actualizar el firebase y realmente yo recomendaría en lugar de hacer el update hacer un :
pod install
posiblemente sirva mejor =)

Si tienen problemas con pod update Firebase pueden descargar los archivos “Podfile” y “Podfile.lock” del repositorio:

https://github.com/anncode1/Curso-de-Flutter-Avanzado-en-Platzi/tree/4.FirebaseiOS/ios

Después si podrán ejecutarlo.

y yo que pensaba configurar todo ios desde vscode

En mi caso no tengo errores, funciona el simulador y todo, pero nunca se sincroniza con Firebase. se queda esperando eternamente que finalice el proceso

Mi consola muestra lo siguiente:

Launching lib/main.dart on iPhone 11 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           28,2s
	path: satisfied (Path is satisfied), interface: en0
Configuring the default Firebase app...
Configured the default Firebase app __FIRAPP_DEFAULT.
Syncing files to device iPhone 11 Pro Max...
	path: satisfied (Path is satisfied), interface: en0
	path: satisfied (Path is satisfied), interface: en0
	[C1.1 1A01B709-91F1-4AD8-B133-2D5B37CC86A7 2800:300:6311:40f0::2.53518<->2800:3f0:4003:c01::5f.443]
	Connected Path: satisfied (Path is satisfied), interface: en0
	Duration: 240.202s, DNS @0.007s took 0.007s, TCP @0.021s took 0.011s, TLS took 0.126s
	bytes in/out: 0/0, packets in/out: 0/0, rtt: 0.000s, retransmitted packets: 0, out-of-order packets: 0```

Tal vez a alguién ayude, cuando le salga el error de
module cloud_firestore not found

colocar en el ios/podfile lo siguiente

target 'Runner' do
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.9.0'
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

y en caso estuvieran trabjando con el chip M1 van a requerir previamente correr:

sudo arch -x86_64 gem install ffi

y en su archivo /users/[su_usuario]/.zshrc añadir lo siguiente

alias pod='arch -x86_64 pod'

espero ayude en algo, ya que me estuvo dando un par de horas de dolor de cabeza.

Curso esta demasiado desactualizado

Para error al correr cocoapods me funcionó quitar el comentario en línea del podfile platform: ios, '9.0' Y cambiar la versión a 10

me sale desabilitare la opcion de fluuter con IOS CUAL SERIA EL PROBLEMA?

Este fue el log al correr la app en mi android. Aunque sí instaló la aplicación y confirmo en firebase que se conectó correctamente

Launching lib/main.dart on SM G9650 in debug mode...
Running Gradle task 'assembleDebug'...

Welcome to Gradle 4.10.2!

Here are the highlights of this release:
 - Incremental Java compilation by default
 - Periodic Gradle caches cleanup
 - Gradle Kotlin DSL 1.0-RC6
 - Nested included builds
 - SNAPSHOT plugin versions in the `plugins {}` block

For more details see https://docs.gradle.org/4.10.2/release-notes.html

ERROR: [TAG] Failed to resolve variable '${junit.version}'
ERROR: [TAG] Failed to resolve variable '${animal.sniffer.version}'
ERROR: [TAG] Failed to resolve variable '${animal.sniffer.version}'
Note: /Users/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.3.4/android/src/main/java/io/flutter/plugins/firebase/core/FirebaseCorePlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: /Users/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.9.13+1/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/CloudFirestorePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.9.13+1/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/CloudFirestorePlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
✓ Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
Debug service listening on ws://127.0.0.1:52687/jx3pVGNV508=/ws
Syncing files to device SM G9650...

Si alguno le sale que el comando pod no ha sido encontrado,

Para MAC:

brew install cocoapods
brew cask install cocoapods-app

luego si les debe funcionar pero recuerden cerrar la terminal

para los que les da error el install pod file, vayan al archivo Podfile y debajo de flutter_ios_podfile_setup especifican la plataforma ios del emulador con la siguiente linea.

platform :ios, '15'

en mi caso el emulador de iphone tiene la version osx 15 pueden ir a settings/generals/about/ Software Version y alli les dice que version de osx tiene el emulador

Para el id se le debe quitar el com.example por que a la hora de compilar, te regaña con un:

It appears that your application still contains the default signing identifier.
Try replacing 'com.example' with your signing id in Xcode

Y usando una Mac m1 tuve que correr primero el comando:

$ arch -x86_64 sudo gem install ffi 

Presiento que no habrá curso de Flutter con xcode, será que xcode es incompatible para dart? alguien me puede aclarar esto de una vez? porque sinceramente pensaba en aprender xcode con flutter pero veo que no será así es decir he escuchado que es el mejor entorno de desarrollo que hay, ¿existe la posibilidad de usar Dart en xcode?

Recomiendo cuando hagan estos cambios tan criticos hacer un flutter clean dentro del directorio del proyecto ya que así te puedes evitar errores del entorno de programación (En mi caso Visual Studio Code)

En mi caso me toco crear el archivo Podfile.lock a partir del repositorio de github https://github.com/anncode1/Curso-de-Flutter-Avanzado-en-Platzi/tree/4.FirebaseiOS/ios

com.google.android.apps.messaging W/InstanceID: Instance ID SDK is deprecated, com.google.android.apps.messaging should update to use Firebase Instance ID

Ayuda por favor

Costó pero salió!, iOS ya conectado a firebase, aunque android nunca conecto, pero se que mas adelante funcionara.

yo no tengo una mac, como puedo emular mi aplicación para ios.!!!

No se que es eso pero igual la pagina de firebase no dice de que se haya conectado, aun esta cargando.

2020-03-30 15:04:06.571 6831-6851/com.anncode.platzitripsapp W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-03-30 15:04:06.580 6831-6831/com.anncode.platzitripsapp I/FirebaseInitProvider: FirebaseApp initialization successful
2020-03-30 15:04:08.363 6831-6855/com.anncode.platzitripsapp W/.platzitripsap: Verification of android.os.IInterface com.google.firebase.auth.api.internal.zzdw.createServiceInterface(android.os.IBinder) took 202.150ms
2020-03-30 15:04:08.370 6831-6855/com.anncode.platzitripsapp W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-03-30 15:04:08.834 6831-6855/com.anncode.platzitripsapp I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
2020-03-30 15:52:44.593 2601-2601/com.google.android.inputmethod.latin I/FirebaseJobDispatcher: onStartJob(): PeriodicContextualMetrics.
2020-03-30 15:52:44.603 2601-2601/com.google.android.inputmethod.latin I/FirebaseJobDispatcher: Task: PeriodicContextualMetrics successes.

En windows 10 , puedo abrir el entorno Xcode ?

si tenemos dispisitivo android este video lo omitimos? ademas me sale en gris la opción de flutter para la carpeta ios porque es eso

Ayuda! A alguien mas le pasa que ejecuta el smiluador para IOS, se abre normalmente, pero no aparece en el listado donde se selecciona en que simulador va a correr la aplicacion??

Genial! todo perfecto! 😉

Hola Estoy siguiendo el curso al pie de la letas. Hasta ahora todo al 100%, pero yo tengo Ubuntu. Como puedo identificar los datos para registrar el producto en firebase?

A alguien más le pasa que dura una eternidad en cargar la app al emulador?