Skip to content

Development Wiki

Priyank Shankar edited this page Jan 15, 2023 · 1 revision

This page documents how DocDelivery was developed.

  • 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.

Utils

  • 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.
Clone this wiki locally