Template · Health

Meditation App SwiftUI Template

Stillwater, a calm wellbeing app: a complete Xcode project with mood check-ins, guided breathing, short courses, a journal, widgets and three brand presets. 19 screens and 4 flows in Stillwater, as a SwiftUI app template.

A wellbeing app on a five-tab shell. First run is the Onboarding screen with a reminders request, Sign in with Apple and a StoreKit 2 paywall for Stillwater Plus. Today checks in around the mood orb and suggests a session, Breathe opens the guided session, Learn pushes the reader, Journal starts from a ghost state, and Profile holds settings and sign out.

  • SwiftUI
  • iOS 17.0+
  • Xcode project 1.0.0
  • meditation-app
19 Screens4 Flows
Get SwiftPieces Pro

$199 once, every piece included. See how installing works · Sign in

01

Flows

Complete journeys through Stillwater, from first launch to sign out, screen by screen. Open one to play it, or choose any screen to start there.

The first 3 steps of every flow are open. Pro opens every screen of every template, live in each style, and the SwiftUI to build them.

01 · Onboarding

First Run

Three welcome pages, the reminders permission, Sign in with Apple and a free week of Stillwater Plus, then Today.

7 Screens12 Steps
Play the flow
  1. 01A Quiet Minute
  2. 02Breathe With The Orb
  3. 03See What Helps
  4. 04Reminders
  5. 05Allow Notifications
  6. 06Reminders On
  7. 07Sign In
  8. 08Sign In With Apple
  9. 09Stillwater Plus
  10. 10Start The Free Week
  11. 11Unlocked
  12. 12Today

02 · Core Journey

Check In And Breathe

Log today's mood in one tap, add feelings and a note, then breathe through a full Unwind session.

5 Screens11 Steps
Play the flow
  1. 01Today
  2. 02Logged
  3. 03Add A Note
  4. 04Feelings And A Note
  5. 05Check-In Updated
  6. 06Breathe
  7. 07Breathing Pattern
  8. 08Breathe In
  9. 09Breathe Out
  10. 10Session Complete
  11. 11Session Saved

03 · Core Journey

See What Helps

Read the week in the journal, open yesterday's check-in, then pick up the sleep course and finish a lesson.

5 Screens8 Steps
Play the flow
  1. 01Journal
  2. 02Insights
  3. 03Journal Entry
  4. 04Learn
  5. 05Course
  6. 06Lesson
  7. 07Reading Options
  8. 08Lesson Finished

04 · Profile And Settings

Profile And Settings

Move the daily reminder, change the theme, subscribe to Plus and sign out.

5 Screens10 Steps
Play the flow
  1. 01Profile
  2. 02Reminders And Sessions
  3. 03Remind Me At
  4. 04Theme
  5. 05Try Plus Free
  6. 06Unlocked
  7. 07Plus
  8. 08Sign Out
  9. 09Signing Out
  10. 10Back To The Start

02

Screens

Every screen in Stillwater, 19 in all, each a SwiftUI view in the Xcode project. In Ember, Editorial and Candy, light and dark.

First run

Welcome, permissions and the questions that set the app up.

Account and subscription

Sign in, verification and the paywall.

  • Sign In

    Sign in with Apple to back up check-ins, or continue without an account.

  • Stillwater Plus

    Start a free week on the yearly plan, or pick monthly, to unlock every pattern, course and the full history.

    Built onPaywall

Tabs

Where the app opens, one screen per tab.

Details and sheets

What the tabs push and present.

Profile and settings

The account, preferences, the subscription and sign out.

03

Built from the library

The library screens this template wires together, in the order someone meets them. Each one installs on its own too.

04

What's included

SwiftUI source you own, built on Apple frameworks only.

  • A daily mood check-in around the orb, with feelings and notes
  • Guided breathing patterns with a session player, haptics and a summary
  • Short courses with a reader that reads lessons aloud
  • A journal with face-capped mood bars, insights and an empty state
  • Mood streak and Start breathing widgets, with check-in buttons that work without opening the app

Includes

Onboarding, Welcome, Purchase, Paywall, App Shell, Lessons, Mood, Breathe, Reader, Projects, Notifications, Settings. Installed together, automatically.

Requires

In-App Purchase capability

In the Build Kit

Ember (style), Meditation and Sleep (brief). Your agent builds around this template in the same design.

05

Implementation notes

How it behaves, what it handles, and the decisions behind it.

MeditationApp is one root view. On first launch it shows the Onboarding screen: three welcome pages, a reminders request, then the Purchase screen's StoreKit 2 paywall for Stillwater Plus as the handoff. Purchasing, restoring or closing the paywall finishes onboarding and records it under a completion key, so the root switches to the home on its own.

Home is the App Shell with five tabs. Today is a mood check-in around the mood orb with five faces and the session suggested for now; logging a mood lands as a toast with Undo, and "Add feelings and a note" opens the full Mood screen. Breathe lists patterns that open the guided Breathe session full screen. Learn lists short courses that push the Reader. Journal shows the week as face-capped bars and starts from a ghost state. Profile is Settings, where Manage subscription reopens the paywall and Sign out returns the app to first run.

The downloadable Xcode project goes further: SwiftData history, a session player with rounds, haptics and a summary, course and lesson screens with read-aloud, journal insights, a daily reminder, deep links, and a mood streak widget that logs a check-in without opening the app.

Adapting it

  • Products: pass your App Store Connect ids as productIDs. Until they exist, the paywall shows its designed "plans didn't load" state and its close button still finishes onboarding.
  • Completion key: completionKey is the UserDefaults key the flow writes and the root reads. Change it to show onboarding to everyone again.
  • Content: moods, patterns and courses live in StillwaterSample at the top of MeditationApp.swift; the session is PhaseOrbExample, the full check-in NoiseOrbExample and the lesson MorphNavScreenExample. Swap each for your own store.
  • Theme: without a brand the app wears Stillwater Ember. Set .environment(\.spTheme, SPBrandTheme(.stillwaterEditorial)) or .stillwaterCandy on MeditationApp to re-skin every tab.

Notes

  • Not @main: put MeditationApp() in your own WindowGroup.
  • Enable the In-App Purchase capability before testing purchases.
  • Lesson copy is general wellbeing guidance, not medical advice. Have anything health-related you add reviewed.
  • Four previews ship with the file: first run, home in Ember dark, Editorial and Candy.