iPhone and iPad applications built with SwiftUI
iOS users notice when an application does not feel native. Gestures that behave slightly differently, animations that stutter, layouts that ignore the safe area, text that does not respond to the accessibility size the user has chosen. We build in SwiftUI so applications feel like part of the platform rather than a visitor on it.
Building applications that belong on the platform
Apple users have strong expectations, mostly unconscious. Navigation should work the way it works everywhere else. A swipe from the edge should go back. Lists should scroll with the right physics. The keyboard should not cover the field being typed into. Dynamic Type should be respected so somebody who has chosen larger text can read the application. Dark appearance should look designed rather than inverted.
We build with SwiftUI, which gives us modern layout behaviour, sensible support for dark appearance and accessibility sizing, and interfaces that adapt properly between iPhone and iPad. Where a specific requirement calls for it we drop into the underlying frameworks, but the default is the platform way of doing things because that is what users find familiar.
Layouts account for the range of devices genuinely in circulation, from compact iPhones to large iPads, including split view where it makes sense on tablet. We handle the details that break less careful applications, such as safe areas around notches and home indicators, rotation, state restoration after the system suspends an application, and correct behaviour when a device is set to a language that reads right to left.
Notifications, privacy and permissions
Push notifications on iOS require the user to grant permission, and the moment you ask matters enormously. Asking on first launch before anyone understands the value produces a refusal that is difficult to reverse. We design the sequence so the request arrives when the benefit is obvious, which meaningfully increases the proportion of users who accept.
Privacy is central to how Apple evaluates applications. Every permission an application requests must be justified with a clear explanation shown to the user, the App Store listing must declare exactly what data is collected and how it is used, and applications that allow account creation must also allow account deletion. We prepare all of that accurately rather than optimistically, because a declaration that does not match behaviour causes rejection and damages trust.
App Store review, handled calmly
Applications are rejected regularly for reasons unrelated to code quality, including unclear demonstration accounts, missing explanations, incomplete privacy declarations or a feature that appears to duplicate something the platform provides. Handling this well is a matter of preparation and tone rather than luck.
We provide reviewers with working test credentials and clear notes explaining what the application does and how to exercise the parts that are behind a login. When a question comes back, we answer it precisely rather than resubmitting and hoping. Launch schedules always include review time as a real period rather than an assumption.
One backend, consistent everywhere
The iOS application talks to the same REST API as the web system and the Android application, built with Django REST Framework. This is what keeps the platforms consistent as requirements evolve, because a business rule changes once rather than three times. It also means adding iOS to an existing web system is considerably cheaper than building from nothing, since the interface it needs already exists.
What we handle
- Native SwiftUI application development
- iPhone and iPad layouts
- Dark appearance and Dynamic Type support
- Push notifications and permission timing
- Secure login and keychain storage
- Camera, location and file handling
- Privacy declarations and permission strings
- App Store listing and review preparation
- TestFlight distribution for your testers
- Ongoing updates as iOS changes
Built with
An iOS application we built and still maintain
The QuranRecord iOS application is written in SwiftUI and published on the App Store. Teachers use it to record lessons quickly during class, parents use it to follow progress and receive school notifications, and it shares a backend with the website and the Android application.
It has been through multiple iOS releases, privacy declaration changes and review cycles. Each of those was handled as ordinary maintenance rather than an emergency, which is exactly the point. An application that is looked after properly does not lurch from crisis to crisis, and the users never see the work involved in keeping it that way.
Read about the appsiOS questions
Planning an iPhone or iPad application?
Tell us what it needs to do and who it is for, and we will outline what building and publishing it would realistically involve.