i7
Team
Contact us
Contact us
Services

Mobile app development in Tashkent

We build mobile apps that reach the store and stay there: native in Swift and Kotlin, cross-platform in Flutter, with Payme, Click and Uzum payments, fiscal receipts and push notifications. i7 Team has worked in Tashkent since 2019 and takes the whole project — architecture, backend, app, App Store and Google Play release, and support once it is live.

Talk to us

Flutter or native: decided before the first screen

Flutter gives you one codebase across iOS and Android, and the saving is real wherever the interface is the same on both sides: catalogues, forms, account areas, order history. Native development — Swift with SwiftUI, Kotlin with Jetpack Compose — wins when the app lives close to the hardware: background location for couriers, BLE and NFC at a door reader, heavy camera work, widgets and Live Activities.

The caveat nobody says out loud: Flutter does not remove platform code, it localises it. Payme Business, for instance, ships an Android SDK — on iOS the same logic has to be built over the Merchant API yourself. That means a platform channel, two test branches and a separate slice of the schedule. It belongs in the estimate, not in a discovery during week three.

So we choose the stack after breaking the requirements down into a list of system APIs, not the other way round.

  • Flutter — when screens and logic match on both platforms and time to market matters
  • Native — when background work, sensors, memory or system integrations are critical
  • Hybrid — Flutter as the base plus native modules where nothing else will do

Payme, Click and Uzum: payments and the fiscal receipt

Three providers, three different protocols, and the difference shows up on the backend. Payme Business calls your server over JSON-RPC 2.0 using CheckPerformTransaction, CreateTransaction, PerformTransaction, CancelTransaction, CheckTransaction and GetStatement — the server owns the transaction, not the app. Click works differently: a two-stage Prepare and Complete flow in the SHOP API, or the Merchant API with card binding and SMS confirmation. Uzum Checkout covers card binding, refunds, statuses and fiscalisation. Underneath all three sit Uzcard and Humo, with Visa and Mastercard for foreign cards.

The engineering detail that most often burns production: the app must never store a card number. The PAN goes to the provider and you keep a token. Payment callback handlers have to be idempotent — on a timeout the provider will retry, and a second PerformTransaction must not charge the customer twice.

Then there is the receipt. Online payments in Uzbekistan are fiscalised: the data goes to a fiscal data operator and on to the Tax Committee, and the customer checks the receipt in the Soliq app. A virtual till belongs in the architecture from day one, not bolted on after launch.

Releasing on the App Store and Google Play: what actually moves the date

Developer accounts are registered to the company, and that is the first deadline outside our control. Apple requires a D-U-N-S number registered to the legal entity; Google Play links a payments profile and verifies the legal name, address and the same D-U-N-S. An individual account in Uzbekistan needs a government-issued photo ID and proof of address. Android developer verification was extended to all developers in March 2026, and it starts affecting how apps install from 30 September 2026 in the first markets, with global rollout through 2027.

The technical thresholds are known in advance and we plan them as milestones. From 31 August 2026, new apps and updates on Google Play must target Android 16 (API 36), while apps already published need at least API 35; an extension can be requested until 1 November. Apple will not pass an app with sign-up under guideline 5.1.1(v) unless the account can be deleted from inside the app, and if you offer Sign in with Apple the token must be revoked through the REST API.

Review itself is measured in days, but every rejection resets the queue. That is why we work through the review checklist before we cut the release build, not after the first refusal.

Personal data: what changed on 27 March 2026

Law ZRU-1125 of 26 March 2026 relaxed data localisation, and it noticeably simplified architecture decisions. Mandatory storage inside Uzbekistan now applies to biometric and genetic data, and to subscriber data held by telecoms operators; those databases must be registered in the State Register of personal data bases. Everything else may be processed abroad provided the cross-border transfer conditions are met — an adequacy list of countries, standard contractual terms, or binding corporate rules.

The practical consequence for a mobile app is worth spelling out. Face or fingerprint login through Face ID, Touch ID and BiometricPrompt does not make you an operator of biometric data: the template never leaves the Secure Enclave or the TEE, and the app only receives a yes or a no. If a project genuinely collects biometrics — face recognition at a turnstile, remote customer identification — both the legal position and the hosting decision change. We raise that before the architecture is fixed, not at acceptance.

What you are left holding after launch

App Store Connect and Google Play Console accounts are registered to your company and stay yours, along with the review history and the rating — moving an app between accounts is slow and painful, so we set it up correctly at the start. Google Play uses Play App Signing: Google holds the app signing key, and your upload key stays with you. On iOS, the certificates, profiles and the .p8 APNs key live in your account. The repository, design files and documentation are handed over with the project.

Updates go out gradually: staged rollout by percentage on Google Play, phased release by day on the App Store. If the crash rate climbs, the rollout stops before the whole audience notices. Crashlytics or Sentry is wired in before release, not after the first complaint. Push notifications run through APNs and FCM from a single backend so that segments and schedules cannot drift apart between platforms.

  • Source code, design files and documentation handed over formally
  • Developer accounts and signing keys registered to your company
  • Crash monitoring and analytics live before the first release

Common questions

Four things set the timeline: the number of roles and screens, whether a backend already exists or has to be written from scratch, how many external systems connect (payments, 1C, CRM, warehouse), and whether you need an offline mode with synchronisation. On top of development sits the release tail: App Store and Google Play review is measured in days, but a rejection resets the queue, and issuing a D-U-N-S number is entirely outside our hands. We produce the schedule once requirements are gathered, and we tie it to milestones rather than to a promise of a month.

Related services

All services

Let's talk about your app

Tell us what the app has to do and which systems it connects to, and we will come back with a scope, a stack and a milestone schedule. Tashkent, +998 77 372 21 12, info@i7team.uz

Talk to us

WHAT’S UP ON SOCIALS

Behind the scenes at i7
i7 team collaborating
i7 designers at work
i7 engineer portrait
On stage with i7
Inside the i7 studio
Late-night build session

Follow i7 on social media