Update app icons
Some checks failed
Flutter Release / get-version (push) Successful in 6s
Flutter Release / build-windows (push) Failing after 9s
Flutter Release / create-release (push) Has been cancelled
Flutter Release / build-android (push) Has been cancelled

This commit is contained in:
2025-12-15 12:34:05 -05:00
parent f4bf073d52
commit 7453943c37
40 changed files with 53 additions and 604 deletions

View File

@@ -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.

View File

@@ -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!

171
SETUP.md
View File

@@ -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
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground>
<inset
android:drawable="@drawable/ic_launcher_foreground"
android:inset="16%" />
</foreground>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#1a1a2e</color>
</resources>

View File

@@ -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++";

View File

@@ -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"}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -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:

View File

@@ -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'
@@ -90,6 +90,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