Kotlin 2.x + Compose product work
New features and full apps on Kotlin 2.x with K2 compiler, Jetpack Compose with strong-skipping mode, Material 3 with dynamic color, Hilt DI, Room/DataStore persistence, Coroutines + StateFlow.
Services
Native Android engineering on Kotlin 2.x and Jetpack Compose for consumer and B2B products targeting phones, tablets, foldables, Wear OS, and Android Auto. Fixed-scope Android projects tiered by ambition: an MVP from $3,500 in 4–8 weeks, a production app from $5,800, a full product from $9,200, and a complex app from $11,500. We ship Google Play release-ready bundles that pass Data Safety review on the first submission and handle the annual targetSdk bump. All-in USD pricing, CET workday with 9 AM–1 PM ET overlap, GDPR-aligned by default.
GDPR-aligned · ISO 27001 ready · SOC 2 Type II in progress · HIPAA-capable · CCPA-acknowledged · CET workday with 9 AM–1 PM ET overlap
Android is where global volume lives and where Google Play policy gets stricter every year. The Data Safety form must match the actual SDK behaviour or the listing gets pulled. Account Deletion is mandatory in-app and from the web. targetSdk has to track the latest release within one year or new installs stop. Foreground service types on Android 14+ broke a generation of apps that worked fine on Android 13. EU DMA opened User Choice Billing and alternative distribution for the categories Google was forced to open. We build Android apps that survive all of this — Kotlin 2.x with the K2 compiler, Compose-first UI, Baseline Profiles for cold start, and a Data Safety form that is actually accurate. Scope and price are fixed all-in in USD before any code is written. See it in practice in our Refactoring xRouten case study.
New features and full apps on Kotlin 2.x with K2 compiler, Jetpack Compose with strong-skipping mode, Material 3 with dynamic color, Hilt DI, Room/DataStore persistence, Coroutines + StateFlow.
Data Safety form audited against actual SDKs, in-app + web account deletion, foreground service types declared correctly, restricted permissions justified, Pre-Launch Report crashes fixed before release.
Play Billing Library 7.x with base-plan/offer subscriptions, price-change consent flows, EU User Choice Billing pilot where eligible, alternative distribution APKs for DMA-relevant categories.
Java to Kotlin, XML Views to Compose, RxJava to Coroutines, AsyncTask/Loader to ViewModel + StateFlow, SupportLibrary to AndroidX, Gradle Groovy to Kotlin DSL with version catalogs.
Macrobenchmark and Microbenchmark, Baseline Profiles generated per release, cold start under 500 ms on Pixel 6a-class devices, Perfetto traces for jank, R8 full mode with proper keep rules.
Wear OS 4/5 with Compose for Wear, Tiles and Complications, Android Auto + Automotive OS apps, foldable continuity with WindowSizeClass, large-screen quality tier for Play Store.
Week 1: audit existing module graph (or define scope), pick targetSdk/minSdk, run a Google Play policy gap analysis (Data Safety, Account Deletion, permissions), write the baseline.
Weeks 2–3: module graph, Gradle KTS + version catalog, Hilt + DI graph, CI on GitHub Actions with Fastlane supply, internal Play track, Crashlytics + Performance Monitoring wired.
Two-week sprints, internal Play track build every Friday, weekly demo, Crashlytics + Pre-Launch Report review every Monday, Data Safety form re-checked against the SDK list every sprint.
Staged rollout on Play Console (1 percent → 5 → 20 → 100), Android Vitals monitored for ANR rate and crash rate, hotfix path tested, retrospective, then back into cadence.
Default for most brands. Fixed scope, fixed price, all-in in USD. An MVP from $3,500 in 4–8 weeks through to a complex app from $11,500, scoped and signed off before any code is written.
After launch, the same squad keeps shipping against a rolling backlog — new features, form factors and Play policy upkeep — per-sprint fixed scope or as a longer dedicated Android team, no recontracting.
One or two senior Android engineers embedded in your team via staff augmentation — your standups, your code review, your release process — when you need capacity, not a turnkey project.
All engagements include NDA, DPA, and full IP assignment signed before kickoff. CET workday with 9 AM–1 PM ET overlap for US founders.
Most agencies keep the number for a sales call. Below are reference formats for different levels of product ambition — we name the exact quote after a free scope assessment. Android projects are fixed-scope and all-in, quoted in USD, with no recruitment markup, no tool surcharges and no hidden fees. You see the line-item budget before any code is written and sign off on it.
MVP
from $3,500
4–8 weeks · one core flow
Your first working Android app. One core user flow on Kotlin 2.x and Jetpack Compose, Material 3 UI, event analytics, and a Google Play release with a Data Safety form that passes review.
Normal
from $5,800
production app
A production app for real users. Several features, backend integration, offline persistence with Room/DataStore, analytics and Crashlytics, and a staged Google Play release.
Optimum
from $9,200
full product
A full product across surfaces. Multiple feature modules, user roles, external integrations, CI/CD with Fastlane, and device QA across the Android matrix including tablets and foldables.
Advanced — from $11,500: a complex app with payments and Play Billing, offline-first sync, native SDKs and Wear OS / Android Auto reach, built to scale with A/B experiments.
What moves the number: how many form factors you ship (phone-only vs phone + tablet + Wear OS + Android Auto + foldables — each surface adds design and QA); the depth of legacy migration (Java→Kotlin, XML Views→Compose, RxJava→Coroutines); how many restricted permissions and third-party SDKs the Data Safety form has to justify; billing complexity (Play Billing subscriptions, EU User Choice Billing, DMA alternative distribution); and compliance scope (GDPR-aligned, HIPAA-capable, or PSD2 raises the bar). A single-surface Compose app on clean data sits at the MVP end; a multi-surface product under a DPA writing to production systems sits at the Advanced end. Google Play and third-party API fees are billed on your own accounts, so you keep the cost lever. Prices are indicative and are fixed in a written quote for your specific scope.
Android + iOS refactor and rebuild for a German last-mile logistics operator — multi-point route planning, real-time driver tracking and in-app invoicing live in the EU.
Unified iOS & Android app for remote alarm, embedded video and smart-home control across the US & EU — zonal entitlement, role-based access.
Native iOS & Android fitness-marathon and challenge app — programs, stats, and leaderboards on a Laravel backend, for the US & EU.
An Android app is only as safe as its fit with your regulatory and operational reality. We pair native Kotlin engineering with industry-specific compliance across US & EU markets, and share a codebase and release process with our iOS and cross-platform mobile teams when a product ships on both stores.
Secure Android banking and payment apps with hardware-backed Keystore key material, BiometricPrompt with CryptoObject for step-up authentication, PSD2 SCA flows, and PII kept out of Crashlytics and analytics via breadcrumb scrubbing — Play Data Safety filled from the real SDK list, not a checkbox exercise.
For digital wallets and crypto products we implement on-device key custody, MiCA-aware disclosure flows, and runtime app self-protection. EU User Choice Billing is wired in for eligible FinTech subscription products to let users see an alternative processor alongside Play Billing, with the corresponding 3% service-fee reduction applied correctly.
FinTech apps →HIPAA-capable, GDPR-aligned Android apps for patient intake, electronic records, and fitness tracking — EU-region backends in eu-central-1 or europe-west3, documented data flows per processing category, and account-deletion implemented in-app and from the web (a Play policy requirement since May 2024), as demonstrated on our MFIT fitness build.
Health apps we build export HL7 ORU and FHIR R4 bundles to hospital information systems, use Android Health Connect for on-device fitness data aggregation with explicit user consent per data type, and apply EU MDR-aware engineering controls where the product crosses into Class I medical device territory. Audit logs are designed to satisfy the 72-hour GDPR breach reporting window from day one.
HealthTech apps →Driver and last-mile Android apps with multi-point route optimization, real-time GPS tracking, and in-app invoicing over continuously changing delivery state — live in the EU on our xRouten build for a German logistics operator. Foreground services with WorkManager fallback keep GPS streams alive under Doze mode and per-OEM battery optimizers on Samsung, Xiaomi, and Pixel devices.
Dispatch interfaces show live driver positions on a mapping SDK tile layer with sub-second update latency, ELD/eFTI integrations handle regulatory hours-of-service logging, and proof-of-delivery flows capture signatures and photos that sync to the backend when connectivity returns. Android Auto integration adds voice-guided turn-by-turn navigation without requiring the driver to touch the phone.
Logistics apps →Native Android storefronts and loyalty apps grounded in your catalogue, with Play Billing subscriptions using the base-plan/offer model, deep links from push and email campaigns, and offline-first Room caching so users can browse and add to cart with no signal. Staged Play Console rollouts catch regressions on a 1% cohort before they reach the full audience.
We integrate with ElasticSearch or Algolia for on-device search with sub-100 ms latency, connect to 1C ERP and SAP for real-time inventory sync across warehouse and store locations, and build BNPL checkout flows compliant with EU consumer credit regulations. Dynamic theming with Material 3 lets the app reflect seasonal campaigns without a store update.
Retail apps →Android learning apps, LMS integrations, and interactive assessment platforms for K-12, higher education, and corporate training. We build adaptive content delivery with SCORM and xAPI event tracking, offline lesson packs using WorkManager-prefetch and Room storage, and real-time quiz and leaderboard flows over WebSocket for high-engagement classroom scenarios on Chromebooks and Android tablets.
COPPA (US) and GDPR-K (EU) parental consent flows are implemented with age-gating at both the app store level and inside the app, with no behavioral advertising SDKs permitted in the under-13 data flow. Push notification scheduling is tuned to pedagogical cadence — lesson reminders and streak alerts timed to drive completion without triggering opt-out fatigue across a diverse device matrix.
EdTech apps →Property search, management, and inspection Android apps for real estate platforms, property managers, and marketplace operators. Our ANT PropTech Marketplace case study is a live example of a transaction-capable real estate platform built on Android, covering property listings with floor-plan overlays, virtual tours, mortgage calculator integrations, and GDPR-aligned user identification for regulated property transactions in the EU.
Field inspection apps we build use CameraX for high-resolution photo capture with GPS-tagged metadata, offline-first Room storage for reports when inspectors work in basements or rural properties with no signal, and PDF generation via Android PdfDocument for instant report delivery to clients on-site. Integration with ERP and property management systems (Yardi, Re-Leased, SAP RE-FX) is handled by the same team that builds the mobile layer.
PropTech apps →GDPR-aligned · ISO 27001 ready · SOC 2 Type II in progress · HIPAA-capable · CCPA-acknowledged
Every engineer on the roster has shipped at least three production Android apps and worked through the Java→Kotlin and View→Compose migrations. No juniors billed at senior rates.
Data Safety form audited every sprint, Account Deletion shipped before launch, targetSdk roadmap planned, restricted-permission justifications written and submitted before the deadline.
GDPR with IAB TCF v2.2 via Google UMP, CCPA Do Not Sell, EU User Choice Billing where eligible, DPAs with every third-party SDK, PII scrubbing in Crashlytics and analytics.
For regulated products we run a HIPAA or PSD2 gap assessment in week 1 and design the data flows accordingly — secrets stay in EncryptedSharedPreferences or hardware-backed Keystore, biometric prompts use BiometricPrompt with CryptoObject.
The legacy Android app had years of accumulated debt and no iOS counterpart. YuSMP refactored the existing code, shipped the iOS version, and added live driver tracking and in-app invoicing — all without stopping daily operations for our drivers.
Our iOS and Android apps had diverged over years of separate development. YuSMP rebuilt a single unified solution with live camera feeds, smart-home device control, and role-based multi-user access. Zero critical defects in the first six months post-launch.
The right technology choice depends on your team's background, target devices, and the platform capabilities your app requires.
Kotlin is the officially recommended language for Android development, with 90%+ of new Android code at Google written in Kotlin. It offers null safety, coroutines for async programming, and concise syntax that reduces boilerplate by 30–40%. All new Jetpack libraries are Kotlin-first and some APIs have Kotlin extension syntax only.
Java remains viable for teams with existing codebases and Java expertise, with full backward compatibility through Kotlin interoperability. However, new projects should default to Kotlin for better tooling support, idiomatic Android development patterns, and coroutines-based asynchronous programming that avoids callback hell.
Jetpack Compose is the recommended UI toolkit for new Android projects. Its declarative approach, built-in animation support, and unified Kotlin codebase eliminate the complexity of XML layouts and view binding. For existing apps, incremental Compose adoption is supported through ComposeView interoperability, allowing screen-by-screen migration without a full rewrite.
XML Views remain appropriate for teams with large existing View-based codebases, requirements to support Android API level 21 (Lollipop), and complex custom views with intricate drawing code. Migration should be evaluated based on team familiarity, target API level, and the cost of rewriting existing screen-level logic.
Flutter delivers consistent UI and near-native performance on both Android and iOS from a single Dart codebase, making it ideal for startups and teams with limited mobile resources. Flutter's widget library provides pixel-perfect cross-platform UI without relying on native components, and Dart's strong typing reduces runtime errors.
Native Android development with Kotlin excels when deep platform integration is required — hardware sensors, custom launchers, Android-specific APIs, Wear OS, or Play Store optimization where binary size and launch performance are critical. For apps that are primarily UI-driven with standard platform features, Flutter typically ships 30–40% faster. See our Flutter development service for a detailed comparison.
New projects start on Kotlin 2.x with the K2 compiler, target SDK 35 (Android 15), and set minSdk to 26 (Android 8.0) which covers roughly 95 percent of active US/EU devices. Google Play's policy requires targetSdk to be within one year of the latest major release, so we plan SDK upgrade sprints into the annual roadmap. For B2B fleet apps on rugged devices we drop minSdk to 24 (Android 7.0) with isolated AndroidX backports. Jetpack Compose is the default UI layer; View/XML interop is kept for legacy modules and CameraX/PdfRenderer paths where Compose is still catching up.
We run a pre-flight against the most common rejection categories: Data Safety form mismatched against actual SDK behaviour, missing Account Deletion (required since May 2024 in-app and from the web), foreground service types not declared correctly on Android 14+, restricted permissions without a Permissions Declaration Form (SMS, Call Log, AccessibilityService, MANAGE_EXTERNAL_STORAGE), and Families policy violations. We also fix the Pre-Launch Report crashes Google runs on Firebase Test Lab devices before our internal release, which catches 80 percent of post-publish 1-star reviews.
Google Play Billing Library 7.x is the default for digital goods (Play policy still requires it inside the Play distribution channel for most categories). For EU users we implement the User Choice Billing pilot where eligible — users see Play Billing alongside the developer's own processor, with the corresponding service-fee reduction (3 percent). For DMA-relevant categories we support alternative distribution via direct APK install flows with the proper Install Unknown Apps user prompts, and we keep a separate Play track for the same app. Subscriptions use the new base-plan/offer model with proper price-change consent flows.
Compose-first since 2023 for all new code: Compose 1.7+ with the strong-skipping mode, Compose Navigation with type-safe routes, Compose Material 3 with dynamic color, and Compose for Wear OS where the product extends to watches. ViewModels use Kotlin Coroutines and StateFlow, dependency injection via Hilt, data layer with Room and DataStore. We still embed AndroidView/ComposeView interop for CameraX preview, AdMob native ads, ExoPlayer (Media3), and PdfRenderer until Compose-native equivalents are production-ready. Baseline Profiles are generated for every release to keep cold start under 500 ms on mid-range devices.
GDPR-aligned by design: lawful basis documented per data category, Google's User Messaging Platform (UMP) SDK for IAB TCF v2.2 consent in the EU, granular data export and account deletion (also a Play policy requirement), and DPAs with every third-party SDK. The Data Safety form is filled from a single source of truth that we audit against the actual SDKs in the bundle — mismatch is the #1 cause of policy enforcement actions. For EU customers we host backend infra in eu-central-1 or europe-west3, enable Android Privacy Sandbox where the product uses ad attribution, and keep PII out of Crashlytics/Sentry with breadcrumb scrubbing.
Android apps are fixed-scope and quoted all-in in USD, tiered by product ambition. An MVP runs from $3,500 (4–8 weeks): the first working app with one core flow on Kotlin 2.x and Jetpack Compose plus a Google Play release. A production app is from $5,800 (several features, backend integration, offline persistence, analytics). A full product is from $9,200 (multiple modules, roles, external integrations, CI/CD and device QA). A complex app with payments, offline-first sync, native SDKs and A/B experiments is from $11,500. What moves the number is form-factor count, integration and permission depth, billing complexity and compliance scope. You see the line-item budget before any code is written and sign off on it.
We build against the Android Device Matrix — phones (compact, medium, expanded window size classes), 7–12 inch tablets, foldables (inner and outer display continuity with WindowSizeClass and fold-aware layouts), and large screens — using WindowSizeClass and adaptive layouts from day one rather than bolting them on. minSdk 26 covers ~95% of active US/EU devices; we drop to 24 for B2B fleet use cases with isolated AndroidX backports. OEM battery optimizer quirks (Samsung, Xiaomi, OnePlus, Huawei) are tested on real hardware for background tasks, not just emulated. Baseline Profiles are generated per release to compensate for varying JIT compilation behavior across OEM builds, keeping cold start under 500 ms on a Pixel 6a-class device even after a Play Console auto-update.
Yes. Wear OS 4/5 with Compose for Wear, Tiles, and Complications is our standard path for smartwatch companions — health and fitness apps, notification bridging, and offline workout tracking that syncs to the phone via Wearable Data Layer. Android Auto and Automotive OS apps follow AAOS design guidelines for distraction-tested in-car UX, with voice interaction via Car App Library and turn-by-turn routing integrated with the phone app. Android TV uses the Leanback library and Compose for TV for 10-foot UI with remote and DPAD navigation. Each form factor goes through Google Play's large-screen and automotive quality tier reviews, which we pre-flight before submission.
Offline-first means the app is fully functional with no network, not just gracefully degraded. We use Room as the single source of truth with a reactive StateFlow layer so the UI updates instantly from the local database, then a sync engine that reconciles with the backend when connectivity returns. Conflict resolution strategy (last-write-wins, server-authoritative, or CRDT-based) is agreed in discovery based on the data model. WorkManager handles background sync with exponential backoff and network constraint awareness, so the sync job runs when the device has a suitable connection without draining the battery. We have shipped offline-first in logistics (xRouten, where drivers submit delivery confirmations in dead zones), HealthTech, and field inspection scenarios where connectivity is structurally unreliable.
Yes, and this is a common engagement for us. The standard approach is incremental: we convert Java files to Kotlin with IntelliJ's automatic converter, then clean up nullability, coroutines, and idiomatic Kotlin by module. The UI migration from XML Views to Compose is done screen-by-screen using ComposeView interop so the old and new UI coexist without a big-bang rewrite — your app keeps shipping to users throughout. We also migrate RxJava chains to Kotlin Coroutines and StateFlow, AsyncTask/Loader to ViewModel, and Groovy build scripts to Kotlin DSL with version catalogs. The migration is sized in our initial discovery assessment, and we commit to not introducing regressions by running the existing Espresso test suite against each Compose screen as it ships.
We apply the standard Android testing pyramid: unit tests with JUnit5 and MockK for business logic and ViewModels (fast, no device required); integration tests with Room in-memory databases, Hilt TestComponent, and Retrofit MockWebServer for data layer contracts; and UI tests with Compose Test and Espresso for end-to-end flows. Compose semantics make UI tests far more stable than screenshot diffing on View hierarchies. Macrobenchmark and Microbenchmark measure cold start and scroll performance on Baseline Profile targets. Pre-Launch Report failures on Firebase Test Lab are fixed before every internal release, catching device-specific crashes on Samsung and Pixel hardware in the test lab before real users encounter them. For regulated industries we add additional security test passes covering data-at-rest encryption, network traffic analysis, and certificate pinning verification.
Practical guides on Android development, costs, and cross-platform choices.





Share a few details and a senior consultant will reply within one business day.