Mobile app development: native Android, PWA and cross-platform
We build apps that run smoothly on your users' real phones, not just on the developers' test devices, using the technology that fits your product rather than the trend of the month.
Mobile app development starts with one decision that shapes cost and quality more than any other: native, cross-platform or PWA? We build native Android apps in Kotlin and Jetpack Compose, reach for Kotlin Multiplatform and Compose Multiplatform when logic must be shared across platforms, and ship a PWA when installing from a store is not essential. We make that call with you, based on your audience, budget and hardware needs.
A native Android app gives the best performance, full hardware access and a familiar user experience, and it is the standard route for store distribution and in-app payments. A PWA costs less, opens from a link, updates instantly and also runs on iOS, but has more limited access to notifications and system features. Cross-platform cuts the cost of maintaining two codebases, provided the architecture is set up correctly from day one.
We built the Paradise Desk Android app natively in Kotlin and Compose, alongside a PWA and chat bots, all on one NestJS backend. Hamdor ships an Android app and a Kotlin/Wasm web build at 2.7 MB brotli, both running the same Kotlin Multiplatform rules engine and accepting payments through Cafe Bazaar, Myket, ZarinPal and the Bale wallet. That experience goes straight into your project.
What we build
Native Android apps
Kotlin and Jetpack Compose with a layered architecture, offline support and tuning for mid-range and low-end phones.
Installable PWAs
A web app that installs to the home screen, works offline and updates without waiting for store review, on Android and iOS.
Cross-platform with Kotlin Multiplatform
Business logic, networking and data written once and shared across Android, web and desktop, without giving up a native UI.
UI and UX design
Right-to-left-ready mobile design with a design system, dark mode and familiar Android patterns users do not have to learn.
In-app payments and publishing
In-app billing for local Android stores, payment gateway integration, and preparing and publishing releases to app stores.
App backend and APIs
A dedicated NestJS or Ktor server with authentication, notifications, offline sync and real-time WebSocket channels.
How we work
- 01
Choose the platform
We look at audience, target devices, hardware needs and distribution channel, then choose native, PWA or cross-platform with written reasons.
- 02
Prototype on a real phone
Core flows reach an installable build on a real device early, so feedback is about the actual experience, not a static mockup.
- 03
Build in regular releases
App and backend are built in parallel, with regular test builds checked on low-end phones, slow networks and offline mode.
- 04
Publish and maintain
We sign and publish releases, monitor crash and performance reports, and keep the app compatible with new Android versions.
Related work

Paradise Desk
Money, projects and your day — in your own language.
- Web app or website
- Mobile app
- AI & automation

Hamdor
Game night with friends, wherever you are.
- Game
- Mobile app
- Web app or website

Hokm & Shelem
Two classic Persian card games on one shared engine.
- Game
- Web app or website
- Mobile app
What drives the cost?
Mobile app development cost depends less on screen count than on platforms, server-side logic and integrations. After a discovery session we estimate the work phase by phase.
- Target platforms: Android only, a PWA, or several platforms on shared code
- Backend complexity: accounts, roles, real-time data and offline sync
- Integrations: in-app billing, payment gateways, maps, SMS and third-party services
- How much custom UI design, animation and design-system work is needed
- Whether you need an admin panel, reporting, and support after launch
Frequently asked questions
How much does mobile app development cost?
Mobile app development cost is not driven by screen count. A five-screen app with payments, real-time chat and offline sync costs more than a twenty-screen app of simple content. The main drivers are target platforms, backend complexity, integrations and how much custom design you need. We usually recommend starting with a small, shippable first version, getting real feedback, and investing from there. After a discovery session we put the scope and estimate of each phase in writing.
Native app or PWA: which should I build?
Go native if you need the camera, Bluetooth, reliable notifications, heavy background work or store in-app billing, or if your audience expects to install from a store. If the product is mostly forms, dashboards or content and you want lower cost, instant releases and iOS reach without the App Store, a PWA is enough and often better. For Paradise Desk we built both side by side, so each user can come in through the route that suits them.
Why use Kotlin and Jetpack Compose for Android app development?
Kotlin is Google's recommended language for Android, and Jetpack Compose is today's standard toolkit for Android UI. Compose code is shorter, easier to test, and handles dark mode and right-to-left layouts cleanly, and new Android libraries land there first. The same skills also extend to web and desktop through Kotlin Multiplatform and Compose Multiplatform, which is how one shared rules engine in Hamdor runs in both the Android app and the web build.
Does cross-platform mobile app development cut the cost in half?
Usually not exactly half, but the savings can be real. Business logic, networking and data are written once, and only the parts that must sit close to the operating system are built separately. The hidden cost is that the architecture must be right from the start, and some platform-specific behavior needs extra work. We use Kotlin Multiplatform because it keeps native UI and performance and lets us drop into platform code wherever needed.
Do you handle app store publishing and in-app payments?
Yes. We prepare release builds, sign the app, produce store listings and submit for review. In-app payments are verified on the server so forged or duplicate purchases are rejected, and if the app is also distributed outside the stores we connect a separate payment gateway. In Hamdor we implemented four payment routes: Cafe Bazaar, Myket, ZarinPal and the Bale wallet.
How is the app maintained after launch?
An app is not finished at launch. Every year brings a new Android version and new store requirements, libraries move on, and users hit issues on phones you never tested. We monitor crash and performance reports, keep dependencies current and ship fix releases. The source code and store accounts always belong to you, so if another team ever takes over, you have no dependency on us.
Further reading
Mobile web vs PWA vs native in 2026
Product decision criteria. A practical guide with a real scenario and execution checklist for Mobile web vs PWA vs native in 2026.
MVP to Scale: A Product Roadmap for Startups
Startups get stuck between building too little and building the wrong thing. This roadmap phases MVP to scale with entry/exit criteria and common traps.
Build vs integrate payment providers
Compliance risk. A practical guide with a real scenario and execution checklist for Build vs integrate payment providers.