Get Started
Getting started
ShipThatApp is a production-ready SwiftUI boilerplate that saves you 50+ hours of setup. Auth, in-app purchases, analytics, and a full suite of AI features — including a built-in on-device + secure-cloud scanner — are already wired up on a modern stack (Swift 6, iOS 17+, @Observable, async/await). Clone it, drop in your keys, and ship.
Introduction
What's in the box and why it's built this way — start here to get the lay of the land.
Rename Project
Follow our step-by-step guide to transform ShipThatApp into your project.
Authentication Flow
Understand the inner workings of the user authentication flow.
In-App Purchases
Implement and manage in-app purchases with our ready-to-use system.
Analytics Integration
Learn about implementing analytics for insightful user tracking and events.
AI Features
Wire up ChatGPT, DALL·E, and Vision through a secure backend proxy that keeps your OpenAI keys off-device.
Dex Scanner
Scan anything and identify it with the hybrid on-device Vision plus cloud scanner, saved to a SwiftData Dex.
Discover how to leverage the full potential of the ShipThatApp boilerplate. Explore our detailed guides on setting up, customizing, and extending the code base to fit your needs.
Quick Start
Drop your own keys into a gitignored Config.xcconfig (copy the provided Config.Example.xcconfig template). Values like TD_APP_ID, RC_API_KEY, SUPABASE_URL, and SUPABASE_KEY flow through Info.plist and are read at runtime via Bundle.main.infoDictionary — no secrets are ever hardcoded in source. See Configurations for the full key list.
Navigation flows through LandingView and AppRouter: LandingView watches AuthManager.shared.currentSession and swaps between the sign-in stack (SignIn.swift) and the authenticated tab bar — no manual screen pushing. From there, explore OnboardingView, SettingsView, and the feature views.
Mimic the authentication flow found in AuthManager.swift using SignInViewModel to manage user input and authenticate via email/password or social providers.
Explore the PurchaseManager.swift to learn about product fetching and transaction handling. Then check the provided Paywall views to understand the purchase flows.
Dive into the app's analytics integration, following the patterns used in TelemetryClient calls to track user actions and events throughout the app.
By following this documentation along with the codebase, ShipThatApp should serve as a solid starting block for your next iOS adventure.
Happy coding! 🚀📱
Installing Dependencies
Follow these simple steps to include ShipThatApp in your existing SwiftUI project or start a new one from scratch.
git clone https://github.com/matious89pl/ShipThatApp.git
cd ShipThatApp
Integrate critical dependencies necessary for your app's analytics, in-app purchases, and authentication services.
Secrets stay out of the binary
Keys live in a gitignored Config.xcconfig, never in checked-in source. Copy Config.Example.xcconfig, fill in your values, and you're running. Your OpenAI keys never ship at all — every AI call is HMAC-signed and proxied through your backend. See Authentication and AI Chat.
Configuring the Boilerplate
Customize ShipThatApp to cater to your specific app needs with modular design and pre-configured services.
// ShipThatAppApp.swift
…
init() {
configureTelemetry()
configureRevenueCat()
// Add your custom configurations
}
With minimal setup, you can replace default values to personalize your app's splash screens, user authentication methods, and more.
Customization Tips
Take advantage of ShipThatApp's modular architecture by plugging in your views, models, and services as needed.
Core Features
Authentication
Email/password, passwordless Magic Link, and Sign in with Apple on top of Supabase — plus App Store-compliant account deletion, all behind one @Observable AuthManager. See Authentication.
In-App Purchases
Subscriptions and one-time purchases via RevenueCat, with ready-made paywalls. See In-App Purchases.
Analytics
Track user behavior and app events with TelemetryDeck. See Analytics.
AI Features
Multi-turn and one-off ChatGPT, DALL·E image generation, and Vision analysis — every call HMAC-signed and routed through your backend proxy so OpenAI keys never ship in the app. See AI Chat, AI Image Generation, and AI Vision.
Dex Scanner
The flagship feature: point the camera at anything and get a structured "Dex entry" back. A hybrid two-pass identifier — Apple's on-device Vision for an instant, private, offline guess, then a secure cloud pass for the rich result — collected into a SwiftData Dex. See Dex Scanner.
Splash Screen
Tweak the first impression of your app with a customizable, state-driven splash screen. See Splash Screen.
Going Live
When you're ready, follow Shipping to the App Store and keep Troubleshooting handy.
Getting Help
Need a hand or have questions? We're here to help you navigate the development waters.
Submit an Issue
If you encounter any obstacles, please submit an issue on our GitHub page, and we'll address it promptly.
Join the Community
Become part of our growing community. Connect with us and other developers on Discord to share tips, ideas, and get support.

