7. TATETI APP
➤ La idea es desarrollar una versión multiplayer del famoso TaTeTi
🎮
➤ Necesitaremos:
➤ Login: Firebase Authentication.
➤ Almacenar y consultar las partidas: Firebase Realtime
Database.
➤ Habilitar/deshabilitar funcionalidades en forma dinámica:
Firebase Remote Config.
➤ Notificar a los usuarios: Firebase Cloud Messaging.
➤ Generar notificaciones server-side: Firebase Cloud Functions.
#AndroidDevsBSAS
8. SETUP BÁSICO DE FIREBASE EN EL PROYECTO
➤ Aplicar el plugin de Google Services modificando los archivos
build.gradle del proyecto y del módulo app.
➤ Crear el proyecto en la consola de Firebase.
➤ Descargar el archivo google-services.json y ubicarlo en
la raíz del módulo app.
➤ Agregar en el build.gradle del módulo cada una de las
dependencias de los servicios de Firebase que se quieran
utilizar.
#AndroidDevsBSAS
9. AUTHENTICATION
➤ Proporciona la posibilidad de crear y administrar usuarios a
través de los siguientes métodos de autenticación:
➤ E-mail y contraseña
➤ Redes sociales (Google+, Facebook, Twitter, etc)
➤ Se puede integrar en un layout propio o utilizando Firebase UI
(Beta)
➤ Resuelve las funcionalidades de “Confirmar e-mail” y “Olvidé mi
contraseña”
➤ Mantiene la sesión en el dispositivo y maneja los contenidos que
necesitan autenticación.
➤ Abstrae del almacenamiento de contraseñas.
#AndroidDevsBSAS
10. AUTHENTICATION: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-auth:
10.2.0'
➤ Configurar métodos de acceso aceptados en la consola de
Firebase.
➤ Personalizar las plantillas de correo electrónico.
➤ Implementar
➤ Registro de usuarios
➤ Confirmación de e-mail
➤ Inicio de sesión
➤ Olvidé mi contraseña
#AndroidDevsBSAS
11. REALTIME DATABASE
➤ Ideal para aplicaciones que cumplen con los requisitos:
➤ Multi usuario
➤ Colaborativas
➤ Real time
➤ Permite que la base de datos esté sincronizada entre todos los
usuarios.
➤ Admite caché para que la base de datos esté disponible offline.
➤ La base de datos se almacena en un árbol JSON.
➤ Los datos son nodos conformados por clave y valor.
➤ Se accede a una parte de la base de datos a través de un path (similar
a una URL).
#AndroidDevsBSAS
12. REALTIME DATABASE: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-
database:10.2.0'
➤ Clases para acceder a la base de datos:
➤ FirebaseDatabase
➤ DatabaseReference
➤ Escritura de datos: Push ID.
➤ Detección de cambios en la base: ChildEventListener.
➤ Deserialización de datos: DataSnapshot.
➤ Reglas de seguridad e índices.
#AndroidDevsBSAS
13. REMOTE CONFIG
➤ Necesidad de variar dinámicamente la aplicación.
➤ Cambiar la URL de un endpoint, deshabilitar un feature,
modificar la dificultad de un nivel del juego, no dejar
hardcodeado un texto en la app.
➤ Sin depender de hacer un nuevo release a producción.
➤ Tiempo y esfuerzo
➤ Procesos lentos
➤ Soft launch.
➤ A/B testing.
#AndroidDevsBSAS
14. REMOTE CONFIG: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-config:
10.2.0'
➤ Todas las acciones se hacen a través del objeto
FirebaseRemoteConfig
➤ fetch(long cache)
➤ activateFetched()
➤ Configurar valores por default
➤ Con un mapa o mediante XML
➤ Obtener valores
➤ instance.getBoolean(“key”);
#AndroidDevsBSAS
15. CLOUD MESSAGING
➤ En sus inicios, enviar notificaciones resultaba una de las cosas
más costosas de lograr.
➤ Servidores propios
➤ Gestión de tokens de dispositivos
➤ Necesidad de direccionar las notificaciones a un usuario, un
grupo de usuarios, o a todos los usuarios.
➤ Notificaciones programadas.
➤ A su vez, es necesario implementar del lado de la app cómo
manejar la recepción de esta notificación.
#AndroidDevsBSAS
16. CLOUD MESSAGING: IMPLEMENTACIÓN
➤ compile 'com.google.firebase:firebase-
messaging:10.2.0'
➤ Declarar e implementar un servicio que extienda de
FirebaseMessagingService
➤ Suscribirse a los tópicos que corresponda
➤ Enviar notificaciones push, desde la consola web, con un
request HTTP o utilizando Cloud Functions
#AndroidDevsBSAS
17. CÓMO SIGO?
➤ La documentación oficial está en:
https://firebase.google.com/docs/android/setup
➤ El canal de Youtube es:
https://www.youtube.com/user/Firebase
➤ El código de TaTeTi está en Github:
https://github.com/maribelmai/tateti-firebase
#AndroidDevsBSAS