Offline-first: the details
In a conventional app, every action waits for the server’s reply; with no signal, the screen just keeps loading. In an offline-first app, the action is saved to a local database and the interface responds instantly. A queue sends the changes in the background when the signal returns, and the app shows clearly what has been sent and what is still pending.
The hard part is conflict: two people change the same record while offline. You have to decide in advance who wins—the latest change, the server, a field-by-field merge or a person—and make the uploads idempotent so that a retry duplicates nothing. You also have to decide which data gets downloaded, because not everything fits and not everything should travel on a phone. A PWA can work this way too, with more limits than a native app.