iOS Engineer · Swift 6 · 2026

Five native iOS apps, built the way they'd ship.

Offline-first SwiftUI apps with real platform depth — WidgetKit, MapKit, App Intents, AVFoundation, accessibility — backed by tested logic and green verification gates. No to-do apps.

0 Native apps
0 Unit tests
0 UI smoke tests
0 Build warnings
0 3rd-party deps

The work

Five apps,
five kinds of depth.

Each app proves a different "real iOS" capability beyond CRUD — and each is built one at a time until its verification gates go green.

01

SpendWise

Budgeting & spending analytics

Private, on-device money tracking. Set monthly budgets, watch trends in Swift Charts, lock it behind Face ID, and round-trip your data through CSV — no account, fully offline.

  • SwiftData store shared with a home-screen widget via App Group
  • Swift Charts: 6-month stacked bars + current-month donut
  • Face ID app lock and once-per-crossing budget alerts
  • CSV import with interactive column mapping — round-trip tested
SwiftDataSwift ChartsWidgetKitLocalAuthentication
27 unit · 2 UI tests spendwise-ios
02

Streakly

Habit streaks with interactive widgets

Build streaks with a genuinely tested grace engine, review your day as a deck of cards, and complete habits straight from a home- or lock-screen widget via App Intents.

  • Streak engine with explicit grace rules — exhaustively unit-tested
  • GitHub-style 16-week completion heatmap
  • Interactive widgets & lock-screen accessories (App Intents)
  • Swift Charts: per-habit streak bars + weekly completion rate
WidgetKitApp IntentsSwiftDataSwift Charts
20 unit · 2 UI tests streakly-ios
03

TripNest

Offline-first travel planner

Plan trips day-by-day on a MapKit map. Drag places between days, export to Calendar, and keep everything working in airplane mode — network is enrichment, never load-bearing.

  • Trip → Day → Place hierarchy in SwiftData, fully local
  • MapKit map with numbered markers colored per day
  • Drag-and-drop reordering within and across days
  • EventKit calendar export + cached, keyless weather
MapKitSwiftDataEventKitURLSession
12 unit · 2 UI tests tripnest-ios
04

ReadAble

Accessibility-first reader

A reader built around the people most apps forget: text-to-speech with word-level highlight-follow, dyslexia-friendly typography, and a VoiceOver label contract enforced by tests.

  • AVSpeechSynthesizer with live word highlighting (UTF-16 range mapping)
  • Typography & contrast: size, spacing, Easy-Read face, sepia / high-contrast
  • Full VoiceOver labels — asserted by a UI test
  • Bookmarks and continuously restored reading position
AVFoundationSwiftDataAccessibility
13 unit · 2 UI tests readable-ios
05

MealStack

Recipes, planning & smart groceries

Save recipes, plan the week, and auto-generate a grocery list that dedupes by ingredient and subtracts what's already in your pantry — the gnarly logic lives in a fully tested module.

  • Weekly planner: 7 days × breakfast / lunch / dinner
  • Pantry-aware grocery aggregation (dedupe, sum, subtract stock)
  • Cooking mode: large step type, progress, screen stays awake
  • Per-meal local reminders
SwiftDataUserNotificationsSwift Testing
13 unit · 2 UI tests mealstack-ios

How they're built

Opinions,
enforced by tests.

The same principles run through all five. They're what let an app loop to "done" instead of spinning.

Offline-first

Every app runs fully on-device with seeded sample data on first launch. Network calls — weather, geocoding — are enrichment, never a dependency.

Logic in tested modules

Budget math, streak rules, grocery aggregation, range mapping — pulled out of the views into pure Swift and covered by 85 exhaustive unit tests.

Verification gates

An app ships only when its gates go green: unit tests, UI smoke tests, a clean build with zero warnings, and a manual SMOKE.md walkthrough.

Accessibility as a contract

Labels, traits, and focus order are treated as first-class — and in ReadAble, the VoiceOver labels are asserted by a UI test, not just hoped for.

Modern, native APIs

Swift 6 with default MainActor isolation, SwiftData, Swift Charts, WidgetKit, App Intents, MapKit — and zero third-party dependencies across all five apps.

Built for review

XcodeGen project files, a README with real simulator screenshots in every repo, and clone-and-open access — so the work reads as clearly as it runs.

Contact

Let's build something native.

Open to iOS roles and collaborations. Every repo below is public — clone, open in Xcode 26, and the seeded apps run on first launch.