Skip to content

Commit 0c62eda

Browse files
author
GitLab CI
committed
docs: Add FUNDING.yml and project roadmap
- Add .github/FUNDING.yml for GitHub Sponsors button - Add docs/ROADMAP.md with 4-phase optimization plan (v0.7.1-v0.7.4)
1 parent cffc52c commit 0c62eda

2 files changed

Lines changed: 177 additions & 0 deletions

File tree

.github/FUNDING.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
github: ai-dashboad
2+
buy_me_a_coffee: ai-dashboad
3+
ko_fi: flutter-skill

docs/ROADMAP.md

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# Flutter Skill Roadmap
2+
3+
> Comprehensive optimization and multi-framework expansion plan for Flutter Skill as an AI E2E testing platform.
4+
5+
---
6+
7+
## Phase 1: Core Flutter Optimization (v0.7.1)
8+
9+
### Smart Screenshot Optimization
10+
- Auto-compress screenshots for AI vision models (reduce token cost 3-5x)
11+
- Configurable quality/resolution presets: `screenshot({ quality: "ai" })`
12+
- Auto-crop status bar and navigation bar
13+
- Delta screenshots (only send changed regions)
14+
15+
### Intelligent Wait System
16+
- Replace fixed timeouts with smart polling: `wait_for_stable()` waits until UI stops changing
17+
- Auto-detect animations/transitions and wait for completion
18+
- Network-aware waiting (wait for HTTP requests to complete)
19+
20+
### Enhanced Error Recovery
21+
- Auto-reconnect on VM Service disconnection
22+
- Graceful handling of app crashes with diagnostic info
23+
- Retry logic for flaky operations (tap during animation, etc.)
24+
25+
### Semantic Element Discovery
26+
- Find elements by semantic meaning: `find({ role: "submit_button" })` instead of exact key/text
27+
- Fuzzy text matching: `tap({ text: "Submit" })` matches "SUBMIT", "Submit Order", etc.
28+
- AI-friendly element descriptions in inspect output
29+
30+
---
31+
32+
## Phase 2: Advanced Testing Features (v0.7.2)
33+
34+
### Visual Regression Testing
35+
- `screenshot_compare({ baseline: "login_screen" })` - pixel-diff with threshold
36+
- Auto-generate baselines on first run
37+
- Highlight visual differences in returned image
38+
- Golden file management (save/update/compare)
39+
40+
### Test Recording & Playback
41+
- `start_recording()` / `stop_recording()` - record all interactions
42+
- Export as reusable test script (Dart test, JSON, or natural language)
43+
- Parameterized playback with variable substitution
44+
45+
### Performance Monitoring Integration
46+
- Frame rate tracking during interactions
47+
- Memory usage snapshots before/after operations
48+
- Jank detection and reporting
49+
- Network request timing correlation
50+
51+
### Accessibility Validation
52+
- `check_accessibility()` - verify semantic labels, contrast ratios, touch targets
53+
- WCAG compliance checking
54+
- Screen reader simulation output
55+
56+
---
57+
58+
## Phase 3: Native Platform Interaction (v0.7.3)
59+
60+
### Native View Support (iOS Simulator)
61+
- `native_screenshot` - `xcrun simctl io screenshot` for native dialogs (photo picker, permission dialogs)
62+
- `native_tap` - macOS Accessibility API for tapping native UI elements
63+
- `native_input_text` - `simctl pbcopy` + paste for text input in native views
64+
- `native_swipe` - Accessibility API scroll actions for native scroll views
65+
66+
### Native View Support (Android Emulator)
67+
- `native_screenshot` - `adb shell screencap` for native views
68+
- `native_tap` - `adb shell input tap x y`
69+
- `native_input_text` - `adb shell input text`
70+
- `native_swipe` - `adb shell input swipe`
71+
72+
### Hybrid Detection
73+
- Auto-detect when native view is presented (VM Service becomes unresponsive)
74+
- Seamless fallback: try VM Service first, fall back to native driver
75+
- Unified API - same `tap()` / `screenshot()` works for both Flutter and native
76+
77+
---
78+
79+
## Phase 4: Multi-Framework Support (v0.7.4)
80+
81+
### Architecture: Universal App Driver
82+
83+
```
84+
AbstractAppDriver (interface)
85+
├── FlutterDriver (existing - VM Service Protocol)
86+
├── ReactNativeDriver (new - Chrome DevTools Protocol / Hermes)
87+
├── NativeIOSDriver (new - XCTest / Accessibility API)
88+
├── NativeAndroidDriver (new - UIAutomator / adb)
89+
├── WebDriver (new - Chrome DevTools Protocol)
90+
└── ElectronDriver (new - Chrome DevTools Protocol + Node.js)
91+
```
92+
93+
### React Native Support
94+
- **Protocol**: Chrome DevTools Protocol (CDP) via Hermes debugger
95+
- **Connection**: `ws://localhost:8081/debugger-proxy` (Metro bundler)
96+
- **UI Inspection**: React DevTools protocol for component tree
97+
- **Actions**: CDP `Input.dispatchTouchEvent` / `Input.dispatchKeyEvent`
98+
- **Screenshots**: CDP `Page.captureScreenshot`
99+
100+
### Native iOS Support
101+
- **Protocol**: XCTest framework + Accessibility API
102+
- **Connection**: `xcrun simctl` for simulator, `idevice` tools for physical devices
103+
- **UI Inspection**: Accessibility tree traversal
104+
- **Actions**: XCTest gestures or Accessibility API `AXPress`
105+
- **Screenshots**: `xcrun simctl io screenshot`
106+
107+
### Native Android Support
108+
- **Protocol**: UIAutomator2 + adb
109+
- **Connection**: `adb` for emulator and physical devices
110+
- **UI Inspection**: `uiautomator dump` for view hierarchy
111+
- **Actions**: `adb shell input` for tap/swipe/text
112+
- **Screenshots**: `adb shell screencap`
113+
114+
### Web App Support
115+
- **Protocol**: Chrome DevTools Protocol (CDP)
116+
- **Connection**: `ws://localhost:9222` (Chrome remote debugging)
117+
- **UI Inspection**: DOM traversal via CDP
118+
- **Actions**: CDP Input domain
119+
- **Screenshots**: CDP `Page.captureScreenshot`
120+
121+
### Unified MCP Interface
122+
123+
All frameworks share the same MCP tool names:
124+
125+
| Tool | Flutter | React Native | Native iOS | Native Android | Web |
126+
|------|---------|-------------|------------|---------------|-----|
127+
| `connect_app` | VM Service | Metro/CDP | XCTest | adb | CDP |
128+
| `screenshot` | VM Service | CDP | simctl/idevice | screencap | CDP |
129+
| `tap` | Extension | CDP touch | Accessibility | input tap | CDP |
130+
| `inspect` | Extension | React DevTools | Accessibility tree | uiautomator | DOM |
131+
| `enter_text` | Extension | CDP key | Accessibility | input text | CDP |
132+
133+
### Auto-Detection
134+
135+
```
136+
scan_and_connect()
137+
→ Detect running apps across all frameworks
138+
→ Return: [
139+
{ framework: "flutter", uri: "ws://...:50000/ws", name: "MyFlutterApp" },
140+
{ framework: "react-native", uri: "ws://...:8081/debugger-proxy", name: "MyRNApp" },
141+
{ framework: "web", uri: "ws://...:9222", name: "localhost:3000" }
142+
]
143+
→ Connect to selected app with appropriate driver
144+
```
145+
146+
---
147+
148+
## Version Summary
149+
150+
| Version | Focus | Key Deliverables |
151+
|---------|-------|-----------------|
152+
| **v0.7.1** | Core Flutter Optimization | Smart screenshots, intelligent waits, error recovery, semantic discovery |
153+
| **v0.7.2** | Advanced Testing | Visual regression, test recording, performance monitoring, accessibility |
154+
| **v0.7.3** | Native Platform Interaction | iOS/Android native view support, hybrid detection, unified API |
155+
| **v0.7.4** | Multi-Framework | React Native, native iOS/Android, Web, Electron support |
156+
157+
---
158+
159+
## Priority Matrix
160+
161+
| Feature | Impact | Effort | Priority |
162+
|---------|--------|--------|----------|
163+
| Smart screenshots | High (token cost) | Low | P0 |
164+
| Intelligent waits | High (reliability) | Medium | P0 |
165+
| Error recovery | High (stability) | Medium | P0 |
166+
| Semantic discovery | High (usability) | Medium | P1 |
167+
| Native view support | High (coverage) | High | P1 |
168+
| Visual regression | Medium (testing) | Medium | P1 |
169+
| React Native support | High (market) | High | P2 |
170+
| Web support | Medium (market) | Medium | P2 |
171+
| Test recording | Medium (DX) | Medium | P2 |
172+
| Accessibility | Medium (quality) | Low | P2 |
173+
| Performance monitoring | Low (niche) | Medium | P3 |
174+
| Electron support | Low (niche) | Low | P3 |

0 commit comments

Comments
 (0)