Template · Travel

Travel App SwiftUI Template

Wayfare, a trip planning and booking app: a complete Xcode project with guides, a map of nearby places, day-by-day itineraries, stay booking, widgets and three brand presets. 20 screens and 4 flows in Wayfare, as a SwiftUI app template.

A travel app on a four-tab shell. First run asks for location, verifies a phone number and hands off to a StoreKit 2 paywall. Discover opens a cover story into its guide and searches destinations, places and trips. Explore puts nearby places in a sheet over a drawn map. Trips shows today's plan and each trip day by day, and books a stay from a floating card through a checkout that pays with a swipe. Profile holds trip updates, the subscription and sign out.

  • SwiftUI
  • iOS 17.0+
  • Xcode project 1.0.0
  • travel-app
20 Screens4 Flows
Get SwiftPieces Pro

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

01

Flows

Complete journeys through Wayfare, 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, location, an account with Apple or a verified phone number, and Wayfare Plus, then Discover.

6 Screens14 Steps
Play the flow
  1. 01Welcome
  2. 02Welcome
  3. 03Welcome
  4. 04Allow Location
  5. 05Allow Location
  6. 06Your Account
  7. 07Sign In With Apple
  8. 08Your Number
  9. 09The Code Arrives
  10. 10Code Accepted
  11. 11Wayfare Plus
  12. 12Start The Free Trial
  13. 13Plus Is On
  14. 14Discover

02 · Core Journey

Plan A Trip

Find a guide with search, plan it into Trips, then fill today's plan from the map.

7 Screens14 Steps
Play the flow
  1. 01Discover
  2. 02Cover Story
  3. 03Search
  4. 04Search As You Type
  5. 05Douro Valley
  6. 06Plan This Trip
  7. 07The New Trip
  8. 08Trips
  9. 09Today, Day By Day
  10. 10Check It Off
  11. 11Explore
  12. 12A Place
  13. 13Place
  14. 14Add To Trip

03 · Core Journey

Book A Stay

Book the stay a trip still needs, from its recommendation through the booking card, checkout and a swipe to pay.

6 Screens11 Steps
Play the flow
  1. 01Trips
  2. 02Kyoto In Autumn
  3. 03Stay
  4. 04Your Stay
  5. 05The Month And The Price
  6. 06Checkout
  7. 07Slide To Pay
  8. 08Paying
  9. 09You're Booked
  10. 10Booked
  11. 11Receipt

04 · Profile And Settings

Profile And Settings

Trip updates, travel preferences, saved places, Theme, Wayfare Plus and signing out, from the Profile tab.

6 Screens12 Steps
Play the flow
  1. 01Profile
  2. 02Preview Trip Updates
  3. 03Preferences
  4. 04Home Airport
  5. 05Saved Places
  6. 06Theme
  7. 07Upgrade To Plus
  8. 08Plus Is On
  9. 09Plus
  10. 10Sign Out
  11. 11Signing Out
  12. 12Back To The Start

02

Screens

Every screen in Wayfare, 20 in all, each a SwiftUI view in the Xcode project. In Studio, Editorial and Graphic, light and dark.

First run

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

  • Welcome

    Three pages of drawn art introduce guides, day-by-day plans and booking a stay in a swipe.

    Built onWelcomeOnboarding

  • Location

    Asks for location while the app is open, so the map opens where you are and distances become walking times.

    Built onOnboarding

Account and subscription

Sign in, verification and the paywall.

  • Your Account

    Sign in with Apple, continue with a phone number, or keep everything on this iPhone.

  • Phone Sign-In

    Enter your number, then the six-digit code it receives, filled in from Messages.

    Built onVerify

  • Wayfare Plus

    Unlimited trips, offline guides, travel alerts and every theme, yearly with a free week or monthly.

    Built onPaywall

Tabs

Where the app opens, one screen per tab.

  • Discover

    A cover story that opens into its guide, search, destination filters and a rail of guides.

    Built onDiscoverApp Shell

  • Explore

    Nearby places on a drawn city map, in a sheet with search, categories and the closest walks.

    Built onNearbyApp Shell

  • Trips

    The trip happening today with its plan and checks, upcoming trips with countdowns and past trips.

    Built onApp Shell

