
Presentamos qué vamos a estudiar, el requerimiento minimo es "ser programador Android" o tambien un "Tester QC mobile". Presentacion de Mariano Salvetti como docente, y explicación de porqué soy el más adecuado para dar este curso. Dejaremos en claro las espectativas del curso y lo que van a poder realizar al finalizar, tanto programador como tester.
Juntos vamos a repasar cómo es la plataforma Udemy y qué beneficios tiene para los alumnos.
Planificar tiempos de dedicación, realizar la ejecución de los ejemplos, realizar preguntas y participar son los puntos claves para realizar el curso y aprovecharlo al máximo.
¿Por qué tomamos metricas de performance? ¿qué cosas nos indican que estamos en problemas de rendimiento?
Recolectar información, tomarse el tiempo de entender qué significa para nuestra app la salida de la herramienta, y por último tomar acción para optimizar!
Realizamos un recorrido por las herramientas que vamos a estudiar, estas son: las Developer Options para Overdraw, el analisis de Jerarquias de UI, la GPU rendering Tool, el Memory Profiler, Leak Canary y R8.
Presentamos el código fuente desde un archivo adjunto y donde encontrar el código de ejemplo, según la sección.
Vamos a habilitar las Opciones para desarrolladores y realizamos un recorrido por las principales herramientas que tenemos disponible, como lo es la depuración por USB, el 'modo presentacion de la UI' y otras más.
Revisamos los puntos más importantes de este primer capitulo, como breve introducción a las siguientes secciones.
¿Cuantas veces se dibuja un pixel en pantalla por frame? ¿como impacta eso en la app al usarla? ¿Còmo tomar la evidencia? estas preguntas y otras más son las que vamos a responder en esta seccion del curso.
¿Cuantas veces se dibuja un pixel en pantalla por frame? ¿como impacta eso en la app al usarla? Cómo es la escala de colores que utiliza Android para el redibujado.
Activamos las 2 herramientas mas importantes de la seccion: Debug GPU Overdraw y LINT.
Repasamos como es el Dibujado por pantalla, luego vamos comparando nuestro renderizado, con los colores del Overdraw, a medida que vamos agregando "capas" de UI.
Como proceso de aprendizaje, creamos una aplicación básica de 3 vistas, ejecutamos en un emulador con el DEBUG GPU Overdraw activado, y comparamos la evidencia con la tabla de colores.
Revisemos las estretegias para minimizar el Overdraw de cada pantalla.
Resolvamos nuestro 1er ejemplo de una app con Overdraw.
Revisemos 3 aplicaciones Android basicas, simples y reales, que contienen muchos niveles de Overdraw, y acá tenemos la oportunidad de mejorar las pantallas.
En este proyecto, el escenario es tal que en la parte superior de la pantalla se muestra primero una ProgressBar y después de 7 segundos se carga la imagen, y también en la parte inferior de la imagen hay un RecyclerView con algunas tarjetas.
El objetivo del ejercicio: Nuestro objetivo es reducir el redibujado en la GPU tanto como sea posible, en otras palabras, reducir el Overdraw y, dejando el proyecto con colores verdes o violetas. Tenemos 3 archivos .zip como recursos descargables. El 1ero es el .zip original, en donde van a ver la app con mucho Overdraw, y luego 2 archivos .zip más en donde el 2do tiene Overdraw relativamente bajo, y el 3ero es el mejor esfuerzo para reducir el Overdraw en este proyecto.
Sección de practica pura, es una app con 3 actividades que tienen Overdraw en sus pantallas. El ejercicio es de eliminar y reducir todo el redibujado posible.
Repasamos los temas màs importantes de la seccion Overdraw, y nos preparamos para seguir mejorando la performance de las Apps nativas Android !
Repasamos 2 grandes problemas de performance que se pueden tener al utilizar efectos de transparencias en nuestras pantallas.
La interfaz de usuario es "la conexión" con el usuario, pero crear algo que se vea lindo es solamente es la mitad de la batalla. También tenes que asegurarte de que esa interfaz de usuario se renderize rápido y corra de manera fluida. Veamos en esta sección cómo continuar mejorando la UI.
¿Jerarquía de UI: ¿Qué es eso? ¿Cómo renderiza el S.O.? ¿Qué pasa con el diseño y la jerarquia de los objetos View? veamos estos temas y como impactan en los costos de renderizado.
¿Qué herramienta puedo usar para ayudar a optimizar diseños? ¿Cómo puedo revisar cada una de mis pantallas y la jerarquia de la UI? estas preguntas las respondemos en este capitulo.
Creamos juntos una app simple, introduciendo un error intencional, para utilizar Layout Inspector y buscar la solución.
Analizamos porqué es importante aplanar las jerarquias de vistas en los archivos de Layout XML utilizando ConstraintLayout.
Revisamos el problema con una app simple, que tiene un diseño lindo pero "complejo". Vamos a migrarlo para aplanar esa jerarquia de la UI. Nos enfocamos en la performance, y no en cómo crear un ConstraintLayout.
Un resumen de lo visto en esta sección, ¿qué problema estudiamos? cómo solucionarlo?
Brevemente, repasamos los temas a estudiar en esta sección y el enfoque le de daremos.
Con las opciones de desarrollador activas, vamos a buscar la Profile GPU Tool, y la vamos a activar en forma de barras, asi podemos visualizar el histograma en tiempo real.
Con la herramienta activa, vamos a ejecutar nuestra App de referencia, y a estudiar las estrategias. Ademas, revisamos la Tabla de colores para analizar el Profile GPU y ese histograma de resultado, con sus Etapas y Significados
Repasamos los puntos más importantes de la sección, y qué tenemos que tener en cuenta.
Repasamos las 2 herramientas disponibles: Android Profiler y Leak Canary.
Vamos a estudiar cómo es el manejo de la memoria en Android, qué es el Stack, qué es el Heap. Repasaremos cómo funciona el Recolector de Basura en Android, y tambien cómo ese proceso impacta en nuestra App.
Tambien, estudiamos qué es un Memory Leaks, ¿qué es el agotamiento de memoria? ¿cuando ocurre? ¿Ejemplos en Android? y empezamos a explicar cómo resolverlos.
Descargando la App en esta seccion, vamos a asegurarnos que funcione para luego utilizar el Android Profiler que viene incluido en Android Studio 4.0 . Realizamos una primer recorrida por el Memory Profiler.
¿Qué es el Memory Profiler de Android Studio 4.0? ¿Cómo debo leer e interpretar la salida de esta herramienta? Utilizando 2 apps de ejemplo más, vamos a estudiar esta poderosa herramienta.
Vamos a ejecutar la primera de las App que tiene FUGAS DE MEMORIA. Para detectarlos, vamos a usar el Memory Profiler. En un 2do archivo .zip se encuentra la solución al memory leak. Durante el video tomamos la App "My Leak Sample" que se encuentra en el archivo "simple.zip", y a medida que detectamos ciertas fugas de memoria, las vamos resolviendo.
En esta 2da parte, continuamos con la App que tiene FUGAS DE MEMORIA. Durante el video tomamos la App "My Leak Agenda" que se encuentra en el archivo "init.zip", y a medida que detectamos ciertas fugas de memoria, las vamos resolviendo. Se encuentra el archivo "MyLeakAgenda_complete.zip" en esta clase con el codigo ya finalizado.
Utilizando una app simple, vamos a estudiar esta libreria para detectar fugas de memoria, y podremos confirmar la causa de cada fuga. Esto ayudará a reducir drásticamente los bloqueos de OutOfMemoryError y las otras fugas de memoria que ya estudiamos.
Utilizando la Libreria Leak Canary, vamos a recorrer todas las fugas de memoria que pueden ocurrir, estudiando los patrones y las formas màs comunes de perder memoria, con referencias static o con procesos en segundo plano.
Resumen los conceptos basicos, el Memory Profiler nuevo de Android Studio y LeakCanary como Libreria.
Resumen de la sección, ¿qué vamos a estudiar? ¿qué herramientas?
Estudiamos qué es la Reducción R8, cómo funcionan las 3 técnicas y veremos en un ejemplo practico su uso. ¿ Cómo funciona la eliminacion del codigo muerto ? ¿Qué es la ofuscación de codigo? ¿cómo activamos estas herramientas?
Estudiemos qué es Android App Bundle , como nuevo formato de carga que incluye todo el código compilado y los recursos de tu app, pero delega la generación y firma de APK a Google Play.
Con una simple app, revisemos esta nueva herramienta incluida a partir de Android Studio 4.0
Estudiaremos las principales metricas de Android Vitals, la nueva plataforma de performance que nos ofrece Google Play Store.
1er Resumen de los temas estudiados en el curso.
2do Resumen de los temas estudiados en el curso.
Si sos desarrollador Android, seguro que alguna vez has tenido problemas de rendimiento que afectaban la usabilidad de alguna aplicación. Este curso te enseñará cómo identificar y diagnosticar los problemas de rendimiento. Utilizando herramientas de diagnostico y análisis, que te permitirán realizar pruebas exploratorias, utilizar herramientas de profiling, navegar código potencialmente problemático y diseñar un plan de ataque para mitigar el bajo rendimiento.
Al finalizar el curso, obtendrás un mayor nivel de comprensión sobre cómo interactúan el código del programa y la plataforma Android, lo que lo ayudará a optimizar el rendimiento en el futuro. Todas estas herramientas que se estudiarán te permitirán mejorar el rendimiento de aplicaciones existentes, como también considerar estos puntos en nuevos desarrollos.
Mejorar pantallas, optimizar el dibujado, entender sobre fugas de memoria y optimización del tamaño del código, serán las bases del curso de performance, que te permitirán llevar tus aplicaciones al siguiente nivel, elevando la calidad y tu reputación como desarrollador Android.
Para aprovechar al máximo este curso, debes tener experiencia en el desarrollo de aplicaciones mobiles en dispositivos Android, ya sea usando Java o Kotlin como lenguaje. Además debe saber comprender los conceptos básicos del ciclo de vida de Android y saber cómo realizar operaciones básicas en Android Studio
Si vos sos tester manual trabajando en el area de calidad de las aplicaciones, deberás contar con los conceptos básicos de una Aplicación Android, para poder juntar evidencia y aprovechar al máximo las herramientas que acá presentaremos.
También necesitás acceso a un dispositivo Android y conocimientos prácticos de Android Studio para poder seguir los ejercicios.
Si nunca ha desarrollado una aplicación de Android nativa, consulte algún curso de Desarrollo de aplicaciones de Android antes de tomar este curso sobre performance.
Si no está familiarizado con Github, consulte algún curso sobre cómo usar Git y Github, en este curso no utilizaremos Github,pero es algo que seguro necesitaras para otros proyectos.
Lo que aprenderás:
Analizar las jerarquias de los layouts y la importancia del dibujado de cada pixel.
Diseñar las pantallas con buen rendimiento.
Recolectar evidencia de bajo rendimiento de la aplicación.
Usar el Memory Profiler para recopilar datos sobre la aplicación.
Realiza análisis con el procesamiento de perfiles de la GPU.
Utilizar LeakCanary para detectar todas las fugas de memoria.
Registrar datos de asignación de memoria para su aplicación.
Utilizar Android App Bundle.
Analizar Android Vitals y sus metricas.
Que harás:
Siguiente clase a clase y ejecutando las aplicaciones de ejemplo, podrás:
Dominar a la perfección las herramientas para el problema del redibujado.
Analizar las jerarquías de los layouts
Ejecutar Memory Profiler, para generar, guardar e inspeccionar datos.
Ejecutar Leak Canary y entender sus notificaciones.
Optimizar código con la reducción R8 y Android App Bundle.
Analizar las metricas del panel de Android Vitals.
Los diseños ocupan un lugar clave en las aplicaciones para Android que influyen directamente en la experiencia del usuario. Si se implementa mal, el diseño puede producir una aplicación con IU lentas. Analizando las jerarquias de los layouts detectaremos problemas de rendimiento , para aplicar estrategias de mejoras.
Herramientas como Heap Viewer, el Memory Monitor, y el Allocation Tracker son herramientas complementarias que nos permitiran visualizar la memoria que utiliza la aplicacion. Aprenderemos a dominarlas y a analizar la informacion.
Con LeakCanary es posible detectar todas las fugas de memoria que se van produciendo con cada aplicación, servicios en segundo plano o lo que sea que ejecutemos en nuestra aplicación. De esta forma y a través de pequeñas notificaciones, se nos notificará en qué momentos nuestro dispositivo va perdiendo megas libres de los que tiene disponibles.
Los desarrolladores de Android saben que el tamaño del APK es un factor importante para el usuario. La reducción del código ayuda a reducir el tamaño de su APK al deshacerse del código y los recursos no utilizados.
La reducción de R8 es la optimización del código para el tamaño, que analizaremos y aprenderemos a utilizar.
Aprende a desarrollar apps Android con excelente rendimiento, participando de este curso para desarrolladores avanzados que quieren dejar de ser principiante dominando Android Studio, LeakCanary y otras herramientas de desarrollo.
Ejecutaremos apps con problemas de rendimiento, para que tú puedas pasar por todo el ciclo de la mejoras de rendimiento de apps, desde recolectar evidencia, hasta el rediseño de interfaces bajando la complejidad, o analizando el heap de memoria para detectar fugas de memoria.
Este curso ofrece muchos recursos que estarán disponibles para todos los alumnos:
Todo el código escrito en clase, ordenado y categorizado en las distintas clases.
Videos de contenido propio.
Lecturas complementarias.
Actualización a las nuevas herramientas de performance.
Un aspecto a resaltar del Mobile Performance es el compromiso con la experimentación y las pruebas ya que, lejos de confirmaciones universales y verdades absolutas, el ecosistema Android no hace más que reinventarse periódicamente. Por tanto, nuestras aplicaciones deben apuntar también al perfeccionamiento y la optimización. Si en tus proyectos Android nativos se intentan mejorar los resultados y reducir los esfuerzos, primero hay que observar lo que sucede con el rendimiento para luego buscar maneras de mejorarlo. Aquí en este curso te presentaremos todas las herramientas y estrategias necesarias para que estos sea posible.
Te invito a que veas cualquiera de las clases que están disponibles antes de comprar el curso y seguro que desearás ver el resto del curso.
¿Hay requisitos para realizar el curso?
Se recomienda un PC con 4GB de RAM y procesador INTEL i5 o superior.
El curso es desde AVANZADOS en ANDROID, es necesario conocimiento en Android. Se recomienda tener conocimientos avanzados en programación.
Tener ganas de aprender y de convertirse en un auténtico EXPERTO de Android.
¿Para quién es este curso?
Desarrolladores en Android.
Tester/Ing de Calidad de Aplicaciones para Android.
Sobre el tutor:
Soy desarrollador Android con 10 años de experiencia en el mercado. Docente de varios cursos presenciales de programación Android, ya muchos estudiantes han aprendido Android conmigo, desde principiantes hasta avanzados.
Vos podes ser el siguiente, sumandote a la comunidad de desarrolladores que llevamos nuestras aplicaciones al siguiente nivel, pensando en la performance y rendimiento de la app, mejorando las habilidades de programador Android llevándolas al siguiente nivel.
Espero que si tienes alguna duda puedas mandarme un Mensaje Directo, para así resolver tu duda de forma inmediata.