Micro optimizaciones - Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15 GitHub Wiki
Micro-optimizaciones
Para las micro-optimizaciones hicimos uso de la herramienta lint del IDE android studio.
Se realizo el análisis de código estático, obteniendo los siguientes resultados:
Nos centramos en resolver la mayor cantidad de errores y warnings encontrados por la aplicación principalmente en la categoría Performance, dentro de estas mejoras se resaltan los siguientes tipos:
Unused resources
- Para este tipo se realizo la eliminación de variables, objetos y funciones, así como también recursos y declaraciones que no usa la aplicación. Permitiendo así una mejora del uso de recursos de la memoria RAM. Adicional se realizo elminicación de imports que no son necesarios entre otros cambios identificados para la mejora del performance.
Ciclo de procesamiento de respuesta del servidor
- En esta mejora se resalta una mejora a nivel de creación de variables en memoria para las iteraciones de la aplicación en ciclos for.
Android resources validation
Se identifico gracias al análisis la declaración errónea en el recurso CollectorFragment, esta mejora resolvio uno de los errores presentados en el análisis.
Unused xml schema declaration
- Por ultimo se resolvió un warning de Tipo XML que se presentaba por una declaración no usada en el recurso collector.xml.
En la siguiente imagen se evidencia los resultados del análisis luego de las optimizaciones.
Se logro reducir los warnings en un 68% pasando de 28 a 9 y adicional se corrige el error presentado inicialmente. Las 9 warnings restantes se dejan ya que estas mejoras pueden afectar el funcionamiento actual de la aplicación.
Se creo una rama como evidencia de estos ajustes que agrupa los commits relacionados anteriormente. (feature/TV01)
Uso de buenas practicas
Durante la implementación del sprint 2, se hizo uso de buenas practicas vistas en el curso tales, para el optimo uso del consumo de memoria y evitar ANRs:
- Optimizar el uso de imágenes en las listas en tamaño y también en la librería Picasso.
- Reducir la cantidad de peticiones aplicando una táctica de caching que se realizan sobre todo entre cambios de pestañas.
- Aplicar Corrutinas en las listas donde se prevé tener una gran cantidad de Items como Coleccionistas y Álbumes.
- Fixes en el Uso de los Scrollview que se encuentran anidados ya que con pocos items la lista no scrollea de manera correcta y se sospecha que esto también puede causar problemas de rendimiento con una lista mas grande.