Project Info

Client:Personal Concept
Duration:2 weeks
Technologies
SwiftUI
WidgetKit
ActivityKit
CoreData
Combine

Table of Contents

Late-Night Companions

A gentle check-in app that encourages quiet companionship. Friends opt in at 10 PM, and if they’re around, a tiny pixel companion sits on the Dynamic Island to signal a shared, restful evening together.

Late-Night Companions - Image 1

The Challenge

I wanted to create a social touchpoint that felt comforting, not demanding. The app needed to respect silence, handle late-night battery constraints, and animate subtle presence cues without waking users or spamming notifications.

Our Solution

I designed a SwiftUI flow that lets people confirm availability with a single tap. Live Activities mirror that state onto the Dynamic Island, while WidgetKit surfaces the same companion on the Lock Screen. Behind the scenes Core Data stores nightly reflections, and a lightweight scheduler orchestrates reminders so friends receive one invitation instead of noisy pings.

My Role

This was a solo build — I handled research interviews, experience design, and all SwiftUI and ActivityKit implementation work.

Key Contributions

  • Crafted a minimalist nightly check-in flow with gentle haptics and accessibility-aware color contrast.
  • Implemented ActivityKit live activities so the pixel companion animates on the Dynamic Island and Lock Screen in sync.
  • Built a recurrence scheduler that batches reminders, respecting focus modes and battery-saving heuristics.
  • Prototyped the pixel companion art and micro-interactions to keep the experience playful yet calming.

Technical Highlights

  • SwiftUI state machines coordinating onboarding, nightly prompts, and check-in history.
  • ActivityKit + WidgetKit integration for real-time Dynamic Island presence indicators.
  • Combine-based reminder service that debounces notifications and respects user focus settings.
  • Core Data persistence for nightly journals with background app refresh hooks.

Challenges & Learnings

Designing for quiet companionship meant stripping away traditional engagement loops. The project reinforced how intentional constraints — limited notifications, slow animations, and warm color palettes — can make technology feel more human.

Future Improvements

  • Add a shared timeline so friends can see streaks of evenings spent together.
  • Explore HealthKit wind-down data to auto-suggest ideal check-in times.
  • Offer seasonal pixel companion themes and gentle ambient soundscapes.

Tech Stack

frontend

SwiftUI for iOS with custom animation primitives

realtime

ActivityKit live activities, WidgetKit lock screen widgets

data

Core Data persistence with CloudKit sync prototype

scheduling

UserNotifications framework with Combine pipeline

tooling

Swift concurrency instrumentation and Snapshot testing

Team

Solo creator

  • Solo creator covering UX, engineering, and illustration