Warp SDK

13-module Android SDK -Kotlin 2.1, Jetpack Compose, Material 3, Ktor 3, Hilt

13 focused Kotlin packages for Android.

  • MVVM with BaseViewModel and UiState, Ktor 3 networking
  • Jetpack Compose UI with Material 3 theming
  • DataStore + EncryptedSharedPrefs, biometric auth, Play Billing 7+
  • Timber logging, provider-agnostic analytics, runtime locale switching
  • Feature flags, Compose debug overlay, FCM notifications
  • Module-for-module parity with Weave (iOS), 183 tests
Private RepositoryThis is a private repository. You need collaborator access to view the source code on GitHub.
13
Modules
183
Tests
Weave
Parity
1.0.0
Version
Stable
Status

Tech Stack

Kotlin 2.1Jetpack ComposeMaterial 3HiltKtor 3RoomDataStoreCoroutines

How It Works

Ecosystem
🤖 Warp · Android
🍎 Weave · iOS (13-module parity)
🌐 Loom · React
🔧 Spool · Backend (ErrorCode source)
Tech Stack
Kotlin 2.x
K2 compiler
Compose
Material 3
Hilt
Compile-time DI
Ktor 3
OkHttp engine
Room
DataStore
Coil 3
Image loading
Modules (13)
🏗
warp-arch
BaseViewModel, UiState, Events
🌐
warp-net
Ktor 3, Spool envelope unwrap
warp-log
🎨
warp-ui
Compose library, M3 theme
warp-util
💾
warp-data
DataStore, EncryptedPrefs
🔑
warp-auth
Credential Manager, biometric
💰
warp-revenue
Play Billing 7+ wrapper
📝
warp-log
Timber structured logging
📊
warp-analytics
Provider-agnostic analytics
🌍
warp-locale
Runtime language switching
warp-config
Remote config + feature flags
🔍
warp-trace
Shake-to-inspect overlay
warp-log
🔔
warp-notification
FCM + local notifications
🔧
warp-util
Kotlin extensions
10 of 13 modules have zero internal dependencies

Features

Modular Architecture

13 focused Kotlin modules with opt-in imports.

  • Gradle KTS + Version Catalog (libs.versions.toml)
  • Each module publishes independently
  • Module-for-module parity with Weave SDK (iOS)

warp-arch -MVVM + UiState

Clean architecture foundation.

  • BaseViewModel with safeCall, sealed UiState pattern
  • Result extensions and one-shot event channels

warp-net -Ktor Networking

Ktor 3 HTTP client.

  • Automatic Spool response envelope unwrapping
  • ErrorCode parity with @spool/http
  • ApiException mapping, interceptors, and retry logic

warp-ui -Compose Components

Material 3 Compose components.

  • Button, Card, Loading, Error states
  • Spacing tokens and typography scales
  • Full dark mode and Dynamic Color support

warp-data -Persistence

Multi-layer persistence.

  • InMemoryCache with TTL
  • DataStore preferences, EncryptedSharedPreferences for secrets
  • Thread-safe with Coroutines

warp-auth -Biometric + JWT

Authentication and biometrics.

  • JWT decoder, BiometricPrompt integration
  • Credential Manager for passkeys
  • Mirrors AuthWeave (iOS) API surface

warp-revenue -Play Billing

Google Play Billing 7+ subscriptions.

  • Subscriptions and one-time purchases
  • Provider-agnostic API mirroring RevenueWeave (iOS)

warp-log

Timber-based structured logging.

  • LogCategory for organized log streams
  • Configurable log levels with metadata
  • Production-safe filtering

warp-analytics

Provider-agnostic analytics.

  • AnalyticsManager with pluggable providers
  • Swap Firebase/Mixpanel without code changes
  • Event batching and deduplication

warp-locale

Runtime language switching.

  • No app restart required
  • Mirrors LocaleWeave (iOS) API surface
  • Bundle-based string resolution

warp-config

Feature flags and remote configuration.

  • Caching with local overrides
  • Mirrors RemoteConfigWeave (iOS) API
  • Runtime toggle without redeploy

warp-trace

Compose debug overlay for dev builds.

  • Network inspector with request/response details
  • Log viewer with filtering
  • Performance metrics dashboard

warp-notification

Push and local notification management.

  • FCM push notification handling
  • Local notification scheduling
  • Channel management with categories

warp-util

Common Kotlin utilities.

  • Date, String, Number formatting extensions
  • Android-specific helpers
  • Shared constants and type aliases

Production Resilience Pack

Opt-in primitives that bring Warp to production parity with the iOS counterpart.

  • warp-net -CertificatePin data class + OkHttp-backed pinner. ApiClientConfig.certificatePins is empty by default; supplying pins wires an OkHttpClient.Builder().certificatePinner(...) into Ktor's engine.
  • warp-data -EncryptedPreferencesHelper wraps AndroidX Security EncryptedSharedPreferences (AES256_SIV / AES256_GCM, master key in Android Keystore).
  • warp-log -CrashReporter installs a process-wide Thread.UncaughtExceptionHandler and dispatches captured throwables to every registered CrashSink. Also exposes a CoroutineExceptionHandler factory.
  • warp-arch -StateRestorer + rememberStatePersistor / rememberRestoredState composables hook the host scene's Lifecycle so state is auto-saved on ON_STOP and restored on first composition.
  • warp-util -Flow.throttleFirst(periodMillis) leading-edge dual of debounce, plus Flow.distinctConsecutive(keySelector).

What's New in 1.2.0

Module fillout pass that brings warp-ui, warp-revenue, and warp-config to a level where you can ship a real Android app without writing the boilerplate yourself.

  • warp-ui -Eight new Compose components close the gap with Weave UIWeave: WarpBadge (5 variants), WarpTextField + WarpPasswordField, WarpDialog, WarpEmptyState, WarpAvatar (Coil 3), WarpDivider, WarpSearchBar, WarpOTPInput.
  • warp-revenue -Production PlayBillingManager on Play Billing 7. BillingManager covers connect / queryProducts / queryPurchases / purchase / acknowledge for Subscription and OneTime products. New EntitlementResolver (pure Kotlin, fully testable) maps purchases into a richer SubscriptionState (Active, InGracePeriod, CancelledStillActive, OnHold, Expired, NotPurchased).
  • warp-config -RemoteConfigProvider interface + InMemoryRemoteConfigProvider, RemoteConfigValue with safe coercion, and DefaultRemoteConfigManager with override -> cache -> defaults resolution order, fetch deduplication, and StateFlow signals.

What's New in 1.3.0 (iOS Parity Pass)

The remaining three modules are now feature-equivalent to their Weave (iOS) counterparts.

  • warp-auth -AuthCredentials + AuthSession reactive state (Unknown / SignedOut / SignedIn) with bootstrap, signIn, signOut. TokenStore interface + InMemoryTokenStore for tests. AuthProvider abstraction with AuthResult sealed type. GoogleSignInProvider wraps Credential Manager.
  • warp-analytics -Typed event helpers (ButtonClickEvent, ScreenImpressionEvent, PurchaseEvent, CustomEvent). InMemoryAnalyticsProvider captures every signal for assertions and as a default fallback. BatchingAnalyticsProvider decorator buffers events and flushes on capacity or via manual flush().
  • warp-trace -NetworkStore + LogStore bounded ring buffers (StateFlow-backed for Compose). TraceConfiguration toggles + host-fragment ignore list. ShakeDetector accelerometer-based shake-to-show overlay trigger. DeviceInfoSnapshot.capture(context).