Details and sheets

What the tabs push and present.

  • Search

    Destinations, places, your trips and shortcuts, matched as you type, with recents before you start.

    Built onSearch

  • Guide

    A destination's guide: its facts, the route day by day, where to stay and a plan bar.

  • Trip

    A trip day by day, with one-tap checks, the stays booked or one to book, and its note.

  • Place

    A place on the map as a full page: how far, when it's busy, its hours and what else is nearby.

  • Stay

    A stay to book: the house, its price and amenities, and a booking card for the dates and guests.

    Built onStay

  • Checkout

    The stay, the dates, the saved card and the total, paid with a swipe.

    Built onCard DetailsSend Money

  • Booking Confirmed

    The success moment after paying: the confirmation code, the dates and what was paid.

  • Booking

    A booked stay's receipt, opened from its trip, with cancellation until check-in.

  • Saved Places

    Places saved from Explore, grouped by city as blocks.

Profile and settings

The account, preferences, the subscription and sign out.

  • Profile

    The account and Wayfare Plus, trip updates, theme, travel preferences, support and sign out.

    Built onSettingsNotifications

  • Home Airport

    Pick the airport trips leave from.

    Built onSettings

  • Theme

    Pick one of Wayfare's three presets and the appearance, previewed on a sample card.

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.

First run

Welcome pages, a location request, phone verification and the StoreKit 2 paywall. Runs once, then records completion.

Tabs

Discover, Explore, Trips and Profile on the App Shell. Discover's cover story expands into its guide; Explore is the map under a detent sheet.

From the tabs

Search opens from Discover. A stay opens with its booking card, then checkout pays with the saved card and a swipe. Trip updates arrive on the toast stack.

04

What's included

SwiftUI source you own, built on Apple frameworks only.

  • Onboarding with a location request and phone verification, handing off to a StoreKit 2 paywall
  • A cover story that expands into its guide, and search across destinations, places and trips
  • A drawn map with nearby places in a detent sheet
  • Today's plan with one-tap checks, and a stay booked from a floating card with swipe to pay
  • Profile with trip updates on the toast stack, the subscription and sign out
  • One root view, TravelApp, with your product ids and completion key as parameters

Requires

In-App Purchase capability

In the Build Kit

Travel (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.

TravelApp is one root view. On first launch it shows the Onboarding screen: three pages, a location request that turns distances into walking times, then phone verification on the Verify screen's CodeEntry, handing off to the Purchase screen's StoreKit 2 paywall. Closing, purchasing or restoring 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 four tabs. Discover puts a cover story at the top edge that expands into its guide, with search and a rail of destinations drawn from the brand. Explore is the Nearby screen: a drawn map under a detent sheet with places as blocks. Trips shows today's plan with one-tap checks and opens a stay with its floating booking card, then a checkout that pays with a saved card and a swipe. Profile is Settings, with trip updates previewed on the toast stack, the subscription and sign out back to first run.

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.
  • Verification: TravelPhoneStep.verify accepts any six digits. Call your auth provider there.
  • Location: add NSLocationWhenInUseUsageDescription to Info.plist before the location step runs.
  • Sample data: destinations and today's plan are in the Wayfare sample data section of TravelApp.swift, nearby places in DetentSheetExample, and the stay in GlassSheetExample. Swap each for your own model and client.
  • Theme: everything follows the theme you set on TravelApp. Without a brand it wears Wayfare Studio; SPBrandTheme(.wayfareEditorial) or .wayfareGraphic re-skin every tab, including the destination art.

The Xcode project

The download is a complete project on Tuist: SwiftData trips, itinerary items, saved places and bookings behind a repository protocol; destination guides, place details and saved places; a trip itinerary with day-by-day timelines; a full booking flow with price breakdown, confirmation codes, receipts and cancellation; Sign in with Apple or phone verification; trip reminders; Next Trip and Today's Plan widgets with interactive check-offs; three presets; unit tests and a first-run UI test.

Notes

  • Not @main: put TravelApp() in your own WindowGroup.
  • Enable the In-App Purchase capability before testing purchases.
  • Previews ship with the file: first run, home, and home in each Wayfare preset.