The single source of truth
Stop fetching. Start reading the database.
Every earlier module treated the network as the source of truth: a ViewModel calls repo.fetchWalkers(), gets a List<Walker>, and stuffs it straight into a StateFlow. That's fetch-and-forget β the moment the phone loses signal, or the screen restarts, there's nothing to show until the network comes back.
The Now in Android rule flips that: the UI reads the database. The network's only job is to write the database. A composable never talks to PawWalkApi directly β it collects a Flow off a local table. The repository's refresh() function fetches from the network and writes the result into that table. The UI doesn't know or care that a fetch just happened; it just re-renders because the table changed.
That one rule buys you three things for free: offline reads (yesterday's walks are still on disk, no network required to show them), one source of truth (no viewModel1 and viewModel2 disagreeing about what the walkers list looks like β they all read the same table), and instant restarts (rotate the screen, kill and reopen the app β the list is on screen before any network call even starts).