Mobile apps, like the backends they interact with, are a system of computed events. However, this system can be one of outright chaos. Apps run on devices with runtimes that developers don’t have access to, with batteries that last only a few hours, with cracked screens preventing full use of the UI and network connections that can vary in strength merely by the location of the user. And all of that is before getting into the actual computational limitations of the devices that apps run on, and the fact that the “system” is made up of thousands or millions of users simultaneously doing different things with the app.
These factors might all be occurring at once, but with differing levels of visibility for app developers. And because these apps are the basis of many businesses, there must be ways to find meaningful information in the activity from apps. Mobile observability solutions have to solve for a real quantity called “time” at every step in the process and cobble that data back together to reflect a user experience.
A key challenge for mobile observability solutions is recreating high-fidelity user experiences from activity that is distributed across millions of devices, each occurring on its own timeline, with its own set of user intentions and hardware limitations.
The limits of mobile apps mean making sense of mobile data should start with suspicion:
- Is the data arriving at the backend in the correct order?
- Is the instrumentation all occurring at a native level, or is it abstracted or part of a hybrid framework?
- Have all events completed within the timeframe we’re looking at, or do I need to wait to make sense of it?
Additionally, there is a higher-order set of questions to consider outside one’s code when aggregating this mobile telemetry. Is “time” relative? Have users completed actions when their sessions end, or do you need to build in flexibility for actions that have many states before they resolve?
Luckily, these questions are functional, not philosophical. In the end, the answers to these questions are solutions that mobile observability vendors use to “bend time” to make sense of mobile-specific data. By learning about some key challenges in collecting mobile telemetry, you can start thinking about how to use that telemetry meaningfully when observing your apps.