Skip to content

App that efficiently manages the Contacts which uses Material Design, Navigation and Android Architecture Components, MVVM architecture, Dagger2, Room Persistence, Data Binding, Glide, Animations, Single activity & several fragments.

Notifications You must be signed in to change notification settings

aishwarya-kamal/Contacts-Pro-Kotlin

Repository files navigation

Screenshot 2019-11-11 at 9 42 22 PM

About

Contacts Pro Kotlin is an Android Contacts App that allows you to efficiently manage your Contacts. It lets you view all the Contacts as a list, Add, Update, Delete and View the Contact Details. It is based on Model–View–Viewmodel (MVVM) Architecture.

forthebadge forthebadge

cpk gif

🚩 Table of Contents HitCount

🎨 Features

Contacts Pro Kotlin is composed of 4 main screens - Contacts List, Add New Contact, Contact Details, Edit Contact

📄 Main Screen

The main screen displays the list of all the contacts with their profile picture along with a call button and an email button for each contact.

main_screen

📝 Add New Contact

Add New Contact screen allows the user to add all the details of the contact such as their profile picture, name, phone number and email address. Save button saves all the details and displays the newly created contact on the main screen while cancel button navigates the user back to the main screen without saving any information.

addcontact

📜 Contact Details

Contact Details allows the user to view the contact's profile picture, name, phone number and email address. It also displays a trash icon on the bottom left to delete the contact and an extended edit floating action button to edit the contact details.

detailscontact

📝 Edit Contact

Edit Contact pre-populates the original details of the contact on the screen and allows the user to make necessary changes. Save button saves the contact's new details and cancel button discards the changes.

editcontact

🔍 Libraries Used

  • Android Architecture Components
    • Lifecycles - for Creating a UI that automatically responds to lifecycle events.
    • LiveData - to Build data objects that notify views when the database changes.
    • Navigation - to Handle everything needed for in-app navigation.
    • Room - Access app's SQLite database with in-app objects and compile-time checks.
    • ViewModel - Storing UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
  • Dagger 2 for Dependency Injection
  • Android KTX to Write more concise, idiomatic Kotlin code.
  • Android Data Binding to Bind observable data to UI elements
  • Espresso for UI tests
  • Mockito for mocking in tests
  • Glide for Image Loading
  • Timber for Logging
  • Animations & Transitions to move widgets and transition between screens.
  • AppCompat to Degrade gracefully on older versions of Android.
  • Fragment A basic unit of composable UI.
  • Layout Lay out widgets using different algorithms.

Developed By

👩 Aishwarya Kamal

Show your support

Please ⭐️ this repository if this project helped you!

About

App that efficiently manages the Contacts which uses Material Design, Navigation and Android Architecture Components, MVVM architecture, Dagger2, Room Persistence, Data Binding, Glide, Animations, Single activity & several fragments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages