CountingApp

Here you have an android app written on kotlin that count things called counters.

How To use it?

You can use Android Studio or Intellij to work with this repository. Use an emulator or android device with android version 23 <= API <= 29

Features

  • Add a named counter to a list of counters.
  • Increment any of the counters.
  • Decrement any of the counters.
  • Delete a counter.
  • Show a sum of all the counter values.
  • Search counters.
  • Enable sharing counters.
  • Handle batch deletion.
  • Persist data back to the server.
  • States are important, consider handling each state transition properly.

Instructions

Setup EndPoint of your service replace it on build.gradle(:app) as BASE_URL (line 25) for example if your endPoint is "https://dev-api.yourbackend.com/" let it as its on the project, but if is different you can use '"https://10.0.2.2:3000/"' local host with port 3000 for virtual device or the URL of your remote API service.

I Suggest use https://ngrok.com/ to publish the service if is in localHost in a public https URL to test on many devices (emulator, real..)

Demo

alt text

Architecture

alt text

There the main layers: data: in this module has all details Service and Database repository : has sync server domain: each use case performed by the user presentation: This module has all android framework using MVVM

Used Libraries

Best Practices And References

Dependency Inversion Principle (DIP)(without frameworks) Clean Code)