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:

Inspección Inicial

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.

Commit: https://github.com/Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15/tree/0bcdfeab8914a3110d1f3643e2f0531092d1750f

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.

Commit: https://github.com/Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15/tree/e212ba928760787eae24a807ca96f81733a56647

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.

Commit: https://github.com/Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15/tree/91afa18c78956859fb15f7f750c742f5fa1b9e28

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.

Commit: https://github.com/Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15/tree/adafa293d91455a7c0892923b776274345c1ceae

En la siguiente imagen se evidencia los resultados del análisis luego de las optimizaciones.

Inspección Final

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)

https://github.com/Gerzon-MISO/misw4203-ingenieria-de-software-para-aplicaciones-moviles-2021-15/tree/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.