The main objective of the project is to migrate the whole architecture of the Android Client Project from MVP to MVVM so that it makes the app more robust, scalable, easier to test, and make the codebase cleaner and easier to understand for newcomers. Iβve completed this objective and some of the other side objectives (Dependency injection using Hilt, and migrating from Java to Kotlin (24% to 59%)). Whatβs left to do is to continue converting the rest of the codebase (41%) from Java to Kotlin, and increasing the test coverage in the project.
The following is a Public Google Drive Link for the final presentation video of the project showcasing the work done throughout the GSoC coding period:
Objectives
Primary:
Migrate the architecture of the app from MVP to MVVM. (COMPLETED)
Additional:
Integrate dependency injection using Hilt. (COMPLETED)
Migrate codebase from Java to Kotlin (60%). (COMPLETED)
Make the app more stable, and reduce bugs and crashes. (COMPLETED)
Increase test coverage in the project. (INCOMPLETE)
Migrate the rest of the codebase (40%) from Java to Kotlin.
Update OpenMRS Android SDK library to the latest changes.
Fix the Continuous Integration checks for the PRs in Android Clientβs GitHub repository because they ignore the failing tests.
Add guidelines regarding the architecture and patterns followed in the project for any future contributions (for more consistency).
Thoughts on GSoC
Lastly, I would like to thank my mentor, the org admins, and community members for their continuous support and help during the project. It was so exciting to be working on this project with this wonderful community! I learned a lot during this project and would like to thank everyone for this opportunity.
@kdaud No problems I can help with the deployment but it needs some time as it requires creating a privacy policy page and filling data safety and showing app permissions uses and some other forms to fill in order to be accepted in Play Store.
Also, the debug build always differs a bit from the release build so we need to test it after deploying it in Play Store as to fix any unexpected bugs.