Quick Start
Get Thrust running on your Mac in just a few minutes.Prerequisites
Before you begin, make sure you have:- macOS 14.0+ (Sonoma or later)
- Xcode 16.0+ with iOS 18 SDK
- Apple Developer Account (for device testing)
- Git installed
Installation
1. Clone the Repository
2. Run Setup Script
The setup script will configure everything automatically:- Create
Secrets.plistfrom template - Install dependencies
- Configure project settings
- Verify Xcode installation
3. Configure Secrets (Optional)
If you want to use Connected Mode features, add your API keys toSecrets.plist:
Ghost Mode works without any API keys! You only need these for Connected Mode features.
4. Open in Xcode
5. Select Target Device
In Xcode:- Select a simulator or connected device
- Choose Thrust scheme
- Press ⌘R to build and run
First Run
When you first launch Thrust:-
Welcome Screen - Choose your privacy mode
- Ghost Mode - All data on-device (recommended for development)
- Connected Mode - With cloud sync
-
Create Profile - Set up your user profile
- Name
- Primary currency
- Week start day
-
Add First Account - Create your first account
- Account type (Cash, Bank, etc.)
- Name
- Initial balance
- Done! - You’re ready to use Thrust
Development Workflow
Running the App
Simulator:- Connect your iPhone/iPad
- Select it in Xcode
- Press ⌘R
Testing
Run all tests:Code Quality
Run quality checks before committing:- SwiftLint violations
- Build warnings
- Test coverage
- Localization completeness
Project Structure
Key directories to know:Common Tasks
Add a New Feature
- Create feature directory in
Features/ - Add views, view models, and components
- Register in navigation
- Add tests
Add a New Model
- Create model in
Models/ - Add
@Modelmacro - Update
DataSchema.swiftif needed - Create migration if changing existing model
Add a New Screen
- Create view in appropriate feature directory
- Add to navigation in
MainView.swiftor sheet coordinator - Add localization strings
- Test on different screen sizes
Debug Issues
SwiftData issues:- Use Xcode View Debugger (⌘⌥D while running)
- Check console for SwiftUI warnings
- Test on different devices/orientations
- Use Instruments (⌘I)
- Check Time Profiler
- Monitor memory usage
API Keys (Optional)
GoCardless (Bank Integration)
- Sign up at gocardless.com
- Create an app
- Get Secret ID and Secret Key
- Add to
Secrets.plist
Moralis (Crypto Tracking)
- Sign up at moralis.io
- Create a project
- Get API key
- Add to
Secrets.plist
- Ethereum, BSC, Polygon (EVM)
- Solana
- Bitcoin
- TON
- TRON
- Cosmos
- Polkadot
Troubleshooting
Build Fails
“Secrets.plist not found”- Update to Xcode 16.0+
- Clean build folder (⌘⇧K)
- Select your development team in project settings
- Enable “Automatically manage signing”
Runtime Issues
“App crashes on launch”- Check console for errors
- Delete app and reinstall
- Reset simulator
- Delete app data
- Or implement migration in
DataSchema.swift
- Check
@Observableon view models - Verify
@Queryin views - Use
@Environmentcorrectly
Performance Issues
“App is slow”- Check for expensive computations in views
- Use
Taskfor async work - Profile with Instruments
- Check for retain cycles
- Use
weakreferences where needed - Profile with Memory Graph Debugger
Next Steps
Now that you have Thrust running:Features Overview
Explore all features in detail
Architecture
Understand the app architecture
Project Structure
Navigate the codebase
Contributing
Contribute to Thrust
Getting Help
- GitHub Issues - Report bugs
- GitHub Discussions - Ask questions
- Code Comments - Most code is well-documented
- CLAUDE.md - AI assistant instructions