Karchitec

screenshot of Karchitec

Kotlin RSS reader using Google android architecture components libraries

Overview:

The KarchitecKotlin RSS reader is a pet project that serves as a testing ground for various technologies. It is built using Kotlin and follows a slightly modified MVVM architecture, with the addition of a presenter. The project also makes use of Google's architecture components, including ViewModel, LiveData, and Room. Dependency injection is handled by Dagger 2, with Butterknife also being used. Other features of the project include Retrofit 2 for network communication, Constraint Layout for UI design, Chrome Custom Tabs for browsing articles, and Stetho for OkHttp and database debugging. Unit testing is done using MockWebServer, Espresso tests, and Detekt for static code analysis.

Features:

  • KotlinMVVM architecture: The project follows a modified MVVM architecture, with the addition of a presenter to handle non-data related logic in the ViewModel.
  • Google architecture components: The project makes use of ViewModel, LiveData, and Room from Google's architecture components library.
  • Dagger 2 Dependency injection: Dependency injection in the project is handled by Dagger 2, with the addition of Butterknife for view binding.
  • Retrofit 2: Retrofit 2 is used for network communication in the RSS reader.
  • Constraint Layout: The UI design of the project is done using Constraint Layout.
  • Chrome Custom Tabs: Chrome Custom Tabs are used for displaying articles within the app.
  • Stetho: Stetho is used for OkHttp and database debugging in the project.
  • MockWebServer based Unit testing: Unit tests in the project are done using MockWebServer for simulating network calls.
  • Espresso tests: The project contains Espresso tests for UI testing.
  • Detekt static code analysis: Detekt is used for static code analysis in the project.

Summary:

The KarchitecKotlin RSS reader is a pet project aimed at testing various technologies, including Kotlin, MVVM architecture, Google's architecture components, Dagger 2, Retrofit 2, and more. It follows a modified MVVM architecture, with the addition of a presenter, and makes use of LiveData for error management and network status. The project also includes unit tests using MockWebServer and Espresso, as well as static code analysis using Detekt.