Swift · SwiftUI · iOS

How I work
with iOS.

I design and build native iOS apps, from the first interaction to the App Store. My work brings together product thinking, SwiftUI and the wider Apple platform.

Built in practice

Three products. Different engineering questions.

From my own consumer apps to a system for a client. These projects show where I have put iOS to work.

HappyDay: the Now screen suggesting the next activity

Native app & Apple extensions

HappyDay

A SwiftUI app with local storage, sync, widgets, Live Activities, a Watch app and Screen Time integrations. From product idea to the App Store and further iterations.

  • SwiftUI
  • Core Data
  • WidgetKit
  • StoreKit 2
InFrame on an iPhone: Lake Como at dusk with a couple selfie

Camera & image processing

InFrame

An iPhone app that uses the front and rear cameras in sequence and combines the photos on the device. Including photo library access, location, purchases and ad consent.

  • AVFoundation
  • Photos
  • Core Location
  • StoreKit 2
Melles MCMF: the concert app for visitors

Mobile apps & backend

Melles MCMF

A client project: visitor apps, a separate iOS scanner app, a management dashboard and backend. Developed through short feedback cycles with the client and users.

  • iOS
  • Android
  • API
  • QR check-in

My technical experience

APIs by project.

Swipe across to compare the projects.

APIs and frameworks by project
AreaHappyDayInFrameMelles MCMF
Interface
  • SwiftUI
  • UIKit
  • TipKit
  • Swift Charts
  • SwiftUI
  • SwiftUI
  • UIKit
Data
  • Core Data
  • Keychain
  • AuthenticationServices
  • Core Data
  • URLSession
  • Codable
  • Keychain
  • Network
Apple platform
  • WidgetKit
  • ActivityKit
  • App Intents
  • WatchConnectivity
  • FamilyControls
  • ManagedSettings
  • DeviceActivity
  • EventKit
  • UserNotifications
  • AlarmKit
Not used in this project
  • EventKit
  • UserNotifications
Camera & media
  • Photos
  • PhotosUI
  • Core Location
  • AVFoundation
  • Photos
  • PhotosUI
  • Core Location
  • AVFoundation
  • Photos
  • PhotosUI
  • AVKit
  • MediaPlayer
Purchases
  • StoreKit 2
  • StoreKit 2
  • App Tracking Transparency
  • PassKit / Apple Wallet
Intelligence
  • Foundation Models
  • Speech
  • Vision
Not used in this projectNot used in this project
Other SDKs
  • Supabase
  • Firebase Analytics
  • Google AdMob
  • Firebase Analytics
  • Google Cast

Architecture & Swift

How I structure the code.

Patterns from HappyDay and MCMF.

Testable dependencies

Inject time, Calendar and UserDefaults so timers and date rules can be tested with controlled inputs.

  • Dependency injection
  • XCTest
HappyDay · NowViewModelTests

Shared data across targets

HappyDay shares storage through App Groups and reuses models and stores across iPhone, Apple Watch, Mac and extensions.

  • App Groups
  • Core Data
  • Shared models
HappyDay · SharedStorage / ReminderStore
Example: the InFrame photo flow
InFrame · All on the device
  1. 01

    Tap the shutter

    SwiftUI · Interface

  2. 02

    Capture & combine

    AVFoundation · Product logic

  3. 03

    Save the photo

    Photos · Photo library

State
  1. Ready
  2. Capturing
  3. Combining
  4. Saved

From idea to app

From first idea to App Store.

Four steps from my projects. Something to see, try and improve at every stage.

  1. 01

    Make it tangible.

    An early flow or prototype gives us something concrete to react to.

    HappyDay · early sketches
    Early screen sketches and the Figma prototype for HappyDay
  2. 02

    Make it work.

    One working flow reveals what the idea needs under the hood.

    MCMF · working prototype
    The first mobile prototype of the MCMF concert app
  3. 03

    Try it. Refine it.

    Short feedback rounds with the client and users shape the next version.

    MCMF · design iterations
    An early MCMF design iterationA later MCMF design iteration
  4. 04

    Ship it.

    Purchases, permissions and the App Store are part of the finished app.

    HappyDay · on the App Store
    HappyDay on the App Store under its earlier name, NewDay
More about my overall approach

Testing, debugging & release

It has to work beyond the demo.

I combine unit tests, device testing and user feedback. HappyDay includes unit tests and builds through Xcode Cloud; InFrame and HappyDay have been released on the App Store.

When something breaks: understand it first.

Make the issue reproducible, isolate where it occurs, and check the same situation again after the change. This keeps debugging focused.

Explore HappyDay under the hood

What I look for

  • Product logic

    Being able to check rules and calculations independently of the screen with unit tests.

  • Permissions

    Including the path where someone declines access to the camera, photos or calendar.

  • Data & lifecycle

    Loading and error handling, reopening the app and returning from the background.

  • On the device

    The actual interaction, camera orientation and the behaviour of widgets and extensions.

The product and the engineering behind it

From a good idea to an app you can use.

I enjoy working on products where a clear user experience and thoughtful engineering decisions reinforce each other.