Giter Site home page Giter Site logo

contacts's Introduction

Contacts

๐ŸŽ‰ This app demonstrates how to consume a list of remote contacts.

Features

  • Allow user to log in with id and token
  • Allow logged users to show a list of contacts
  • Allow logged users to show contact details

Version control

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

Architecture

The contacts app defines an architecture that allows the app to scale and increases the app's robustness.

Seperation of concern is the core design for contacts architecture, 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 architecture and MVVM as UI architecture

Tech Stack

  • Language Java,Kotlin

  • Navigation Allow user to navigate between the app's destinations

  • Material Design Apply the material design guide on app UI

  • Coil To load preferred images to the user

  • View Binding Allow interaction 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 dependency injection

  • RxJava As a multi-threading approach for composing asynchronous

  • Koltin Coroutine As light weigh threading technique

  • Koltin Flow To receive live updates on data

App Screens

The app ui gets inspired by OnePageCRM.

Login

This feature allows to users to log in via ID and API TOKEN, which you can get from OnePageCRM API. The credentials data is stored in the properties file, as a more secure access layer between sensitive keys and public access.

Contact list

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

Contact Details

This feature displays extra details data for each contact.

Demo

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

contacts's People

Contributors

mgamale avatar

Watchers

 avatar

Forkers

devil2020

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.