Mobile & desktop apps

Mobile and desktop app development for iOS, Android, Windows and Mac.

Apps people install - on a phone out in the field or on the PC at the warehouse door. Cross-platform in React Native, Flutter or Tauri, native in Swift and Kotlin where the product needs it, together with the backend they talk to. They keep working without signal, drive scanners and printers, and pass store review without drama.

  • One codebase for iOS and Android - and the desktop, where it makes sense.
  • Offline-first: the app works in a basement and syncs when the signal is back.
  • Barcode scanners, scales, label printers and Bluetooth devices, connected properly.
  • Store releases, signed installers and automatic updates included.

Built for tunnels, basements and loading docks

Most of the work in an app is not the screens. It is what happens when the train enters a tunnel halfway through a save, when the user declined notifications on day one, or when the warehouse Wi-Fi drops mid-shift. We plan for those cases from the first sprint, because retrofitting offline support or a release process into a finished app costs more than building it in.

On technology we are pragmatic. For most business apps - field service, booking, ordering, customer accounts, internal tools - React Native or Flutter gives you one codebase and both stores. When an app lives on the camera, Bluetooth or the newest OS features, we write it natively in Swift and Kotlin. On the desktop, a web interface inside Tauri or Electron with a native core reaches the serial port, the scale and the label printer a browser cannot.

An app is only as good as its backend, so we usually build that too: the API, accounts, sync, push delivery and an admin panel for your team. We work from Ugljevik and Vienna, for companies across Europe.

How it works

What an app has to survive

Apps live in tunnels, basements and loading docks. Three moments show whether one was built for the real world - here in a delivery company’s apps.

  1. The driver confirms deliveries in a basement with no coverage. Everything is saved on the phone and goes out on its own the moment the signal is back.

  2. An urgent delivery comes in. Tapping the notification opens exactly that delivery - not the home screen, not a login.

  3. At the warehouse a PC app with a barcode scanner checks parcels in, and the driver’s phone shows them a second later. Same data, different screens.

Warehouse - goods in
Swift Parcel
Scan a parcel
Swift Parcel Parcel 4471
Today2
  1. Checked inParcel 4469
  2. Checked inParcel 4468
Swift ParcelMarko - route 7

Today4 stops

  1. 01 Bakery Sunrise 09:30
  2. 02 Pharmacy Linden 10:15
  3. 03 Studio Kilo 11:00
  4. 04 Hotel Riva 11:40
A delivery company’s apps: the driver’s phone keeps working without signal, a notification opens the right delivery, and a scan on the warehouse PC appears on the phone.

In practice

Illustrative scenarios - the kind of work we take on, not client case studies.

Field inspection app for a facility services company

The problem
Technicians inspect boiler rooms, lift shafts and underground garages - exactly where there is no signal. Paper forms get typed in days later, and nobody knows which sites are overdue.
What we build
A React Native app with a local database and outbox sync: checklists, photos and signatures work offline and upload in the background. The office assigns jobs in a web admin; conflicting edits merge field by field.
  • React Native
  • SQLite
  • Node.js
  • PostgreSQL
  • S3 storage

Goods-in station at a warehouse dock

The problem
Incoming pallets are checked against paper delivery notes. Missing cartons surface a week later in the ERP, when nobody remembers the truck.
What we build
A desktop station at the dock: scan the delivery note, scan each carton, weigh mixed pallets, print location labels. Differences show up at once and go to the ERP through its API. It works offline, because dock Wi-Fi is weak - it always is.
  • Electron
  • TypeScript
  • React
  • SQLite
  • node-hid
  • REST API

Companion app for a Bluetooth device

The problem
A hardware maker ships a device with a third-party app that drops the Bluetooth connection, cannot update firmware and collects one-star reviews that hurt hardware sales.
What we build
Native apps in Swift and Kotlin, because Bluetooth, background modes and firmware updates are where cross-platform layers leak. Shared protocol logic through Kotlin Multiplatform, and firmware updates that resume after a dropped connection.
  • Swift
  • Kotlin
  • Kotlin Multiplatform
  • BLE
  • Sentry

What you get

  • iOS and Android apps under your own App Store and Google Play accounts
  • Desktop installers for Windows, macOS or Linux, code-signed, with automatic updates
  • Offline storage and sync, with a written rule for what happens on a conflict
  • Push notifications that open the right screen, with an in-app inbox as the fallback
  • Device connections: barcode scanners, scales, label printers, Bluetooth
  • The backend and API for the app, or a clean integration with the one you have
  • Crash reporting from the first build, and help through every store review

Typical stack

  • React Native + Expo
  • Flutter
  • Swift / SwiftUI
  • Kotlin / Jetpack Compose
  • Kotlin Multiplatform
  • Tauri
  • Electron
  • Rust
  • SQLite
  • APNs & FCM
  • Fastlane
  • Sentry

Questions people ask

Your question is not on the list? Ask us directly - we reply within two working days.

Ask a question
How much does it cost to develop a mobile app?

It depends more on what the app has to do than on the number of screens: offline sync, payments, integrations, the backend and the number of user roles drive most of the effort. One cross-platform codebase usually costs less than two native apps. After a 30-minute intro call you get a written plan and a fixed-scope estimate.

How long does it take to build an app?

Scope, the state of the backend and how quickly decisions get made set the calendar. Plan for store review too - usually quick, occasionally not. We split the work into releasable stages, so a first version reaches your testers early while the rest is built.

React Native, Flutter or native - which should we choose?

For most business apps cross-platform is the sensible default: one codebase, one team, both stores. React Native fits teams already working in TypeScript and React; Flutter suits pixel-identical UI on both platforms. We recommend native Swift and Kotlin when the app depends on Bluetooth, heavy camera or AR work, long-running background tasks, or new OS features on day one - with the reasons in writing.

Do we need a desktop app, or is a web app enough?

A web app is enough when everything happens in a browser. You need a desktop app when it must drive a scanner, a scale or a label printer, keep working offline all day, or handle large local files. Often the answer is both: one web app for the office, one desktop station for the counter or the dock.

Can you connect our barcode scanner, scale or label printer?

Usually, yes. Keyboard and serial scanners, scales with a serial or USB protocol, ZPL and ESC/POS label printers, cash drawers and most devices with a documented protocol are routine. Send us the model numbers; if a device has no documentation, we test a real unit before giving a fixed estimate.

Have an app in mind?

Tell us who will use it, where, and on which devices. We reply within two working days with a link to a 30-minute intro call, then send a written plan and a fixed-scope estimate.

Start a project