Triply-

Itinero

A beautiful, feature-rich iOS app for planning and managing your trips. Built with SwiftUI and SwiftData.

iOS Swift SwiftUI License

✨ Features

Trip Management

Planning Tools

User Experience

Advanced Features

πŸ—οΈ Architecture

Built with modern iOS development practices:

πŸ“‹ Requirements

πŸš€ Getting Started

Prerequisites

  1. Install Xcode 15.0 or later
  2. Ensure you have a valid Apple Developer account (for device testing)

Installation

  1. Clone the repository
    git clone <repository-url>
    cd Triply
    
  2. Open the project
    open Itinero.xcodeproj
    
  3. Install dependencies
    • Swift Package Manager dependencies resolve automatically on first open
  4. Configure the project
    • Update the Bundle Identifier in Xcode if needed
    • Configure signing & capabilities for your team
  5. Build and run
    • Select a simulator or connected device
    • Press ⌘R to build and run

Quick Run Scripts

./run.sh          # Build and run in simulator
./run_device.sh   # Build and run on connected device
./build.sh        # Just build the project
./watch.sh        # Auto-rebuild on file changes

πŸ“ Project Structure

Itinero/
β”œβ”€β”€ ItineroApp.swift          # App entry point
β”œβ”€β”€ Models/                    # SwiftData models
β”‚   β”œβ”€β”€ TripModel.swift
β”‚   β”œβ”€β”€ DestinationModel.swift
β”‚   β”œβ”€β”€ ItineraryItem.swift
β”‚   β”œβ”€β”€ Expense.swift
β”‚   └── ...
β”œβ”€β”€ Views/                     # SwiftUI views
β”‚   β”œβ”€β”€ ContentView.swift      # Root view
β”‚   β”œβ”€β”€ TripListView.swift     # Main trip list
β”‚   β”œβ”€β”€ TripDetailView.swift   # Trip details
β”‚   β”œβ”€β”€ AddTripView.swift      # Trip creation
β”‚   β”œβ”€β”€ AnalyticsView.swift    # Statistics & analytics
β”‚   └── ...
β”œβ”€β”€ Managers/                   # Business logic
β”‚   β”œβ”€β”€ SettingsManager.swift  # App settings
β”‚   β”œβ”€β”€ TripDataManager.swift  # Data operations
β”‚   β”œβ”€β”€ FreePlacesManager.swift # Places discovery
β”‚   └── ...
β”œβ”€β”€ Widgets/                    # iOS Widgets
β”‚   └── TripStatsWidget.swift
β”œβ”€β”€ Extensions/                 # Swift extensions
β”œβ”€β”€ Components/                 # Reusable UI components
β”œβ”€β”€ Resources/                  # Assets & localizations
└── ItineroUITests/            # UI test suite

πŸ§ͺ Testing

The project includes comprehensive UI tests:

# Run all tests
xcodebuild test -project Itinero.xcodeproj -scheme Itinero

# Run specific test suite
xcodebuild test -project Itinero.xcodeproj -scheme Itinero \
  -only-testing:ItineroUITests/ScreenshotUITests

Test Coverage

🎨 Customization

Themes

The app supports multiple themes:

Localization

Currently supports:

Currency

Supports all major currencies with dynamic formatting:

πŸ“± Widgets

The app includes iOS widgets for quick access:

Add widgets from the home screen by long-pressing and selecting β€œItinero”.

πŸ” Permissions

The app requests the following permissions:

All permissions are optional and the app gracefully handles denied permissions.

πŸ› οΈ Development

Code Style

Contributing

  1. Create a feature branch
  2. Make your changes
  3. Add tests for new features
  4. Ensure all tests pass
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

For issues, questions, or feature requests:


Support

If you need help with Itinero, please contact:

Email: Tobi_adegoroye@yahoo.com

Subscriptions

You can manage or cancel your subscription from your Apple ID subscription settings.

Restore Purchases

Open Itinero and tap Restore Purchases.

Made with ❀️ using SwiftUI