Continuado con la intención de seguir los CodeLab de Firebase, vamos dedicar este post a comentar las experiencias con el CodeLab de Firebase para iOS. Este post es la versión Swift.
El CodeLab que seguimoes es el sigueinte Firebase iOS Codelab Swift (starter) {:target=”cdlios”}
Hay algunos prerrequisitos que hay que complir, como tener el Xcode, el CocoaPod, pero lo que es nuevo para el desarrollador de iOS es que hay que [configuar iOS para Firebase] (https://firebase.google.com/docs/ios/setup){:target="cdls"}
Comencemos
Directorio de trabajo:
/Users/pabloin/Desktop/NoCuestaNada/Mob/GitHub-tmp/googlesamples/firebase/friendlychat
#Utilizamos:
/Users/pabloin/Desktop/NoCuestaNada/Mob/GitHub-tmp/googlesamples/firebase/friendlychat/ios-starter/swift-starter
Clonamos el proyecto:
Obervemos que cuando clonamos el proyecto, nos baja todas las versiones de clientes de Firebase: O sea, versiones WEB, iOS objective c, iOS swift, Android:
En este post, utilizamos los de swift: swift y swift-starter
La diferencia, es que el “start” tiene el código de inicio, y que nos permite a nosotros agregarle más código a medida que avanzamos con el CodeLab.
Paso 01: Instalamos Cocoa y CocoaPod
Este es uno de los primeros requisitos:
¿Que son los pod? En dos palabras, los pod son un gestor de dependecias para proyectos del framework Cocoa en iOS y Swift. Mas info en https://cocoapods.org/ y wiki Cocoa
Para instalar Cocoa. tengo que ejecutar:
Paso 02: Ejecutamos pod update sobre el proyecto Firebase
Vamos al directorio ios-starter/swift-starter y ejecutamos pod update
Luego ejecutamos según el Codelab
Me dio el siguiente error:
Lo cual solucioné, ejecutando manualmente el Git con lo siguiente:
Con lo que finalemnte anduvo ok, ejecutado dentro del directorio … friendlychat/ios-starter/swift-starter
Los paquetes que instalo, son los enumerados en Podfile
Con este paso, sabemos que cumplimos con el primer requerimiento de tener instaldo Cocoa y CocoaPod
Paso 03: Compilamos la aplicacion
Con el Xcode abrimos el proyecto FriendlyChatSwift.xcworkspace:
Que nos permite abrir y compilar la aplicación:
Paso 04: Create Firebase console Project
El proyecto FriendlyChat de Firebase ya lo había creado cuando segui el CodeLab de la parte web.
El proyecto FriendlyChat estaba creado:
Seleccionamos iOS integración.
Agrgamos el bundle y el ID:
Teneoms que copiar el GoogleService-Info.plist dentro del Xcode:
El siguiente paso, por ahora no lo ejecutamos:
Continuamos con el copiado del archivo GoogleService-Info.plist al Xcode:
El archivo esta agregado:
Chequear que esté el import Firebase en AppDelegate.swift, FCViewController.swift:
Esta el import en FCViewController.swift
Y tenemos que agregar la siguiente linea de codigo en AppDelegate.swift que configura Firebase, siguendo lo que dice en: GoogleService-Info.plist a
¿Podemos finalizar el wizard que había quedado pendiente en Firebase? … si, podemos:
De esta forma vemos que en Firebase tenemos el registro de la aplicación de iOS
Paso 05: Reglas de Acceso a la aplicación:
En la consola de Firebse, agregamos las restricciones:
Vamos a la sección de Database:
Las reglas (y el simulador):
Paso 06: Firebase Authentication
De nuevo, vamos a la consola de Firebase para configurar la autenticación, pero habilitamos autenticación por mail (recordemos que en el CodeLab de la parte web la autenticación fué por Google):
agregamos el pod ‘FirebaseAuth’
duda: ¿No sera pod ‘Firebase/Auth’… creo que hay un error de tipeo? Respuesta: Si miramos el proyecto swift en vez del swift-starter vemos que efectivamente es un error de tipeo.
Paso 07: Pausa - Ejecutamos el proyecto finalizado
Vemos a ejectuar la versión finalizada del proyecto: O sea swift en vez del swift-starter
Creo que este es un buen momento para hacer esto, porque ya está configurada la consola de Firebase.
Lo unico que tenemos que ajustar son dos cosas: GoogleService-Info.plist y la dirección dada por Firebase
Y vemos el resultado, que efectivamente la aplicación levanta:
Se ve en la aplicación finalzada,
- La publicidad AdMob
- La Autenticación, etc.
Observemos como parte de los chats ingresados, quedan cargados dentro de la plataforma Firebase:
También están las imágenes subidas como adjuntos:
De esta manera, damos por cerrado el post.
- CodeLab (11) ,
- GoogleSamples (11) ,
- Android (13) ,
- Firebase (4) ,
- iOS (4) ,
- swift (1) ,
- FriendlyChat (4)