Modern SwiftUI application for Meta Ads performance analytics. iOS 17+ | Swift 5.9 | SwiftUI Charts
| Feature | Description |
|---|---|
| π― Symbol Effects | .bounce, .pulse, .wiggle animations |
| π³ Sensory Feedback | Contextual haptics (selection, impact, notification) |
| π’ Content Transitions | .numericText() for animated KPIs |
| π Chart Selection | Interactive chart selection |
| π Search Suggestions | Native search suggestions |
| π± Dynamic Island | Live Activities support for real-time tracking |
| π¨ Material Backgrounds | .regularMaterial blur effects |
- 6 KPIs with
.bounceanimations - ROAS/Month charts with interactive selection
- Budget/Product charts
- Top 5 creatives by ROAS
- Top 5 creators by conversions
- Pull-to-refresh with haptics
- Smart search with iOS 17 suggestions
- Filters: Product, Month, Status, Type
- Sort: ROAS ββ, Budget ββ, Conversions ββ
- Context menus with preview
- Swipe actions (favorite, archive)
- Presentation detents (adaptive sheet)
- 8 selectable KPIs with feedback
- Flow layout for tags
- Staggered entry animations
- Quick actions (edit, duplicate, share)
AG1Dashboard/
βββ AG1DashboardApp.swift # Entry point
βββ AG1-Data.csv # 1200 rows of mock data
βββ Theme/
β βββ Theme.swift # Complete design system
βββ Models/
β βββ Creative.swift # Data model
β βββ FilterState.swift # Observable filter state
βββ ViewModels/
β βββ DashboardViewModel.swift # Business logic + charts
βββ Services/
β βββ CSVParser.swift # CSV parsing
β βββ LiveActivityManager.swift # Dynamic Island support
βββ Views/
βββ ContentView.swift # Adaptive navigation
βββ Components/
β βββ Components.swift # 15+ reusable components
βββ Screens/
βββ OverviewView.swift # Dashboard with charts
βββ CreativesListView.swift # Filterable list
βββ CreativeDetailView.swift # Detail view
// Colors
AppTheme.Colors.primary // AG1 Green
AppTheme.Colors.background // Light gradient
AppTheme.Colors.accentBlue/Purple/Cyan...
// Animations
AppTheme.Animations.smooth // 0.3s easeInOut
AppTheme.Animations.bouncy // Spring with bounce
AppTheme.Animations.snappy // Quick response
// Styles
.cardStyle() // Cards with shadow
.gradientBackground() // Gradient backgroundThe AG1-Data.csv file contains 1200 entries with:
- 7 products (AG1 Powder, Travel Packs, Vitamins...)
- 10 different creators
- 5 content types (UGC, Podcast, Video, Image, Testimonial)
- 8 marketing angles
- 5 months (July - November 2025)
- Various metrics (budget, conversions, ROAS, impressions...)
# 1. Clone the project
git clone https://github.com/hatimhtm/AG1Dashboard.git
# 2. Open in Xcode 15+
open AG1Dashboard.xcodeproj
# 3. Build & Run
# Target: iOS 17.0+ Simulator or Device- SwiftUI - Declarative UI framework
- Swift Charts - Native charting
- Combine - Reactive programming
- ActivityKit - Live Activities
- Observation - @Observable macro (iOS 17)
MVVM Clean Architecture
βββ Models (Data layer)
βββ ViewModels (Business logic)
βββ Views (Presentation layer)
β βββ Screens (Pages)
β βββ Components (Reusable)
βββ Services (External interfaces)
| Column | Description |
|---|---|
| Ad Name | Creative identifier |
| Product | Product category |
| Creator | Creator name |
| Content Type | UGC/Podcast/Video... |
| Marketing Angle | Primary hook |
| Month | Broadcast period |
| Status | Live/Stopped/Paused/Archived |
| Budget Spent (β¬) | Amount invested |
| Conversions | Number of purchases |
| ROAS | Return on Ad Spend |
| Impressions | Number of views |
| Clicks | Interactions |
| Click Rate (%) | CTR |
MIT
Hatim El Hassak β Full-Stack Engineer