
Descubre si este curso es para ti antes de comenzarlo.
Mira quien será tu instructor a lo largo del curso.
¿De que trata la sección? Descubrelo aquí.
Como descargar e instalar Android Studio en su última versión.
Guía paso a paso sobre la instalación de Android Studio en Mac OS, Catalina.
Creación de un nuevo proyecto paso a paso y testeo de la misma en el emulador AVD para corroborar que tengamos todo instalado y funcionando a la perfección.
Clase actualizada.
Creación de un nuevo proyecto paso a paso y testeo de la misma en el emulador AVD para corroborar que tengamos todo instalado y funcionando a la perfección.
Se conserva por consejos a errores que sucedieron durante esta clase.
Opcional: Aprende a ejecutar una app en dispositivos reales.
Breve y concisa explicación de Firebase.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Como añadir Firebase a un proyecto Android y aprender a leer datos en tiempo real.
Clase actualizada a finales de 2019.
Como añadir Firebase a un proyecto Android y aprender a leer datos en tiempo real.
Se mantiene la clase para los estudiantes que conserven proyectos antiguos.
Diseñar paso a paso la interfaz que nos permitirá mas adelante enviar datos a nuestro servidor de Firebase.
Aprende como añadir la librería de butterknife a un proyecto de android y a instalar un plugin para un desempeño mas eficiente en su uso.
Es momento de ver como escribir información en nuestro servidor remoto de Firebase, todo en tiempo real.
Revisemos que hemos aprendido hasta ahora y que se viene mas adelante en el curso.
Mira que temas nuevos se tocarán en esta unidad y que podremos hacer al final de la misma.
Descubre un poco más sobre que es Realtime Database.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Nuevo proyecto de tipo listado para explorar las características de Realtime Database de Firebase.
Diseño de la interfaz de usuario para añadir nuevos elementos a nuestro listado.
Insertar datos en Firebase, pero en esta ocasión veremos como enviar un objeto completo en lugar de un dato primitivo.
En esta clase aprenderemos como solicitar y recibir adecuadamente un arreglo de objetos del mismo tipo en Firebase.
Es turno de aprender como actualizar un elemento y reflejarlo en la app instantáneamente, así mismo recibir el evento de eliminar.
En esta clase se aprenderá a eliminar un elemento remoto de Firebase pero desde Java.
Introducción a un nuevo tipo de lectura para Firebase, y diseño de un menú siempre visible.
Finalmente aprenderemos la tercer forma de consultar datos en firebase, es decir, para los casos donde no necesitamos de un refresh en tiempo real.
Debido a las peticiones de muchos alumnos, he creado una clase extra a modo de bonus, para ver como utilizar la consulta única para llenar un Spinner, además de utilizar esto mismo para actualizar los nombres o comidas del listado principal.
Continuación sobre como utilizar realtime database para alimentar un spinner y actualizar un objeto en firebase basándonos en su key.
Fin de la sección, veamos que aprendimos.
Revisión breve sobre los temas y el objetivo de la sección, además de una vista previa a la aplicación final.
Conoce en que consisten las notificaciones push de FCM y que beneficios nos dan.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Preparación de un nuevo proyecto que nos permita mas adelante poder recibir y manipular las notificaciones desde Firebase Cloud Messaging.
Actualización a la última versión estable de FCM y su consola.
En esta clase vamos a aprender como crear una notificación de forma manual, y mostrarla en nuestra bandeja de notificaciones del sistema.
Aprende a enviar y recibir tu primer Notificación remota desde Firebase Cloud Messaging. En esta clase exploraremos como hacerlo en el modo masivo, es decir, enviaremos una notificación a todos los usuarios que tengan nuestra app instalada.
Creación de un servicio para recibir y procesar la notificación enviada por FCM en primer plano, y mostrarla en el dispositivo.
Enviar notificaciones push a un dispositivo de forma puntual.
Diseñar la vista para administrar las suscripciones a las cuales posteriormente se podrán añadir o quitar múltiples usuarios.
Es turno de aprender como enviar notificaciones masivamente pero solo a ciertos grupos de usuarios.
Implementamos un sistema de control para los topicos a los cuales se están suscribiendo los usuarios de forma interna e individual.
Funciones extra de la sección que nos ayudarán a tener disponible el tokenId siempre que lo necesitemos. Poder setear los valores por default de una notificación que sea recibida por la bandeja del sistema y configurar y probar los casos de uso fundamentales con respecto al Channel ID.
Fin de la sección, veamos que hemos aprendido.
Vamos a listar todos los beneficios que aprenderemos en esta sección, y vaya que son muchos.
¿Mira cómo funciona Cloud Storage?
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Nuevo proyecto destinado a explorar las herramientas poderosas que nos ofrece Firebase Storage para administrar nuestros archivos en la nube.
Creación de iconos, diseño de la interfaz principal y la correcta vinculación con butterknife.
Declaración y breve introducción a variables y constates ocupadas a lo largo de la app Mis Fotografías.
Ahora es turno de aprender como seleccionar una imagen guardada en nuestra galería del dispositivo y poder visualizarla en nuestras aplicaciones.
Subir una imagen seleccionada desde la galería de nuestro teléfono a FirebaseStorage y adicionalmente registrar la url de descarga en ReatTime Database.
En esta clase aprenderemos a remplazar una imagen subida a nuestro servidor y a eliminarla. Se tomarán detalles para una buena experiencia de usuario y buenas practicas.
Hagamos una pausa y aprenderemos a utilizar la librería Glide para la carga de imágenes remota.
Vamos a cargar la foto subida a Firebase Cloud Storage desde 2 formas, con Storage y con RealTime Database.
Captura una imagen directamente desde la cámara de un dispositivo android y recupera la imagen en su versión miniatura que sirve para previsualizar la fotografía
Paso a paso veremos como obtener la fotografía tomada con nuestra cámara a tamaño completo y procesarla para que este disponible para subir a Cloud Storage.
Creación de 2 nuevos emuladores para ejecutar y probar nuestra app en el api nivel 21 y 23(lollipop y marshmellow respectivamente).
En esta clase aprenderemos como solicitar y procesar la respuesta de un permiso que nuestra app necesite para funcionar, en este caso nos enfocaremos al permiso de almacenamiento pero dejaremos todo preparado para solicitar mas permisos con buenas practicas.
Actividades practicas de la sección para ejercitar tus conocimientos.
Veamos todas las cosas que hemos aprendido en esta sección y sigamos aprendiendo.
Vamos a ver que temas y objetivos tenemos para esta gran sección.
En esta clase veremos cual es el objetivo de este servicio de Firebase y de que forma nos conviene implementarlo.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Creación de un nuevo proyecto y también del diseño de la vista principal.
Añadir dependencias de FirebaseUI Auth y configurar los primeros requerimientos para unas buenas practicas.
Aquí vamos a ver como crear un nuevo emulador con AVD Manager y que este contenga la Play Store y de esta forma instalemos la app oficial de Facebook que en las siguientes clases nos ayudará a probar dicho proveedor de autenticación.
Inicio de sesión con correo y contraseña para utilizar a Firebase como primer proveedor.
Extraer y mostrar el nombre del usuario, su correo electrónico y el proveedor con el cual inició sesión.
Cierre de la sesión actual en Firebase y limpia de datos antes mostrados para un correcto flujo de trabajo.
Alta como desarrollador en Facebook Developers y creación de App para autorización y habilitación de Facebook como proveedor en FirebaseUI
Configurar el nuevo proveedor de Facebook y añadir roles para usuarios de prueba.
Es hora de poner tus conocimientos a prueba. Intenta seguir el objetivo aquí descrito en la clase.
Como cambiar la imagen de perfil a un usuario logueado con Firebase Auth.
Adición y creación de recursos para la personalización de la interfaz de FirebaseUI Auth.
Personalización de los colores, logo, icono de la app y una nueva y moderna forma de mostrar la imagen de perfil del usuario.
Un nuevo reto para poner a prueba tus habilidades... A por todas!
Paso a paso como habilitar un proveedor más: Google+
Ahora toca personalizar la vista de inicio de sesión, de una forma más avanzada, esto gracias a la nueva versión de FirebaseUI Auth.
En esta clase Bonus veremos como mostrar el porcentaje y el progreso en una TextView y un ProgressBar respectivamente.
Nuevo método para subir una imagen, en este caso un array de bytes, y con un procesamiento de imágenes, previo a la subida de Storage.
En esta clase extra, vamos a ver como habilitar y autenticar un usuario, por medio de su teléfono real.
Aquí se mostrará paso a paso como utilizar un emulador para probar la autenticación por teléfono en Firebase Authentication.
Conclusiones sobre lo aprendido en la sección.
Veamos el listado de temas y objetivos para esta sección.
Teoría base del como funciona Remote Config y en que aplicaciones es funcional.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Creación de un nuevo proyecto destinado a explorar el servicio de Remote Config de Firebase.
Crear un nuevo dispositivo virtual con AVD para probar nuestra nueva app que estará enfocada en Tabletas.
Rediseño de la vista principal para incluir un formulario de solicitud de turno y adaptado a la vista de una tableta.
Añadiendo los valores predeterminados de forma local en nuestra app.
Agregar el servicio RemoteConfig a nuestro proyecto e inicializarlo correctamente.
Publicar los valores a los parámetros remotos que determinarán el aspecto y comportamiento final de nuestras aplicaciones.
Aplicación de los valores y primer vistazo al funcionamiento completo de RemoteConfig.
Pon a prueba tus habilidades y realiza esta actividad práctica.
Solución a la actividad práctica anterior sobre como traer los colores también de forma remota con Remote Config.
Avancemos un nivel más y veamos como implementar valores diferentes dependiendo del tipo de dispositivo con su región y sistema operativo.
Instrucciones sobre como condicionar el mensaje principal con Remote Config para el idioma ingles.
Mejorando la experiencia del usuario para nuestra aplicación Soporte Técnico.
Repaso breve de que aprendimos y de que sigue en el curso.
Introducción a los temas y objetivos de la sección. Descubre de que va.
Teoría base para la comprensión de MVP, Singletón y el principio de responsabilidad única.
Instrucciones y aclaraciones para el uso de versiones con respecto a las más actuales y las grabadas en el curso.
Creación de una nueva app y adición de dependencias necesarias en la sección.
Diseño más avanzado con backgrounds desvanecidos y uso de recursos en todas las propiedades.
Definición de la clase POJO con anotaciones para Firebase.
Creación de un adaptador con mejores practicas que incluyen los eventos de click delegados a la clase ViewHolder personalizada, la creación de la interface auxiliar, creación de recurso string con parámetros y como alimentarlos correctamente.
Descripción y función de la librería EventBus.
Creación de las vistas(interfaces) de cada capa de MVP y el objeto Event para la librería EventBus.
Como distribuir las clases creadas hasta el momento, dentro de carpetas que ayuden a MVP y su modularización
Explicación del patrón de diseño Singleton a través de una actividad práctica donde haremos una única referencia a nuestra Realtime Database.
Definición de una interface auxiliar para los eventos de ChildEventListener y configuración de nuestro acceso a datos en el modulo main.
Continuación de la definición de nuestra clase de dataAccess.
Análisis sobre las sutiles pero importantes diferencias entre un listener y un callback.
Implementación de nuestro interactor(Model). Uso de la sobrecarga para el posteo de eventos.
Implementación de nuestro presenter y con un dato muy importante para que la librería EventBus termine de funcionar correctamente.
Implementación de nuestro View y la interface OnItemClickListener personalizada.
Crear métodos con un nivel más optimizado dentro de nuestro adaptador y primeras pruebas del funcionamiento básico de nuestro CRUD.
Incluyamos la opción de eliminar un producto de nuestro listado pero con buenas practicas que mejoren la experiencia del usuario.
Nuevo modulo para añadir productos, en esta clase veremos como diseñar la vista deseada.
Dieño paso a paso de la Vista en nuestro modelo MVP.
Creación y configuración de archivos esenciales para el MVP
Diseño de los contratos para las capas del Presentador y el Interactor.
Vamos a diseñar nuestro acceso a datos por parte del nuevo modulo Add. Así mismo se reestructura la API raiz y el modulo main.
Implementación de nuestro interactor para el modulo Add.
Implementación de nuestro presentador para comunicarnos con nuestra vista y el presentador.
En esta clase cambiaremos nuestro simple Fragment, a un DialogFragment que nos permita lanzar la vista para añadir un nuevo producto de una nueva e interesante forma.
Implementación de nuestra View en el DialogFragment de alta de productos.
Instrucciones sobre como validar datos. Pon a prueba tus conocimientos.
Solución a la actividad práctica para almacenar y validar los datos del producto.
Vamos a definir reglas de seguridad un poco más avanzadas para validar que un dato cumpla con un cierto valor, así como de restringir la lectura de los datos o la eliminación de los mismos con diferentes modos.
Diseño de la interfaz para el nuevo modulo del detalle.
Preparación de nuestro fragment del detalle, para un correcto funcionamiento.
Análisis y diseño de la Vista.
Configuración previa al presenter e interactor, con la creación de el objeto Event y un callback para el interactor y el dataAccess
Definición de los métodos que componen los contratos del Presentador y el Interactor.
Creación de nuestra clase auxiliar que se conectará a firebase.
Implementación del interactor dentro del modulo Detail.
Paso a paso veremos como implementar el presenter del modulo detail.
Implementación paso a paso para la View del modulo Detail, hacia nuestro fragmento.
Añadimos el evento final para el botón "Save", validamos datos y comprobamos que todo este funcionando en la actualización del producto.
Conclusiones finales de lo aprendido en este sección.
Breve vistazo a los temas que se tocarán dentro de la sección.
Creación de un nuevo proyecto para nuestra app de tipo Whatsapp/Telegram.
Adición y modificación del uso de las dependencias en nuestro Gradle.
Diseño de la vista en xml para la pantalla de login.
Definición de nuestro patrón de diseño MVP, para nuestro modulo de login.
En esta clase aprenderemos a implementar la autenticación de Firebase con el patrón de diseño MVP y Singletón.
Terminaremos de definir las clases Pojo y Event para User y LoginEvent respectivamente.
Definiremos la raíz y la instancia propia del modulo para el acceso a datos por parte de Realtime Database.
Implementación del interactor para nuestro modelo en el modulo Login.
Implementación del Presenter en nuestro modulo de Login.
Implementación de la View en nuestro modulo de Login.
Aquí veremos como lanzar la actividad principal siempre y cuando tengamos una sesión activa, así mismo haremos los pasos requeridos en la consola de Firebase para nuestro nuevo proyecto, tanto en Authentication como Realtime Database.
Como parte de mi compromiso con el curso, vamos a ver en una clase extra, como mejorar una validación para un getter, el cual provocaba un error después de autenticarse con Firebase Auth.
Diseñaremos la interfaz del usuario en xml para el modulo Main, esto consta de 2 listados, un botón y una barra de estado.
Diseño de la vista para el listado de las solicitudes de amistad.
Diseño de la vista para el listado de los usuarios que ya hemos aceptado y con los cuales podemos ver cuantos mensajes sin leer hay.
Definición de las interfaces que nos ayudarán a estructurar nuestras capas de MVP para el modulo Main.
Creación de archivos necesarios para el DataAccess y el Interactor.
Crear la clase que nos permitirá el acceso a datos referentes a la autenticación.
Primera parte del acceso a datos por parte de RealtimeDatabase para suscribirse a los listados de usuarios y solicitudes de amistad.
Segunda parte de este acceso a datos con RealtimeDatabase, aquí se codificará el correo electronico para poder ser utilizado como "key" en Firebase. También se plantea la desuscripción de los elementos antes conectados.
Tercer y última parte para la construcción de el acceso a datos por parte de Realtime Database para el remover un contacto, aceptar o rechazar una solicitud y más.
Implementación del interactor y solución definitiva al problema de cambiar el estado del usuario conectado cuando se presentan problemas críticos.
Implementación del presentador para el modulo Main en donde controlaremos las peticiones y respuestas del resto de nuestro MVP.
Creación del adaptador para el listado de solicitudes de amistad.
Creación del adaptador para el listado de usuarios aceptados(amigos).
Adición de métodos necesarios para la correcta configuración del modulo Main dentro de su actividad.
Implementación del presentador en la actividad principal.
Mejoramos la experiencia del usuario para el evento de eliminar amigo y a su vez implementamos el código necesario para un correcto cierre de sesión.
Clase extra en donde vemos como añadir un dialogo para conocer un poco más acerca de nuestra aplicación.
Creación de un nuevo modulo, junto con el diseño de la vista principal y un par de configuraciones iniciales de la actividad y la estructura de paquetes.
Definición de las 3 capas del MVP para el modulo Add.
Clase diseñada para el único método del modulo, en el cual aprenderemos a registrar la solicitud de amistad.
En esta clase terminaremos de crear el evento del modulo Add y a su ves aprovecharemos para implementar el interactor.
Ahora es turno de implementar el presentador para el modulo Add.
Configuraciones necesarias antes de implementar la vista.
Implementación de la vista en nuestro Fragmento del modulo Add.
Ejecución de la app y últimos ajustes para corroborar que el envío y aceptación de amistad funciona.
Creación de un nuevo modulo, en esta ocasión se trata del perfil del usuario y además vamos a diseñar la vista principal en XML.
En esta clase veremos como definir el Modelo, Vista y Presentador para el modulo del perfil de usuario, el cual parece sencillo pero sus procesos internos nos obligarán a implementar métodos extras para un correcto flujo de trabajo.
Configuraremos la clase Event y aprovecharemos para definir 3 interfaces que nos servirán para el DataAccess y el Interactor.
Acceso a datos por parte de Authentication para actualizar el nombre y url de la foto del perfil del usuario en Firebase.
Creación del Patrón Singleton para el acceso a datos por parte de Storage y a su vez, definición de la clase propia para el modulo Profile.
En esta clase vamos por nuestro último y más grande acceso a datos del modulo Profile, en donde nos conectaremos a RealtimeDatabase.
Implementación del interactor para gestionar los 3 accesos a datos por parte del modulo Profile, en esta clase veremos como trabajar con 3 servicios diferentes de Firebase, RealtimeDatabase, Authentication y Storage.
Implementación del presentador para el envió y recepción de respuesta hacia el interactor y/o view.
Ahora tenemos que dejar preparada la actividad principal del modulo para su posterior implementación de la Vista.
Implementación parcial de la View en nuestro modulo Profile debido a una gran carga de código que este necesita para los diferentes escenarios y por implementación de nuevos y mas eficientes procesos.
Creación del dialogo con la previsualización de la fotografía seleccionada para su confirmación a subir y remplazar la imagen de perfil.
Pruebas finales con corrección de código y ajustes para probar las funciones del modulo.
Vamos a optimizar el código del modulo Profile, ya que ahora el contexto no es un requisito como en anteriores versiones de Cloud Storage.
Primera parte del diseño para la vista principal del modulo Chat.
Segunda parte del diseño principal, aquí veremos la vista para el adaptador y finalizamos la vista principal.
Definición de los métodos para las 3 capas de nuestro patrón de diseño MVP en el modulo Chat.
Interfaces de tipo Listener que serán de gran utilidad en el acceso a datos y el interactor, así como de terminar de definir a ChatEvent.
Construcción de la clase delegada a conectarse y subir la imagen enviada por medio del chat, así como de conseguir la url de descarga.
Primera parte de la construcción de métodos para RealtimeDatabase en el modulo Chat.
Continuación del acceso a datos con RealtimeDatabase para el modulo Chat, en el cual trabajaremos la suscripción al estatus del amigo conectado, así como de tratar los mensajes no leídos y el envío de mensajes o imágenes a la base de datos.
Implementación del interactor a el modulo Chat.
Implementación del Presenter en nuestro modulo Chat.
En esta primer mitad del adaptador haremos lo necesario que normalmente definimos, pero omitiendo el onBindViewHolder().
Condiciones para la vista personalizada que muestra un texto o una imagen, la cual también cambia dependiendo de quien la envía y si es o no, de forma consecutiva.
Configuraciones iniciales para la barra de estado, el adaptador, el recyclerVew y otros métodos a sobreescribir, necesarios para el funcionamiento de la Activity.
Implementación de la vista en el modulo chat, también preparamos el adaptador para recibir mensajes.
Pruebas para el envío de imágenes y reconfiguraciones extras para tal objetivo.
Enviar una imagen a Storage e insertar su link de descarga en Realtime Database.
En esta clase se corregirán 4 bugs, el background de la imagen, el progressBar que no se oculta, la actualización del estado en el chat y el incremento a los mensajes no leídos.
Como hacer zoom en una imagen enviada a través del chat.
Habilitaremos la persistencia de datos para RealtimeDatabase.
Un pequeño resumen para una sección tan grande.
Un pequeño vistazo a lo que veremos en la sección, y vista previa del resultado final.
Declaración de lineas previas a la implementación de las notificaciones push, dentro de nuestra app Texting.
Configuración básica para la utilización de la librería Volley.
En este vídeo vamos a ver breve mente cual y porque elegiremos un protocolo de comunicación con los servidores de FCM.
Aquí veremos como crear una cuenta gratuita para alojar nuestros scrips en un servidor confiable.
Como subir y administrar nuestros scripts en el servidor gratuito.
Descripción de los scripts de PHP para el envío de notificaciones con el protocolo heredado de HTTP.
Crearemos una clase para el acceso a datos remotos, a través de los scripts alojados en nuestro servidor de php, todo esto con la librería Volley.
Acceso a datos con Cloud Messaging para implementar las notificaciones en la app Texting.
Ahora que tenemos el acceso a datos para el servicio de notificaciones, necesitamos establecer los detonantes para la suscripción y desuscripción.
Últimos ajustes a nuestro interactor del modulo Chat, para enviar la notificación. Con sus respectivas pruebas.
En esta clase veremos como enviar notificaciones push con un objetivo en especifico, el de abrir una Actividad que le indiquemos.
Vamos a comprobar antes de lanzar una solicitud a Firebase, si el dispositivo tiene o no, Internet.
En esta clase se explicará como utilizar a fondo la librería de MaterialShowCase para presentar un tutorial al inicio de nuestra app, y de esta forma poder establecer como y para que se usa nuestra app Texting.
En esta clase aprenderemos como verificar si una ruta u objeto, se encuentran registrados en nuestra base de datos de Realtime Database.
Es momento de validar y notificarle al usuario, en el caso de que intente enviar la solicitud de amistad, 2 o más veces.
Re-adaptación de nuestro MVP para que se muestren los nuevos mensajes, que especifiquen la razón de porque no se envió la solicitud de amistad.
Conclusiones de lo aprendido en esta segunda sección de FCM.
Se un experto utilizando Firebase en tus aplicaciones Android de una manera sencilla y concisa. Paso a paso desde cero hasta que programes como los profesionales con patrones de diseño como MVP, Singleton o el uso de SRP,(Principio de Responsabilidad Única), este curso se imparte en Android Studio y Java.
Aquí un pequeño listado de lo que aprenderás:
Instalar y configurar el entorno de desarrollo(Android Studio, plugins, Emulador AVD, etc...)
Conocer que es Firebase y como usar sus herramientas en apps para Android.
Leer/escribir en una base de datos NoSQL en tiempo real(Realtime Database).
Utilizar la nueva y más potente base de datos NoSQL para Firebase(Firestore).
Enviar y recibir Notificaciones Push(Firebase Cloud Messaging y PHP).
Subir, borrar o actualizar imágenes en la nube(Cloud Storage).
Iniciar sesión con redes sociales(email/password, Facebok, Google+) con FirebaseAuthUI.
Mejores practicas en Firebase y Android en general.
Controlar remotamente la interfaz y comportamiento de una app(Remote Config)
Extracción y analisis de datos de nuestra app y los usuarios(Google Analitycs for Firebase).
Utilizar la cámara y procesar la imagen en tamaño real.
Conceder los permisos necesarios en las diferentes versiones de Android(Marshmellow o superior).
Dominio del Patrón de diseño MVP
Usar el Patrón de diseño Singleton
Implementar correctamente el Principio de Responsabilidad Única(SRP)
Material adicional(tips, trucos, bonos, etc...).
Aplicación tipo Chat con envió de texto, imágenes, notificaciones, estados y más.
¿No estas convencido? Mira las primeras clases de forma gratuita y decide si quieres subir tu nivel de conocimientos, soy un profesor comprometido y soy un fiel promotor de las buenas practicas para el desarrollo profesional, mis más de 76,000 estudiantes me respaldan.
Estoy cociente del valor de tu tiempo, así que las clases son sustancialmente enfocadas a la practica y directo al grano. A través de ejemplos sencillos y aplicaciones reales, tendrás las herramientas necesarias para comprender los conceptos y a plasmar tus propias ideas; y claro, siempre estoy atento a resolver todas las dudas a la mayor brevedad. En adición a las clases, el curso cuenta con actividades practicas que tienen su vídeo en un servidor externo(youtube), este tipo de clases son minutos y minutos extras que no se cuentan en el total de horas que Udemy muestra.
Este curso también lo haces tú, si si, hablo en serio y me explico, estoy dispuesto a escucharte atentamente y a tocar no solo los temas que yo considero vitales para tu formación, si no que también tomo en cuenta lo que mis estudiantes me piden ver o profundizar. De esta manera el curso se va enriqueciendo con material extra que a todos nos gusta, así que te aliento a participar y dejar comentarios, dudas o sugerencias que mejoren tu aprendizaje.
¿Que hay del instructor? ¿Será bueno en lo que hace?
Es una pregunta importante y me gustaría aclarar eso de forma rápida, tengo más de 8 años dedicado al desarrollo profesional y más de 6 años son especializados en el sector móvil, concretamente en Android. Tengo más de tres años enseñando en Udemy y con resultados muy buenos tanto en el numero de estudiantes, como en las calificaciones que me otorgan. Haciendo un resumen de mi formación, debo decir que son Ingeniero en Sistemas Computacionales con especialidad en Desarrollo de software y cuento con certificaciones en Android, mi carrera laboral comenzó en 2012 y desde entonces no he parado de aprender y seguir actualizado.
¿De que serás capaz al final del curso con las herramientas de Firebase?
Con Realtime Database
Conectar aplicaciones a la nube de Firebase para leer datos en formato JSON, desde propiedades, objetos y arreglos. Tendrás la capacidad de escribir y consultar en tiempo real, y reflejarlos en interfaces puntuales o listados de objetos y por supuesto, las operaciones CRUD básicas para crear, leer, actualizar y eliminar.
Con Firestore
Crear aplicaciones completas con MVP, que podamos comparar y apreciar de forma clara, las equivalencias con respecto a Realtime Database, además claro, de poder probar aquellas diferencias y aprovechar las ventajas que nos ofrece esta nueva y más potente base de datos, que fue pensada para aplicaciones con crecimiento masivo. Sabrás elegir entre una y otra, dependiendo de tus necesidades.
Con Firebase Cloud Messaging
Enviar push notifications personalizadas desde la consola de Firebase y recibirlas de 2 maneras en Android, con servicios propios o a través de la bandeja del sistema. Aprenderás a usar los canales de filtración implementados a partir de Android Oreo 8.0 y a enviar notificaciones por dispositivo, por grupo o masiva(todos quienes tengan la app instalada).
Con Cloud Storage
Tener la capacidad de consultar y visualizar una imagen proveniente de Internet, a su vez claro esta, la habilidad de subir imágenes seleccionadas directamente de la galería o fotografías tomadas con la cámara del dispositivo Android. Posibilidad de eliminar o actualizar una imagen en la nube desde una interfaz propia.
Con Firebase Authentication
Posibilidad de registrar y autenticar usuarios ya sea con el medio convencional(correo/contraseña), o con redes sociales tales como Facebook y Google+. Aprenderás a cargar los datos del usuario y a cambiar la imagen de perfil del usuario. Además de darte de alta como Facebook Developer.
Con Remote Config
Tendrás el poder de modificar una aplicación de forma remota, gratis y con el menor impacto en el consumo de recursos. Condiciona los valores remotos dependiendo del idioma, region o tipo de sistema operativo del usuario final. Elimina la fragmentación en las actualizaciones de Google Play y ofrece una forma amigable de aplicar los cambios con el usuario.
Extras
Librerías para la vinculación de vistas(butterknife), tratado de imágenes(Glide), Imágenes circulares(CircleImageView), Comunicación avanzada entre clases(EventBus), plugins para Android Studio(Zelezny), permisos en Android, buenas practicas, y mucho más...
En fin... más temas vienen en camino que agrupen varios temas que han de trabajar en conjunto y con una codificación correcta con MVP, Singleton y SRP, con los cuales haremos que nuestros códigos sean eficientes, escalables y sostenibles.
El curso incluye una app grande, con múltiples módulos que muestra como crear aplicaciones grandes y muestra como resolver los problemas que lleva el trabajar con varios servicios y recursos dentro de una app. La app se llama Texting, y es de tipo Chat en tiempo real, el cual nos permite iniciar sesión con redes sociales, enviar solicitudes de amistad, gestionar un perfil de usuario, enviar texto o imágenes en un chat, enviar notificaciones push con PHP y muchas cosas más.
Sin más que decir, te invito a tomar acción y cumplir esos objetivos que tienes en mente. Adquiere el curso hoy mismo, supérate y aprovecha esta gran oportunidad para lograr tus metas. Te veo en clase!
El éxito es de aquellos con el valor de superarse así mismos cada día, de los que dan el primer paso aún sin estar seguros de lograrlo.
Un cordial y amistoso saludo.
Ing. Alain Nicolás Tello.