View Model Doesn’t Have To Depend on ViewModel

This page summarizes the projects mentioned and recommended in the original post on /r/androiddev

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • PeopleInSpace

    Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, Compose for Web and Kotlin/JS + React clients along with Ktor backend.

  • Here's a project using it.

  • koin

    Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform

  • It'd be great if it worked

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Dagger2

    A fast dependency injector for Android and Java.

  • Technically, their Jetpack Navigation integration using this somewhat awkwardly named public method does resolve the issue, but then you're forced to use Jetpack Navigation and ViewModelStoreOwner and the rest, because that's the only thing it works with. And AFAIK the SavedStateProvider in SavedStateHandle is private, so you can't even register a custom SavedStateHandle to the SavedStateRegistry yourself - basically, vendor lock-in because the API was not designed to be extensible beyond what Google internals needed.

  • kompass

    Kotlin Multiplatform Router for Android and iOS

  • kompass seems promising for navigation. Though it's not that difficult to maka a router with SharedFlow of routes (sealed interface or something) and subscribe for it in activity for navigation. I guess something similar could be done in iOS.

  • Slide

    Slide is an open-source, ad-free Reddit browser for Android.

  • "Works for me" just like how "Multi-activity works for me", "Singleton state works for me", "3000 line Fragments with nested AsyncTask work for me" -- the fact that it runs is the least minimal requirement that is expected of any software, and when you have quirky runtime bugs like in Koin or Jetpack Navigation, then it doesn't even hit that bar.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts