Mobile app
Trumia
A consumer mobile banking app in Flutter: KYC onboarding, card issuing, SEPA/SWIFT payments and passkey authentication.
- Timeline
- 2026
- Platforms
- iOS, Android
- Stack
- Flutter
- Dart
- BLoC / Cubit
- Sumsub
- Wallester
- Passkeys / WebAuthn
- Secure storage
- GitLab CI
- HashiCorp Vault
Overview
Trumia, my most recent project, is a consumer mobile banking application built in Flutter and released through a multi-environment setup: Dev, Stage, UAT and Production. It covers the full customer lifecycle, from compliance onboarding and identity verification to cards, transfers and transaction history.
My role
Flutter Engineer. I built onboarding, KYC verification, passkey authentication, card management and payments, and contributed to the app's security and release infrastructure.
The challenge
A banking onboarding flow has to meet compliance requirements, depend on an external identity-verification provider and stay correct when verification results arrive late or fail. The mobile work also needed to progress while the backend was still being built.
The solution
The backend's webhook verdict is the source of truth for verification rather than the SDK's on-device status, with bounded status polling and explicit recovery for error and still-pending states. The Sumsub SDK sits behind an interface, so the app could ship ahead of the backend. Onboarding progress is persisted to secure storage, and an app-level gate only routes users into the app once they are verified.
Architecture & implementation
- Isolated the Sumsub SDK behind an interface and handled its native iOS setup.
- Passkeys (WebAuthn) with Android signing, Digital Asset Links and per-environment configuration.
- Contributed to app signing, RASP configuration, GitLab CI/CD, HashiCorp Vault secrets and environment isolation.
- Authored Architecture Decision Records on security and release signing.
Key features
- 9-step compliance questionnaire covering residency, personal and financial profile, tax and PEP declarations
- Country-gated waitlist path
- Resumable onboarding progress
- Document capture and liveness checks
- Card issuance, editing, freeze/unfreeze, card controls and configurable spending limits
- SEPA, SWIFT and domestic transfers with beneficiaries, validation and confirmation
- Transaction history, details and statuses
- Passwordless sign-in with passkeys