ENGINEERING / 01
Android platforms built to last.
I design Android apps and SDKs for regulated products, where a bug is a compliance problem and an API change breaks someone else’s release.
ANDROID / 01
Android engineering
A layered architecture keeps features independent, the domain testable and security in one place. Select a layer.
Layer
Domain / core
Use cases and models with no Android dependency. Where TDD pays off the most.
KotlinCoroutinesFlowTDD
- Kotlin
- Jetpack Compose
- Jetpack
- Coroutines
- Flow
- RxJava
- Dagger 2 / Hilt
- Clean Architecture
- MVVM / MVI
- Modularization
- TDD
- JUnit / Mockito
- Instrumented tests
- CI/CD
- Bluetooth / BLE
SDK / 02
SDK Lab
SDKs are products, not reusable folders. Their users are other engineers, and their contract is the public API.
SDK / 01
AUTHENTICATION
- Identity
- Certificates
- mTLS
- Passwordless login
- Device binding
SDK / 02
SECURITY
- Cryptography
- Key management (Keystore)
- Digital signatures
- Hardening (DexGuard / R8)
SDK / 03
DEVELOPER EXPERIENCE
- Kotlin-first APIs
- Documentation
- Samples
- Testing
- Compatibility
An SDK is a product. What it has to get right:
- API design
- Backwards compatibility
- Versioning
- Developer experience
- Documentation
- Testing
- Distribution
- Security
- Observability
In practice: the Android and iOS SDKs for the Ypsomed medical self-injection device, and the Android identity SDK at Digidentity.