Mobile operating systems restrict background work aggressively to protect battery and performance, and an app that assumes it can run…
Read More »Mobile Development
A crash from a production build reports memory addresses, not function names, and without the matching debug symbols for that…
Read More »A mobile app runs on a device the user controls and in an environment the developer does not fully control,…
Read More »Caching data locally is the easy part. Deciding what happens when the same record changed on two devices is where…
Read More »Mobile connections drop, slow down, and change networks constantly, and an app that assumes a stable connection will fail in…
Read More »The hard part of offline sync is not storing data locally — it is deciding what happens when the same…
Read More »Inconsistent deep link behaviour — opening the app sometimes, falling back to a browser other times, for reasons the user…
Read More »Push notifications interrupt the user, and a notification that is not relevant or timely is not just ignored — it…
Read More »A permission prompt with no context, shown the instant the app opens, gets denied reflexively by users who have no…
Read More »A large app is more than a storage inconvenience — it is a barrier to download and install, and app…
Read More »









