Swift

Swift is how we build for iPhone and iPad. People on iOS expect apps to feel like part of the system, and native code is the most direct way to get there.

How we use Swift

Interfaces are written in SwiftUI, with UIKit brought in where a control needs precise behaviour, such as custom text editing or complex gestures. Concurrency uses async and await, so network and database work stays off the main thread and scrolling stays smooth.

For productivity apps the system extensions matter as much as the app itself: home-screen and lock-screen widgets, Siri shortcuts and notifications that open the right screen. Paid features are handled with StoreKit 2, which verifies purchases on the device and keeps subscription status up to date.

What we build with it

  • Native iPhone and iPad apps with SwiftUI
  • Widgets, App Intents and notification actions
  • In-app purchases and subscriptions with StoreKit 2
  • Local data with SwiftData or Core Data and iCloud sync

Toolkit

  • SwiftUI
  • UIKit
  • Swift concurrency
  • SwiftData
  • StoreKit 2
  • XCTest

How we keep Swift code healthy

  • SwiftLint in the build pipeline
  • Unit and UI tests run in Xcode Cloud or CI
  • Accessibility checked with VoiceOver and Dynamic Type
  • Instruments used to profile memory and launch time

Questions about Swift

SwiftUI or UIKit?

SwiftUI for new screens. UIKit where SwiftUI still lacks control or when the app already has a large UIKit codebase.

Do you build for iPad and Apple Watch too?

iPad layouts are part of iOS projects when the brief includes them. watchOS apps are scoped separately.

Discuss a Swift project

Discuss a Swift project

Describe the app or the code you have. We reply by email with questions or a time for a call.

Prefer email? Write to [email protected]. You can also send any documents there.

You will get an automatic copy of your message by email.

This website currently sets no cookies and stores nothing in your browser, so there is no consent to give or withdraw. If that changes, we will ask you first.

Read the Cookie Policy