Version 1.1
New API Endpoint
This version of the TelemetryClient sends its signals to the new dedicated ingestion API, nom.apptelemetry.io
. It provides better availability, and it accepts signals bundled in bulk instead of one by one. Which is important for...
Signal Caching
Signals are now only sent every 10 seconds. If the time hasn't elapsed yet, there is no internet connectivity, or an error occurs on the server side, the signals are locally cached (in the user's cachesDirectory
in a file called telemetrysignalcache
) until they can be delivered to the server. Not only does this mean signals now survive if your users are out and about beyond the reach of cell reception, it also means even less impact on battery, because we're operating the radio way fewer.
Session Management
A session ID automatically gets generated when the TelemetryClient
is initialized. On iOS, watchOS and tvOS, a new session identifier gets generated whenever your app returns from background (this will also send a sessionUpdated
signal). To manually set a new session call TelemetryManager.generateNewSession()
.
Default User
You can now call the TelemetryManager.updateDefaultUser(...)
method to set the default user for all signals created after the default user has been set (e.g. when your user has logged in). This way you don't have to supply a user identifier every time you send a signal, just set it once and all your signals belong to that user.
(User identifiers are hashed on device, and then hashed again on the server before storage, so you can use email addresses or other sensible information as user identifier without breaking any privacy law: the actual identifier never leaves the device)