π―π΅ ζ₯ζ¬θͺηγ―γγ‘γ
A modern iOS application template built with SwiftUI, featuring automated CI/CD, architectural linting, and TestFlight deployment.
- π¨ Pure SwiftUI Architecture - No UIKit dependencies
- π¦ Swift Package Manager - Modern dependency management
- ποΈ Harmonize Linting - Architectural rules as unit tests
- π Automated CI/CD - One-command TestFlight deployment
- π Code Signing - Automated with fastlane match
- π₯ Team Development - Ready for collaborative development
- Language: Swift 5.10
- UI Framework: SwiftUI (iOS 16+)
- Architecture: MVVM with ObservableObject
- Linting: Harmonize (architectural rules) + swift-format
- CI/CD: fastlane + Ruby 3.4.5
- Package Management: Swift Package Manager
- Code Signing: fastlane match with SSH
- Alamofire - HTTP networking
- SwiftyJSON - JSON parsing
- Kingfisher - Image loading and caching
- Harmonize - Architectural linting
- macOS 14+ (for TestFlight deployment)
- Xcode 16+ (with iOS 18 SDK)
- Ruby 3.3+ (managed with mise/rbenv)
- Apple Developer Account
-
Clone the repository
git clone git@github.com:Aid-On/sandbox-app.git cd sandbox-app -
Install dependencies
make setup
-
Configure environment
cp .envrc.sample .envrc # Edit .envrc with your Apple Developer credentials -
Generate Xcode project
make dev
-
Open in Xcode
open "AidOn Sandbox.xcodeproj"
# Development
make help # Show all available commands
make setup # Complete project setup
make dev # Quick development setup
make build # Build Swift package
make test # Run tests
make lint # Run code quality checks
make validate # Run all validation (tests + linting)
# Code Quality
make lint-architecture # Run Harmonize architectural tests
make format # Auto-format code
# Distribution
make testflight-setup # Setup app in App Store Connect
make testflight # Build and upload to TestFlight
make archive # Create app archive
# Utilities
make clean # Clean build artifacts
make check-env # Check environment variables
make info # Show project informationThis template follows modern iOS development best practices:
- SwiftUI-First: No legacy UIKit code
- MVVM Pattern: Clear separation of concerns
- Dependency Injection: Testable architecture
- Modern Swift: async/await, actors, structured concurrency
- Package-Based: Modular code organization
Copy .envrc.sample to .envrc and configure:
# App Configuration
export APP_NAME="Your App Name"
export APP_ID="com.yourcompany.yourapp"
export APPLE_TEAM_ID="YOUR_TEAM_ID"
export APPLE_ID_MAIL_ADDRESS="your-apple-id@email.com"
# Environment
export XCODE_DEPLOYMENT_TARGET="16.0"- Create a private repository for certificates
- Update
fastlane/Matchfilewith your repository URL - Run
make matchto setup code signing
This template includes comprehensive testing:
- Unit Tests: AppCore functionality
- Architectural Tests: Harmonize rules
- Swift Package Tests: Package manager integration
make test # Run all tests
make test-coverage # Run tests with coverage
make lint-architecture # Check architectural rules# One-time setup
make testflight-setup
# Deploy to TestFlight
make testflightFor GitHub Actions, see the workflow example in SETUP.md.
- Setup Guide - Detailed setup instructions
- Harmonize Tests - Architectural rules
- Fastlane Configuration - CI/CD setup
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run tests (
make validate) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with modern iOS development best practices
- Inspired by the latest Swift and SwiftUI patterns
- Harmonize for architectural linting
- fastlane for automated deployment
Note: This template requires macOS 14+ and Xcode 16+ for TestFlight deployment due to Apple's iOS 18 SDK requirement. For legacy system support, see SETUP.md.