When we reach for it
Apps whose value is in the workflow rather than the hardware: forms, lists, search, a queue of work synchronised with a backend. One team, one release cadence, and the saved effort spent on the server side where it usually belongs.
When we would argue against it
Not for anything living in the camera pipeline, an intensive graphics loop, or the deeper background execution APIs. When we hit that line we say so and go native rather than fighting a bridge.
What it looks like in delivery
The hard part is almost never the interface — it is what happens when the network goes away mid-task. We build the offline behaviour first, on the assumption that the connection will drop and the operating system will terminate the app, because in the field it does.