1.0.0
First public release, feature-equivalent with the Swift SDK 1.0.0 and sharing its wire format.
Added
AppGlance.configure(context, apiKey[, debug]), orconfigure(context, Configuration)for
full control: intervals,enabledEnvironments,environmentfor beta channels,
trackAppLifecycle,debug,endpoint.track,trackScreen,identify,setUserProperties,reset,setActive,flush;
AppEnvironment,Signal,UserProperty.- A random install id in
SharedPreferences(inside Auto Backup, so a reinstall on the same
account usually keeps it).installis recorded exactly once, first, stamped at configure. - Sessions and presence via
ProcessLifecycleOwner, with asession_idon every event and the
same five-minute timeout the dashboard uses; a heartbeat every 60 s while foregrounded; a flush
on background. The device's region setting as the country (collectsCountry); and anything you
track. - Optional user properties, merged and clamped to the server's limits (20 keys, 40 / 200
characters), sent asuser.identifyonly on change;reseton sign-out. - Environments: every event is tagged
production,beta,emulatorordebug(stored by the
ingest beside the Apple tiers). Emulator runs and debuggable builds are detected; a Play testing
track is opt-in viaenvironment = AppEnvironment.BETA.enabledEnvironmentsdefaults to
{PRODUCTION, BETA}. - Debug mode (
debug = true): the current build sends whatever its environment (the tag stays
truthful, so those events appear under All in the dashboard and never in Live) and logs to
logcat. Without it, a gated build logs one line explaining why nothing is sent. - Delivery: events are persisted to
noBackupFilesDiras they are tracked, sent oldest-first in
slices of 100 through one serial sender, and retried after transient failures. Every event
carries a client-mintedevent_idand the ingest ignores replays. Presence pings, which the
server folds into rollups on arrival, are re-sent only when it provably never saw them -
including after a process killed mid-request, since the on-disk queue never holds an in-flight
ping. - Calls apply strictly in call order on one background thread; calls made before
configure, or
before the user's first unlock under Direct Boot, are held (up to 200) and replayed. - Permanent
4xxresponses drop the slice instead of retrying forever;413halves it. minSdk 21, one dependency (androidx.lifecycle:lifecycle-process), explicit-API mode,
ktlint-clean.