An AI-powered iOS travel planning application that helps users discover and explore destinations. It leverages Google's Gemini AI along with interactive maps, onboarding, authentication, and local persistence.
TravelPlanner is a modular iOS application built with Swift that leverages Firebase services and Google's Gemini AI to provide intelligent travel recommendations. Users can search for travel destinations using natural language prompts, and the app returns specific landmarks, attractions, and points of interest with detailed information and map integration.
- AI-Powered Travel Recommendations: Uses Google Gemini AI to generate personalized travel suggestions
- Interactive Map Integration: MapKit integration with custom annotations for travel locations
- Firebase Authentication: Secure user authentication and session management
- Modular Architecture: Clean, maintainable codebase with VIPER pattern
- Onboarding Flow: User-friendly introduction to app features
- Splash Screen : Animated splash screen
- Network Monitoring: Real-time connectivity status tracking
- Reachability: Live network status via
NWPathMonitor - Local persistence: Store places and folders using Core Data
- Language: Swift
- Frameworks: UIKit, MapKit, Core Data, Network
- Architecture: VIPER, Modular with Swift Package Manager (SPM)
- UI: XIB-based UI + Programmatic UI
- AI: Google Gemini API
- Backend Services: Firebase (Auth, App Check)
The app is modular, constructed using Swift Package Manager (SPM), and follows the VIPER architecture:
- App: Main application target with AppDelegate and SceneDelegate
- AppRouter: Central navigation and routing logic
- AIPlanner: Core travel planning functionality
- Folder: Stores user-saved locations
- FolderDetail: Displays the contents of a folder
- TravelPlannerAuth: Includes login and sign-up screens. Utilizes Firebase Auth
- TravelPlannerNetwork: Network layer with Gemini AI integration; includes
ReachabilityManagerto track network connection viaNWPathMonitor - AppResources: Shared data models and entities
- TabBar: Main tab bar controller
- UserProfile: User profile management
- Splash: App launch screen with animations
- Onboarding: User onboarding flow
- AppCheckProvider: Firebase App Check security
- Splash Screen: App launches with animated splash
- Onboarding: First-time users see feature introduction
- Authentication: Firebase-based login and sign-up
- Main Interface: Tab-based navigation with AI planner
- Travel Search: Natural language travel queries
- Results: Interactive map with location details
Each module follows VIPER architecture:
- View: UI components and view controllers
- Interactor: Business logic and data operations
- Presenter: View logic and formatting
- Entity: Data models
- Router: Navigation and module assembly


