diff --git a/FLUTTER_MIGRATION.md b/FLUTTER_MIGRATION.md
deleted file mode 100644
index c753cf9..0000000
--- a/FLUTTER_MIGRATION.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# Flutter Migration Guide
-
-## Migration from Electron to Flutter
-
-The rmtPocketWatcher application has been successfully migrated from Electron + React to Flutter for true cross-platform support.
-
-### What Changed
-
-**Before (Electron):**
-- Electron + React + TypeScript
-- Windows desktop only
-- ~100MB bundle size
-- WebView-based rendering
-
-**After (Flutter):**
-- Flutter + Dart
-- Windows, macOS, Linux, Android, iOS support
-- ~15-20MB bundle size
-- Native rendering
-
-### Project Structure
-
-```
-flutter_app/
-├── lib/
-│ ├── main.dart # App entry point
-│ ├── models/
-│ │ └── price_data.dart # Data models (PriceData, LatestPrice, PriceAlert)
-│ ├── providers/
-│ │ └── price_provider.dart # State management with Provider
-│ ├── screens/
-│ │ └── home_screen.dart # Main dashboard screen
-│ ├── services/
-│ │ ├── api_service.dart # REST API communication
-│ │ ├── websocket_service.dart # WebSocket connection
-│ │ └── storage_service.dart # Local storage (SharedPreferences)
-│ └── widgets/
-│ ├── alerts_panel.dart # Price alerts UI
-│ ├── price_chart.dart # Historical price chart
-│ ├── price_stats_card.dart # Stats display cards
-│ └── vendor_table.dart # Vendor comparison table
-├── assets/ # Images, fonts, etc.
-├── .env # Environment configuration
-└── pubspec.yaml # Dependencies
-```
-
-### Key Features Preserved
-
-✅ **Real-time price tracking** - WebSocket connection to backend
-✅ **Bloomberg-style dashboard** - Stats cards, charts, vendor table
-✅ **Price alerts** - Client-side evaluation with notifications
-✅ **Historical charts** - Interactive price history with fl_chart
-✅ **Vendor comparison** - Sortable table of all sellers
-✅ **Auto-reconnect** - WebSocket reconnection logic
-✅ **Local storage** - Alerts and settings persistence
-
-### New Capabilities
-
-🆕 **Mobile support** - Same app runs on Android/iOS
-🆕 **Better performance** - Native rendering, smaller memory footprint
-🆕 **Cross-platform** - Windows, macOS, Linux from same codebase
-🆕 **Material Design 3** - Modern, consistent UI across platforms
-🆕 **Responsive layout** - Adapts to different screen sizes
-
-### Backend Compatibility
-
-The Flutter app is **100% compatible** with the existing TypeScript backend:
-- Same REST API endpoints (`/prices/latest`, `/index/history`)
-- Same WebSocket protocol (`/ws/index`)
-- Same data formats (JSON)
-- No backend changes required
-
-### Development Commands
-
-```bash
-# Install dependencies
-flutter pub get
-
-# Run on different platforms
-flutter run -d windows # Windows desktop
-flutter run -d android # Android device/emulator
-flutter run -d ios # iOS device/simulator
-
-# Build releases
-flutter build windows # Windows executable
-flutter build apk # Android APK
-flutter build ipa # iOS app bundle
-
-# Development tools
-flutter doctor # Check setup
-flutter devices # List available devices
-flutter logs # View app logs
-```
-
-### Environment Configuration
-
-The app uses `.env` file for configuration:
-
-```env
-API_URL=http://localhost:3000
-WS_URL=ws://localhost:3000/ws/index
-```
-
-### Mobile Adaptations
-
-The UI automatically adapts for mobile:
-- **Desktop**: Multi-column layout with side-by-side panels
-- **Mobile**: Single-column layout with scrollable sections
-- **Responsive**: Charts and tables adjust to screen size
-- **Touch-friendly**: Larger tap targets on mobile
-
-### Migration Benefits
-
-1. **Cross-platform**: One codebase for all platforms
-2. **Performance**: 50-80% smaller memory usage
-3. **Native feel**: Platform-specific UI elements
-4. **Future-proof**: Mobile support for user growth
-5. **Maintenance**: Single codebase to maintain
-6. **Distribution**: App stores + direct downloads
-
-### Next Steps
-
-1. **Test the Flutter app**: `flutter run -d windows`
-2. **Verify backend connection**: Ensure backend is running
-3. **Test on mobile**: Run on Android/iOS devices
-4. **Build releases**: Create platform-specific builds
-5. **Update deployment**: Replace Electron builds with Flutter
-
-The migration preserves all functionality while adding mobile support and improving performance. The backend remains unchanged, ensuring a smooth transition.
\ No newline at end of file
diff --git a/FLUTTER_MIGRATION_COMPLETE.md b/FLUTTER_MIGRATION_COMPLETE.md
deleted file mode 100644
index 5fd4d56..0000000
--- a/FLUTTER_MIGRATION_COMPLETE.md
+++ /dev/null
@@ -1,178 +0,0 @@
-# Flutter Migration Complete ✅
-
-## Migration Summary
-
-Successfully migrated rmtPocketWatcher from Electron + React to Flutter for true cross-platform support.
-
-### ✅ What's Been Completed
-
-**Core Application Structure:**
-- ✅ Flutter project created with proper dependencies
-- ✅ Material Design 3 theme with Bloomberg-style dark colors
-- ✅ Provider state management setup
-- ✅ Cross-platform compatibility (Windows, macOS, Linux, Android, iOS)
-
-**Data Layer:**
-- ✅ `PriceData`, `LatestPrice`, `HistoryData`, `PriceAlert` models
-- ✅ WebSocket service with auto-reconnect logic
-- ✅ REST API service for initial data fetching
-- ✅ Local storage service using SharedPreferences
-
-**UI Components:**
-- ✅ `HomeScreen` - Main dashboard layout
-- ✅ `PriceStatsCard` - Connection status, lowest price, seller info
-- ✅ `AlertsPanel` - Add/manage price alerts with enable/disable
-- ✅ `PriceChart` - Interactive historical price chart with fl_chart
-- ✅ `VendorTable` - Sortable vendor comparison table
-
-**Features Preserved:**
-- ✅ Real-time WebSocket price updates
-- ✅ Historical price charts with time range selection
-- ✅ Client-side price alerts with local storage
-- ✅ Vendor comparison table with sorting
-- ✅ Bloomberg-style terminal interface
-- ✅ Auto-reconnect WebSocket logic
-
-**Platform Support:**
-- ✅ Windows desktop (requires Visual Studio C++ components)
-- ✅ Web browser (for testing without C++ setup)
-- ✅ Ready for macOS, Linux, Android, iOS
-
-### 🔧 Setup Requirements
-
-**For Windows Desktop Development:**
-1. Install Visual Studio 2022 Community
-2. Add "Desktop development with C++" workload
-3. Include these components:
- - MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
- - Windows 11 SDK (10.0.22621.0)
- - CMake tools for Visual Studio
-
-**Quick Commands:**
-```bash
-cd flutter_app
-
-# Install dependencies
-flutter pub get
-
-# Check setup
-flutter doctor
-
-# Run on Windows (after VS setup)
-flutter run -d windows
-
-# Run on web (works without C++ components)
-flutter run -d chrome
-
-# Build for Windows
-flutter build windows
-```
-
-### 🎯 Next Steps
-
-**Immediate (Ready to Use):**
-1. **Fix Visual Studio Components** - Install C++ workload for Windows builds
-2. **Test Backend Connection** - Ensure TypeScript backend is running on port 3000
-3. **Run Flutter App** - `flutter run -d windows` or `flutter run -d chrome`
-4. **Verify Features** - Test WebSocket, alerts, charts, vendor table
-
-**Short Term:**
-1. **Mobile Testing** - Test responsive layout on Android/iOS
-2. **Performance Optimization** - Test with 50k+ chart datapoints
-3. **Notifications** - Implement native notifications for alerts
-4. **Window Controls** - Add minimize/close functionality for desktop
-
-**Long Term:**
-1. **App Store Distribution** - Prepare for Google Play, App Store
-2. **Auto-Updates** - Implement update mechanism
-3. **Advanced Charts** - Add more chart types and interactions
-4. **Settings Panel** - Theme, notification preferences
-
-### 📱 Mobile Support
-
-The Flutter app automatically supports mobile with responsive design:
-
-**Desktop Layout:**
-- Multi-column stats cards
-- Side-by-side panels
-- Full-width charts and tables
-
-**Mobile Layout:**
-- Single-column scrollable layout
-- Stacked stats cards
-- Touch-friendly controls
-- Responsive charts
-
-### 🔄 Backend Compatibility
-
-**100% Compatible** with existing TypeScript backend:
-- Same REST endpoints: `/prices/latest`, `/index/history`
-- Same WebSocket protocol: `/ws/index`
-- Same JSON data formats
-- No backend changes required
-
-### 📊 Performance Benefits
-
-**Flutter vs Electron:**
-- **Bundle Size**: ~15MB vs ~100MB (85% smaller)
-- **Memory Usage**: ~50MB vs ~150MB (67% less)
-- **Startup Time**: ~2s vs ~5s (60% faster)
-- **Native Performance**: 60fps rendering vs WebView overhead
-
-### 🚀 Deployment Options
-
-**Desktop:**
-- Windows: `.exe` installer
-- macOS: `.dmg` or `.pkg`
-- Linux: `.deb`, `.rpm`, or AppImage
-
-**Mobile:**
-- Android: `.apk` or Google Play Store
-- iOS: App Store (requires Apple Developer account)
-
-**Web:**
-- Progressive Web App (PWA)
-- Direct hosting on any web server
-
-### 🛠️ Development Workflow
-
-```bash
-# Development
-flutter run -d windows # Hot reload development
-flutter run -d android # Test mobile layout
-flutter run -d chrome # Web testing
-
-# Building
-flutter build windows --release # Production Windows build
-flutter build apk --release # Production Android build
-flutter build web --release # Production web build
-
-# Testing
-flutter test # Unit tests
-flutter drive --target=test_driver/app.dart # Integration tests
-```
-
-### 📋 Migration Checklist
-
-- [x] Flutter project structure created
-- [x] All Electron features migrated
-- [x] Cross-platform compatibility added
-- [x] Backend integration preserved
-- [x] UI/UX maintained (Bloomberg style)
-- [x] State management implemented
-- [x] Local storage working
-- [x] WebSocket auto-reconnect
-- [x] Responsive design for mobile
-- [x] Documentation completed
-
-### 🎉 Success Metrics
-
-The Flutter migration delivers:
-- **5 platforms** from 1 codebase (vs 1 platform)
-- **85% smaller** bundle size
-- **67% less** memory usage
-- **Mobile support** for future growth
-- **Native performance** across all platforms
-- **Maintained feature parity** with Electron version
-
-The rmtPocketWatcher Flutter app is ready for production use and provides a solid foundation for cross-platform expansion!
\ No newline at end of file
diff --git a/SETUP.md b/SETUP.md
deleted file mode 100644
index 74fc646..0000000
--- a/SETUP.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# rmtPocketWatcher Setup Guide
-
-## What's Been Created
-
-✅ **Backend Scraper Service**
-- Playwright-based scrapers for Eldorado and PlayerAuctions
-- Automatic retry logic and error handling
-- Scheduled scraping every 5 minutes
-- Tracks all seller listings with platform, price, and delivery time
-
-✅ **Database Layer**
-- PostgreSQL with Prisma ORM
-- Three tables: VendorPrice, PriceIndex, ScrapeLog
-- Stores all historical listings for trend analysis
-- Indexed for fast queries
-
-✅ **API Layer**
-- Fastify REST API with 6 endpoints
-- WebSocket for real-time updates
-- Filter by seller, platform, date range
-- Historical price data
-
-✅ **Docker Setup**
-- Docker Compose orchestration
-- PostgreSQL container with health checks
-- Backend container with auto-migration
-- Volume persistence for database
-
-## Current Status
-
-The Docker Compose stack is building. This will:
-1. Pull PostgreSQL 16 Alpine image
-2. Build the backend Node.js container
-3. Install Playwright and dependencies
-4. Generate Prisma client
-5. Start both services
-
-## Once Build Completes
-
-### Check Status
-```bash
-# View logs
-docker-compose logs -f backend
-
-# Check if services are running
-docker ps
-```
-
-### Test the API
-```bash
-# Health check
-curl http://localhost:3000/health
-
-# Get latest prices (after first scrape)
-curl http://localhost:3000/api/prices/latest
-
-# Get lowest price
-curl http://localhost:3000/api/prices/lowest
-
-# Get price history
-curl "http://localhost:3000/api/index/history?range=7d"
-```
-
-### Monitor Scraping
-The backend will automatically:
-- Scrape Eldorado and PlayerAuctions every 5 minutes
-- Save all listings to the database
-- Calculate and store the lowest price
-- Log all scrape attempts
-
-Check logs to see scraping activity:
-```bash
-docker-compose logs -f backend | grep "scraping"
-```
-
-## Database Access
-
-### Using Prisma Studio
-```bash
-cd backend
-npm run db:studio
-```
-
-### Using psql
-```bash
-docker exec -it rmtpw-postgres psql -U rmtpw -d rmtpocketwatcher
-```
-
-## Stopping and Restarting
-
-```bash
-# Stop services
-docker-compose down
-
-# Start services
-docker-compose up -d
-
-# Rebuild after code changes
-docker-compose up --build -d
-
-# View logs
-docker-compose logs -f
-
-# Remove everything including data
-docker-compose down -v
-```
-
-## Environment Variables
-
-Edit `.env` or `docker-compose.yml` to configure:
-
-- `SCRAPE_INTERVAL_MINUTES` - How often to scrape (default: 5)
-- `SCRAPER_HEADLESS` - Run browser in headless mode (default: true)
-- `PORT` - API server port (default: 3000)
-- `DATABASE_URL` - PostgreSQL connection string
-
-## Next Steps
-
-1. **Wait for build to complete** (~2-5 minutes)
-2. **Verify services are running**: `docker ps`
-3. **Check first scrape**: `docker-compose logs -f backend`
-4. **Test API endpoints**: See examples above
-5. **Build Electron frontend** (coming next)
-
-## Troubleshooting
-
-### Backend won't start
-```bash
-# Check logs
-docker-compose logs backend
-
-# Restart backend
-docker-compose restart backend
-```
-
-### Database connection issues
-```bash
-# Check postgres is healthy
-docker-compose ps
-
-# Restart postgres
-docker-compose restart postgres
-```
-
-### Scraper errors
-```bash
-# View detailed logs
-docker-compose logs -f backend | grep -A 5 "error"
-
-# Check scrape log in database
-docker exec -it rmtpw-postgres psql -U rmtpw -d rmtpocketwatcher -c "SELECT * FROM scrape_log ORDER BY timestamp DESC LIMIT 10;"
-```
-
-## File Structure
-
-```
-rmtPocketWatcher/
-├── docker-compose.yml # Docker orchestration
-├── .env # Environment variables
-├── backend/
-│ ├── Dockerfile # Backend container definition
-│ ├── prisma/
-│ │ └── schema.prisma # Database schema
-│ ├── src/
-│ │ ├── scrapers/ # Scraping logic
-│ │ ├── api/ # REST + WebSocket API
-│ │ ├── database/ # Prisma client & repository
-│ │ └── index.ts # Main server
-│ └── package.json
-└── README.md
-```
diff --git a/flutter_app/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/flutter_app/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..c9dc7b9
Binary files /dev/null and b/flutter_app/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png differ
diff --git a/flutter_app/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/flutter_app/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..4f4787b
Binary files /dev/null and b/flutter_app/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png differ
diff --git a/flutter_app/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/flutter_app/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..443fc90
Binary files /dev/null and b/flutter_app/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png differ
diff --git a/flutter_app/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/flutter_app/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..b3a3256
Binary files /dev/null and b/flutter_app/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png differ
diff --git a/flutter_app/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/flutter_app/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..22aeb10
Binary files /dev/null and b/flutter_app/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/flutter_app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/flutter_app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..c79c58a
--- /dev/null
+++ b/flutter_app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index db77bb4..084954c 100644
Binary files a/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 17987b7..b0da8d4 100644
Binary files a/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 09d4391..d45ef6a 100644
Binary files a/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index d5f1c8d..3df2ba2 100644
Binary files a/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 4d6372e..6300fe3 100644
Binary files a/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/flutter_app/android/app/src/main/res/values/colors.xml b/flutter_app/android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..19d9c82
--- /dev/null
+++ b/flutter_app/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #1a1a2e
+
\ No newline at end of file
diff --git a/flutter_app/ios/Runner.xcodeproj/project.pbxproj b/flutter_app/ios/Runner.xcodeproj/project.pbxproj
index 51ee13f..ec3b2a0 100644
--- a/flutter_app/ios/Runner.xcodeproj/project.pbxproj
+++ b/flutter_app/ios/Runner.xcodeproj/project.pbxproj
@@ -427,7 +427,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -484,7 +484,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
index d36b1fa..d0d98aa 100644
--- a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,122 +1 @@
-{
- "images" : [
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "83.5x83.5",
- "idiom" : "ipad",
- "filename" : "Icon-App-83.5x83.5@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "1024x1024",
- "idiom" : "ios-marketing",
- "filename" : "Icon-App-1024x1024@1x.png",
- "scale" : "1x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
+{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
\ No newline at end of file
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
index dc9ada4..703dff4 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
index 7353c41..93a6733 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
index 797d452..3daae2a 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
index 6ed2d93..65f2a9a 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
index 4cd7b00..fb1913e 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
index fe73094..26175f9 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
index 321773c..f976fbc 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
index 797d452..3daae2a 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
index 502f463..a1a4c5b 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
index 0ec3034..4800d20 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
new file mode 100644
index 0000000..4555c22
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
new file mode 100644
index 0000000..1438d6e
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
new file mode 100644
index 0000000..834b274
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
new file mode 100644
index 0000000..1e31a6c
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
index 0ec3034..4800d20 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
index e9f5fea..8668be9 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
new file mode 100644
index 0000000..084954c
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
new file mode 100644
index 0000000..3df2ba2
Binary files /dev/null and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
index 84ac32a..a842f8e 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
index 8953cba..6113f41 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ
diff --git a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
index 0467bf1..34b8b3c 100644
Binary files a/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/flutter_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ
diff --git a/flutter_app/pubspec.lock b/flutter_app/pubspec.lock
index c84da49..12e4fcc 100644
--- a/flutter_app/pubspec.lock
+++ b/flutter_app/pubspec.lock
@@ -41,6 +41,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.0"
+ checked_yaml:
+ dependency: transitive
+ description:
+ name: checked_yaml
+ sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.4"
cli_util:
dependency: transitive
description:
@@ -150,6 +158,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.2.1"
+ flutter_launcher_icons:
+ dependency: "direct dev"
+ description:
+ name: flutter_launcher_icons
+ sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.14.4"
flutter_lints:
dependency: "direct dev"
description:
@@ -232,6 +248,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.19.0"
+ json_annotation:
+ dependency: transitive
+ description:
+ name: json_annotation
+ sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.9.0"
leak_tracker:
dependency: transitive
description:
diff --git a/flutter_app/pubspec.yaml b/flutter_app/pubspec.yaml
index 94c0fbe..ca0e8d2 100644
--- a/flutter_app/pubspec.yaml
+++ b/flutter_app/pubspec.yaml
@@ -1,5 +1,5 @@
name: rmtpocketwatcher
-description: "A new Flutter project."
+description: "Track USD vs aUEC"
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
-version: 1.0.1+2
+version: 1.0.0
environment:
sdk: '>=3.5.0 <4.0.0'
@@ -89,6 +89,17 @@ dev_dependencies:
# Windows installer creation
msix: ^3.16.8
+
+ # App icon generation
+ flutter_launcher_icons: ^0.14.3
+
+# Flutter Launcher Icons configuration
+flutter_launcher_icons:
+ android: true
+ ios: true
+ image_path: "assets/logo.png"
+ adaptive_icon_background: "#1a1a2e"
+ adaptive_icon_foreground: "assets/logo.png"
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec