Abstract
The goal of the Android client is to provide an alternative to access a hospital's OpenMRS instance by just using the provider's Android devices. See the full Android client guide for more info.
...
- An upgrade to the Architecture Model of the app. As Android apps grow in size, it's important to define an architecture that allows the app to scale, increases the app's robustness, and makes the app easier to test. The present architecture model of the app is MVP. However, Android now recommends using MVVM(Model View ViewModel)model as It can be integrated with the latest Architecture components. This indeed will reduce so much of the boilerplate code and will help newcomers to understand and contribute more to the Android client.
- Dependency Injections: Classes in the app depend on other classes in order to function properly. Android now recommends following dependency injection patterns and using the Hilt library in Android apps. This will help to automatically inject required classes' objects in the constructors. This indeed will again reduce the boilerplate code and makes the code more understandable and manageable.
- Testing: The status quo or the present test coverage status of the app is very low. There is a stack of classes that have had never been tested. Testing is an integral part of the app development process. More tests should be added to increase the test coverage of the project.
- Replace the remaining Java code with Kotlin. Both Java and Kotlin can be used to build performant, useful applications, but Google's libraries, tooling, documentation, and learning resources continue to embrace a Kotlin-first approach; making it the better language for Android today.
Objectives :
- Upgrade MVP model to MVVM
- Use Dependency Injections
- Increase Test Coverage
- Migrate Java classes to KotlinIntegrate
- more components of Make the web app to the client (to be discussed further)app more stable, and reduce bugs and crashes.
Project Rating and length
...
- Migrate the architecture of the app from MVP to MVVM.
- Integrate dependency injection using Hilt.
- Migrate codebase from Java to Kotlin. (Completed 60% of the codebase)
- Make the app more stable, and reduce bugs and crashes.
Remaining Objectives:
- Migrate codebase from Java to Kotlin. (The remaining 40% of the codebase)
- Increase test coverage in the project.
...
Contributions & Work Done
Week 1
Issue Number | Issue Link | Status |
---|---|---|
AC-1027 | https://issues.openmrs.org/browse/AC-1027 | Resolved |
AC-1028 | https://issues.openmrs.org/browse/AC-1028 | Resolved |
AC-1029 | https://issues.openmrs.org/browse/AC-1029 | Resolved |
AC-1030 | https://issues.openmrs.org/browse/AC-1030 | Resolved |
Week 2-3-4
Issue Number | PR Link | Status |
---|---|---|
AC-1027 | openmrs/openmrs-contrib-android-client#948 | Merged |
AC-1028 | openmrs/openmrs-contrib-android-client#945 | Merged |
AC-1029 | openmrs/openmrs-contrib-android-client#947 | Merged |
Week 5
Issue Number | PR Link | Status |
---|---|---|
AC-1031 | openmrs/openmrs-contrib-android-client#949 | Merged |
AC-1032 | openmrs/openmrs-contrib-android-client#950 | Merged |
Week 6-7-8
Issue Number | PR Link | Status |
---|---|---|
AC-1033 | openmrs/openmrs-contrib-android-client#952 | Merged |
Week 9
Issue Number | PR Link | Status |
---|---|---|
AC-1034 | openmrs/openmrs-contrib-android-client#955 | Merged |
Week 10-11
Issue Number | PR Link | Status |
---|---|---|
AC-1035 | openmrs/openmrs-contrib-android-client#956 | Merged |
Week 12
Issue Number | PR Link | Status |
---|---|---|
AC-1036 | openmrs/openmrs-contrib-android-client#957 | Merged |
Week 13
Issue Number | PR Link | Status |
---|---|---|
AC-1037 | openmrs/openmrs-contrib-android-client#958 | Merged |
AC-1038 | openmrs/openmrs-contrib-android-client#959 | Merged |
Week 14
Issue Number | PR Link | Status |
---|---|---|
AC-1039 | openmrs/openmrs-contrib-android-client#960 | Merged |
AC-1040 | openmrs/openmrs-contrib-android-client#961 | Merged |
AC-1041 | openmrs/openmrs-contrib-android-client#962 | Merged |
AC-1042 | openmrs/openmrs-contrib-android-client#963 | Merged |
Week 15
Issue Number | PR Link | Status |
---|---|---|
AC-1043 | openmrs/openmrs-contrib-android-client#964 | Merged |
Week 16
Issue Number | PR Link | Status |
---|---|---|
AC-1044 | openmrs/openmrs-contrib-android-client#966 | Merged |
AC-1045 | openmrs/openmrs-contrib-android-client#967 | Merged |
Week 17
Issue Number | PR Link | Status |
---|---|---|
AC-1047 | openmrs/openmrs-contrib-android-client#968 | Merged |
Week 18
Issue Number | PR Link | Status |
---|---|---|
AC-1048 | openmrs/openmrs-contrib-android-client#969 | Merged |
AC-1049 | openmrs/openmrs-contrib-android-client#970 | Merged |
Week 19
Issue Number | PR Link | Status |
---|---|---|
AC-1050 | openmrs/openmrs-contrib-android-client#971 | Merged |
Week 20
Issue Number | PR Link | Status |
---|---|---|
AC-1046 | openmrs/openmrs-contrib-android-client#973 | Merged |
Week 21
Issue Number | PR Link | Status |
---|---|---|
AC-1030 | openmrs/openmrs-contrib-android-client#975 | Merged |
AC-1051 | openmrs/openmrs-contrib-android-client#974 | Merged |
Week 22
Issue Number | PR Link | Status |
---|---|---|
AC-1052 | openmrs/openmrs-contrib-android-client#976 |
Merged | |
AC-1053 | openmrs/openmrs-contrib-android-client#977 |
Merged | |
AC-1054 | openmrs/openmrs-contrib-android-client#978 |
Merged | |
AC-1055 | openmrs/openmrs-contrib-android-client#979 |
Merged | |
AC-1056 | openmrs/openmrs-contrib-android-client#980 |
Merged | |
AC-1057 | openmrs/openmrs-contrib-android-client#981 |
Merged | |
AC-1058 | openmrs/openmrs-contrib-android-client#982 |
Merged |
Weekly Blogs (Updates)
Resources :
- https://github.com/openmrs/openmrs-contrib-android-client/releases/tag/v3.0.0 - Release page for the 3.0.0 version.
- GSoC 2021 : OpenMRS Android Client Project 3.0.x - Previous year's GSoC page for this project
- https://github.com/openmrs/openmrs-contrib-android-client - main repo
- https://openmrs.github.io/openmrs-android-client-user-guide/introduction.html - User guide
- https://talk.openmrs.org/t/gsoc-2018-openmrs-android-client-3-x-project/18035?source_topic_id=19471