Native & cross-platform
Mobile App Development
Android and iOS applications built from an agreed brief, on whichever platform approach suits the job, and tested on real devices. Bath Solutions treats the updates after launch as part of the same piece of work rather than a fresh negotiation.
Capabilities
What Mobile Development Includes
What a mobile project actually contains, from the first platform decision to the update you publish two quarters later.
Android Development
Kotlin against the Android SDK, with Jetpack covering navigation, lifecycle, background tasks and local storage. We choose the minimum API level deliberately, from the devices your audience owns rather than the ones on our desks. Signing keys, App Bundles and staged rollouts are handled as part of delivery.
iOS Development
Swift in Xcode, choosing SwiftUI or UIKit by what the interface needs and how far back you must support. An iOS app ought to behave like one, so we follow the platform's own conventions instead of re-skinning an Android screen. Certificates, provisioning and the App Store submission sit with us.
Cross-Platform Development
Flutter or React Native, where a single codebase across both stores is honestly the better trade. We have that argument before anything is written: shared code costs less to maintain, native sits closer to the device, and either route still needs a bridge for some features. We will not choose it to shave a quotation and pass you the bill afterwards.
API Integration
Connecting the app to everything it depends on: authentication, paging, retries, and the more interesting question of what appears on screen when the signal drops halfway through. Responses are parsed into typed models, so a change on the server fails the build rather than a customer's session. Where no interface exists yet, we write it alongside the app.
Firebase / Backend Integration
Firebase where a managed backend really does reduce the work: sign-in, Firestore, file storage, transactional notifications and crash reports. When a project grows past that, we move to a Node.js service with its own database while the app keeps calling one documented interface, so the migration stays our problem.
App Performance Optimization
Measurement before guesswork: launch time, dropped frames, memory, network calls and battery cost, profiled on real phones instead of an emulator on a fast machine. The remedies are rarely exciting. Work moves off the main thread, images get sized correctly, safe results are cached, and the download shrinks, which matters more than it sounds when a device is short of space.
Maintenance & Version Updates
An unmaintained app decays quietly. A new OS arrives, a store rule changes, an interface is retired, a dependency turns out to have a hole in it. We keep the project compiling and releasing, act on what production reports, and gather improvements into planned updates rather than a drip of one-off patches.
Development workflow
How a Mobile Project Runs
The same four stages as everything else here. On a mobile build: settle the platform and the requirement, plan screens and architecture, build against real devices, then handle the store release and the months that follow.
- 01
Discover
We sit with the people doing the job, map what happens now, and agree what the software is meant to change. No figure is quoted before that exists on paper.
- 02
Design & Plan
Screens, data and architecture are settled first, then cut into milestones small enough that you can tell whether each one is genuinely finished.
- 03
Develop & Test
We build in reviewable increments and test as we go: the ordinary path, the awkward cases, and how it behaves on modest hardware and a patchy network.
- 04
Launch & Support
We publish it, hand across the repository and the notes that explain it, and stay reachable for corrections and whatever you want built next.
Technology
The Mobile Stack
Selected per project rather than by habit. These are what mobile work usually calls for, along with the services that tend to sit behind an app.
Native and cross-platform
Kotlin and Java with the Android SDK and Jetpack on Android, Swift and SwiftUI on iOS, and Flutter or React Native when one shared codebase is the better fit for the requirement.
- Kotlin
- Java
- Android SDK
- Jetpack
- Swift
- SwiftUI
- Flutter
- React Native
Backend and integration
Most applications need something behind them. We build REST interfaces on Node.js and use Firebase for authentication, data and file storage where a managed backend keeps the project simpler to run.
- Node.js
- REST APIs
- Firebase
Next step
Planning a Mobile App?
Tell us what the app must do, which stores it has to reach, and what it needs to talk to. We will reply with the questions that matter, then a plan you can put a budget against.
