Devil2020 / Contacts

:fire: Display list of contacts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contacts

🎉 This app demonstrates how to consume a list of remote contacts.

Features

  • Allow user to login with id and token
  • Allow loginned user to show a list of contacts
  • Allow loginned user to show contact details

Version control

This project use Git as a source controle, and mimic a Git flow with branches strategy for each feature.

Architecture

Contacts app define an architecture that allows the app to scale, increases the app's robustness.

Seperation of concern is the core design for contacts archiecture, that applied within three layers

Presenation Layer Contains only ui logic and operating system interactions.

Domain Layer Contains business rules and fetching data sources.

Entity Layer Contains app data classes.

This app follows Uncle-Bob Clean Architecture , Android-Docs Architecure Guide for project architecure and MVVM as UI architecture

Tech Stack

  • Language Java,Kotlin

  • Navigation Allow user to navigate between app's destinations

  • Material Design Apply material design guide on app ui

  • Coil To load prefered images to user

  • View Binding Allow interact with XML layout via generated binding class

  • Retrofit As http client to connect via web services

  • OkHttp To manage http request headers

  • ViewModel To store and manage ui related data

  • Dagger-Hilt Provides a standard way to apply dependecy injection

  • RxJava As multi-threading approach for composing asynchronous

  • Koltin Coroutine As light weigh threading technique

  • Koltin Flow To recieve live updates of data

App Screens

The app ui get inspired by OnePageCRM.

Login

This feature allow to user to login via ID and API TOKEN, which you can get from OnePageCRM API. The credentials data store to properties file, as a more secure access layer between sensitive keys and public access.

Contact list

This feature display a list of contacts consumed from OnePageCRM Contacts, with enabling expanded option with each item.

Contact Details

This feature display an extra details data for each contact.

Demo

Splash Login Login + Error Contacts
Expanded Contacts Contact Details Connection Error

About

:fire: Display list of contacts


Languages

Language:Java 78.3%Language:Kotlin 21.7%