/TrackMyPath

An Android app written in Kotlin that demonstrates a clean architecture with MVVM, Fused Location Provider, LifecycleService, and Coroutines. It is used as lab to test new Android features.

Primary LanguageKotlin

Track my path

An android app that tracks your walk with images every 100 meters:

  • images fetched from Flickr based on location
  • pictures are shown in a list, and user can scroll through the stream
  • one button start/stop, on each start the previous stream of photos gets wiped

Please create a Flickr account and use your own api key. Add it in the FlickrService file.


MVVM pattern with Clean architecture developed with Kotlin.

Clean architecture consists of three layers:

  • Data, includes data objects, databases, network clients, repositories.
  • Domain, includes use cases of business logic. This layer orchestrates the flow of data from Data Layer to Presentation and the other way.
  • Presentation, includes UI related components, such as ViewModels, Fragments, Activities.
Android Jetpack Components used:
  • Fragment
  • ViewModel
  • View Binding
  • LiveData
  • Room
  • Location
  • ActivityScenario, instrumentation testing (part of AndroidX Test)
  • Espresso (UI tests)
Libraries:
Flickr API:

Sources:


Screenshots