Skip to content

Opportunities for optimization #2123

Description

@aspd-2501

Greetings, we are three university students taking a course in mobile app development. For this class we were tasked in making a report that analyzed an open-source application and we chose Habitica. One part of the assignment was to analyze Habitica’s code and the micro-optimizations used, as well as to propose other parts of the code that had opportunities for micro-optimizations. That is why we previously sent an issue (Issue #2121) based on the lint inspection tool of Android Studio. Additionally, as another part of our work we wanted to propose other ideas for micro-optimizations to try to help Habitica’s Kotlin mobile application. We also wanted to explain this as our intention is not to criticize or suggest that the application has problems, this an academic exercise above all.
Thank you so much for your understanding, we hope that this will be helpful to your team.

  1. The first suggestion is pertaining the Failed_loading.xml and failed_loading.png files, the files in question have the same name and there is not a clear difference in their usage in filed_item.xml and LoadingButton.kt. So we wanted to suggest the consolidation of the failed_loading.png and the failed_loading.xml files and remove one of the two versions depending on which is necessary for the intended behavior, also ensuring all the references use only the remaining one.

Image

  1. Another suggestion is related to overdrawing in some .xml files. With the Lint code inspection tool we found several files with this problem. Specifically in the implementation of the backgrounds.

Image

However, we took a closer look at the activity_task_form.xml. In the view we noticed some overdrawing and the suggestion is specific to line 8, which defines a new background which, according to the Lint tool, is redundant.

Image

Image

Att: Wyo Hann Chu, Leidy Lozano and Ana Sofía Padilla Daza

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions