Development Wiki
Priyank Shankar edited this page Jan 15, 2023
·
1 revision
- The entire application is made using Kotlin, we have used Jetpack Compose to develop the UI and there are no layout XML files
- We have followed a mix of Clean Architecture and MVVM to develop the application. The whole codebase can be seen divided into features and each feature is then divided into data, domain and presentation
- The main focus of the application was to extract relevant information from the mails, hence we used Gmail API, to fetch the emails of the user.
- We have used the Navigation Component, to navigate between different screen in the app, and also to implement the BottomNavigation Bar.
- We have used the Accompanist library by Google to achieve the UI of the login screen.
- To preserve some useful information of the User, like name, email, profile photo URL, etc and to preserve the login state of the application, we have used Shared Preferences.
- We have also used Lottie to add animations in the application.
- To fetch the emails asynchronously, and to handle all the situations related to concurrency and parallelism in the app, we have used Coroutines.
- The Dependency Injection framework which we have used is Hilt
- To cache the information that is shown to the user, we have leveraged Room
- We have also used Flows a lot in our application.
- We have used Github Actions, for CI, and to run some basics checks on every PR
- We have used KtLint, for linting and formatting our code.
- We use a gitPreCommitHook, to run the basic linting checks to avoid mistakes as much as possible.