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
$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 Steps02 · Core Journey
Plan A Trip
Find a guide with search, plan it into Trips, then fill today's plan from the map.
7 Screens14 Steps03 · 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 Steps04 · Profile And Settings
Profile And Settings
Trip updates, travel preferences, saved places, Theme, Wayfare Plus and signing out, from the Profile tab.
6 Screens12 Steps02
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.
- Explore
Nearby places on a drawn city map, in a sheet with search, categories and the closest walks.
- 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
Includes
Onboarding, Welcome, Verify, Purchase, Paywall, App Shell, Lessons, Discover, Search, Nearby, Stay, Card Details, Send Money, Settings, Notifications. Installed together, automatically.
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.verifyaccepts any six digits. Call your auth provider there. - Location: add
NSLocationWhenInUseUsageDescriptionto Info.plist before the location step runs. - Sample data: destinations and today's plan are in the
Wayfare sample datasection ofTravelApp.swift, nearby places inDetentSheetExample, and the stay inGlassSheetExample. 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.wayfareGraphicre-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: putTravelApp()in your ownWindowGroup. - Enable the In-App Purchase capability before testing purchases.
- Previews ship with the file: first run, home, and home in each Wayfare preset.
06
Keep building
Pieces that work well next to this one.