1. Extended Kotlin support in-app and changed Java classes to Kotlin
There was more than 15 java classes needed to be converted to Kotlin. I converted all the classes to Kotlin and tested the app to make sure the changes have not broken any code. I did convertion in two categories Retrofit model classes and Service inerfaces. I created two different PR for each:
- Retrofit Model Pull Request.
- Service Classes Pull Request.
2. Reviewed all Pull Reqeust of the project
There was more than 30 pull requests in the repo, I went through all of them one by one. There were many pull request that needed changes so I requested changes on them and the contributers had a great response, they implemented nearly all of my requested changes in their pull requests. So rihgt now, most of them are ready to be merged in the base development branch.
3. Implement MVVM architecture in the project
Fineract CN Mobile project has been developed using MVP (Model View Presenter) architecture but after having a discussion with my mentor we decided to go wiht MVVM (ModelView View Model) architecture which is Google's sugested architecture for android app development. I'll implement the new features using this architecture, as an example take a look to my Adds support for all functionalities of a Group PR which is under review and will be merged soon.
4. Researched Offline First approach using CouchbaseDB
Couchbase Mobile is the complete NoSQL database solution for all data storage, access, sync and security across the entire application stack. It includes an Embedded database, Rest API and Synchronization which is critical for enabling offline-first mobile apps. In this period of GSoC I researched how to implement it, and also I created a mini project to practice it's implementation. Here is the project. I will continue to implement this feature in 3rd phase of the program.
5. Tested all functionalities of the app with the new Fineract CN instance demo
The Fineract CN mobile app has been developed with a layer of mockup data. I went throgh the Fineract CN API documentation, changed the base URL of the app to the new demo instane of the Fineract CN and tested all functionalities of the App. There were many bugs which were causing the app to crash, I solved them and raised a solution pull request. You can take a look in here.
6. Completed all remained functionalitis of Role/Permission
The APIs for editing, creating, and deleting functionality of Role/Permission has been developed in Fineract CN so I implmente it in Fineract CN Mobile too, actually I have started woking on this feature early (before coding period). For screenshots and more details, please review the raised pull request.
7. Started working on GIS feature like location trakcing
As a task of GSoC I started working on GIS (Geographical Information System),I craeted a Jira Ticket about my implementaton plan and uploaded mockup screens for the same, you can find more details about my implementation plan from here and to see all my created mockup screens click here.