A comprehensive iOS application that helps users manage their wardrobe, create daily outfits, and receive AI-powered style recommendations.
- Item Addition: Capture clothing items via camera or import from photo library
- Smart Categorization: Automatic classification (tops, bottoms, shoes, accessories, etc.)
- Metadata System:
- Color recognition
- Season tags (summer, winter, spring, fall, all-season)
- Style categories (casual, formal, sportswear, business, evening, streetwear)
- Material and brand tracking
- Custom tags
- Search & Filter: Advanced filtering by multiple attributes (category, color, season, style)
- Organization: Virtual closet with custom categories and tags
- Visual Outfit Builder: Create combinations by selecting items from your wardrobe
- Outfit Library: Save and categorize complete outfits
- Occasion-based Organization: Organize outfits by occasion (work, casual, date, sports, etc.)
- Outfit Rating: User feedback system for improvement
- Seasonal Planning: Weather-appropriate outfit suggestions
- AI Clothing Classifier: GPT-4o Vision analyzes garment photos (category, colors, materials, season, style, confidence)
- AI Outfit Generator: Uses color theory, weather, and trend prompts to create stylish combinations
- AI Stylist Chat: Conversational assistant that learns user preferences and suggests improvements
- Daily Outfit Generator: Context-aware daily suggestions (AI-first with local fallback)
- Smart Matching: Learns user preferences and suggests compatible items
- Weather Integration: Automatic adjustments based on local weather conditions
- Occasion-based & manual overrides: Outfits for specific events with user control
- Usage Analytics: Track most/least worn items
- Category Distribution: See your wardrobe breakdown by category
- Style Distribution: Analyze your style preferences
- Wear Statistics: Track how often you wear each item
- Outfit Planning: Plan outfits for upcoming events
- Calendar View: Visual calendar to see planned outfits
- Date-based Organization: Organize outfits by date
ClothingItem: Core model for clothing items with all metadataOutfit: Model for complete outfit combinationsWeatherData: Weather information for recommendations
WardrobeViewModel: Manages wardrobe items, filtering, and searchOutfitViewModel: Handles outfit creation and managementRecommendationViewModel: AI-powered recommendation engine (AI + fallback)OpenAIService: Shared OpenAI client with rate limiting & error handlingAIClothingClassifier: GPT-4o Vision client for clothing analysisAIOutfitGenerator: GPT-based outfit planningAIStyleAssistant: ObservableObject for chat experienceWeeklyOutfitGenerator: Builds weekly plans using AI suggestions
- HomeView: Dashboard with daily recommendations and quick stats
- WardrobeView: Main wardrobe browsing interface
- OutfitBuilderView: Visual outfit creation tool
- RecommendationsView: AI style recommendations
- AnalyticsView: Usage statistics and insights
- CalendarView: Outfit planning calendar
- Xcode 15.0 or later
- iOS 17.0 or later
- Swift 5.9 or later
Add your OpenAI API key (GPT-4o mini with vision support) either as:
- Environment variable:
OPENAI_API_KEY=sk-... - Info.plist entry:
OPENAI_API_KEY
Without the key the AI features gracefully fall back to local heuristics, but vision/classifier/chat will not work.
The app requires camera and photo library access. Add these keys to your Info.plist or build settings:
For Info.plist:
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to take photos of your clothing items.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>We need access to your photo library to import images of your clothing items.</string>For Build Settings (if using GENERATE_INFOPLIST_FILE): Add these to your build settings:
INFOPLIST_KEY_NSCameraUsageDescription= "We need access to your camera to take photos of your clothing items."INFOPLIST_KEY_NSPhotoLibraryUsageDescription= "We need access to your photo library to import images of your clothing items."
- Clone or download the project
- Open
WardrobeAssistant.xcodeprojin Xcode - Configure the OpenAI API key (environment variable or Info.plist)
- Add the privacy permissions as described above
- Build and run on a simulator or device
Currently, the app uses UserDefaults for data persistence. For production use, consider migrating to:
- Core Data
- CloudKit (for iCloud sync)
- A backend database (PostgreSQL, MongoDB, etc.)
- CloudKit integration for iCloud sync
- Real weather API integration (OpenWeatherMap, WeatherKit)
- Machine learning for better recommendations
- Social features (share outfits, community feedback)
- Shopping integration (identify wardrobe gaps, suggest purchases)
- Maintenance reminders (cleaning and care notifications)
- Advanced analytics with charts and graphs
- Export/import functionality
- Multiple wardrobe support
- Outfit templates and style guides
The app follows Apple's Human Interface Guidelines:
- 44pt x 44pt minimum touch targets
- 11pt minimum text size for legibility
- High contrast for accessibility
- Proper spacing to prevent text overlap
- High-resolution image support (@2x, @3x)
- MVVM Pattern: Separation of concerns with ViewModels
- SwiftUI: Modern declarative UI framework
- Combine: Reactive programming for data flow
- Codable: Easy data serialization
This project is created for educational and personal use.
Built with SwiftUI and following Apple Design Guidelines.