flutter-skill 0.7.8 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -9
- package/dart/pubspec.yaml +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -130,16 +130,20 @@ flutter-skill works across **8 platforms** with a unified bridge protocol:
|
|
|
130
130
|
|
|
131
131
|
| Platform | SDK | Tests | Status |
|
|
132
132
|
|----------|-----|-------|--------|
|
|
133
|
-
| **
|
|
134
|
-
| **
|
|
135
|
-
| **
|
|
136
|
-
| **
|
|
137
|
-
| **
|
|
138
|
-
| **Tauri** (Rust) | [`sdks/tauri`](sdks/tauri/) | 23/24 ✅ | Stable |
|
|
139
|
-
| **.NET MAUI** | [`sdks/dotnet-maui`](sdks/dotnet-maui/) | 23/24 ✅ | Stable |
|
|
140
|
-
| **React Native** | [`sdks/react-native`](sdks/react-native/) | 24/24 ✅ | Stable |
|
|
133
|
+
| **Electron** | [`sdks/electron`](sdks/electron/) | 75/75 ✅ | Stable |
|
|
134
|
+
| **KMP Desktop** | [`sdks/kmp`](sdks/kmp/) | 75/75 ✅ | Stable |
|
|
135
|
+
| **Tauri** (Rust) | [`sdks/tauri`](sdks/tauri/) | 75/75 ✅ | Stable |
|
|
136
|
+
| **.NET MAUI** | [`sdks/dotnet-maui`](sdks/dotnet-maui/) | 75/75 ✅ | Stable |
|
|
137
|
+
| **React Native** | [`sdks/react-native`](sdks/react-native/) | 75/75 ✅ | Stable |
|
|
141
138
|
|
|
142
|
-
|
|
139
|
+
| **Android** (Kotlin) | [`sdks/android`](sdks/android/) | 74/75 ✅ | Stable |
|
|
140
|
+
| **Flutter iOS** | `flutter_skill` (pub.dev) | 60/65 ✅ | Stable |
|
|
141
|
+
| **Flutter Web** | `flutter_skill` (pub.dev) | 63/65 ✅ | Stable |
|
|
142
|
+
|
|
143
|
+
> **582/590 tests passing** across all platforms (98.6% pass rate)
|
|
144
|
+
|
|
145
|
+
Each platform is tested against a complex social media app (tabs, feeds, forms, modals, 50+ elements) with 75 E2E tests covering:
|
|
146
|
+
inspect, tap, enter_text, get_text, find_element, wait_for_element, scroll, swipe, screenshot, go_back, press_key, inspect_interactive, eval, and error handling.
|
|
143
147
|
|
|
144
148
|
Each SDK README has platform-specific setup instructions. The same CLI and MCP tools work for all platforms.
|
|
145
149
|
|
|
@@ -279,6 +283,50 @@ No external tools needed — uses built-in OS capabilities.
|
|
|
279
283
|
|
|
280
284
|
---
|
|
281
285
|
|
|
286
|
+
## Test Results
|
|
287
|
+
|
|
288
|
+
Every platform is tested against a **complex social media app** (4-tab navigation, 50+ scrollable items, forms, modals, search) with a comprehensive 75-test E2E suite.
|
|
289
|
+
|
|
290
|
+
<details>
|
|
291
|
+
<summary><strong>75 tests per platform — full breakdown</strong></summary>
|
|
292
|
+
|
|
293
|
+
| Category | Tests | What's tested |
|
|
294
|
+
|----------|-------|---------------|
|
|
295
|
+
| Initialize | 1 | Protocol handshake |
|
|
296
|
+
| Inspect | 5 | Element tree, bounds, types, state changes |
|
|
297
|
+
| Inspect Interactive | 5 | Semantic refs, actions, bounds, cross-page |
|
|
298
|
+
| Tap | 6 | By key, text, coordinates, ref, invalid key/ref |
|
|
299
|
+
| Enter Text | 6 | Basic, empty, emoji/unicode 🌍世界, overwrite, long (500+ chars), error handling |
|
|
300
|
+
| Get Text | 4 | Counter, input readback, missing key, button label |
|
|
301
|
+
| Find Element | 5 | By key, missing, by text, partial text, bounds |
|
|
302
|
+
| Wait For Element | 4 | By key, by text, timeout, fast resolution |
|
|
303
|
+
| Press Key | 10 | Enter, Tab, Escape, Backspace, arrows, Ctrl+A, Delete, Home/End, invalid key |
|
|
304
|
+
| Scroll | 6 | Up, down, left, right, large distance, zero |
|
|
305
|
+
| Swipe | 4 | Up, down, left, right |
|
|
306
|
+
| Screenshot | 2 | Base64 encoding, image format (PNG/JPEG) |
|
|
307
|
+
| Navigation | 8 | Detail page, inspect after nav, interactive elements, go_back, round-trip |
|
|
308
|
+
| Logs | 3 | Get, clear, verify empty |
|
|
309
|
+
| Eval | 2 | Expression evaluation, return values |
|
|
310
|
+
| Error Handling | 3 | Unknown method, missing params, malformed request |
|
|
311
|
+
| **Total** | **75** | |
|
|
312
|
+
|
|
313
|
+
**Test apps per platform:**
|
|
314
|
+
|
|
315
|
+
| Platform | Test App | Elements |
|
|
316
|
+
|----------|----------|----------|
|
|
317
|
+
| Electron | Social media app (HTML/JS) | 60+ items, dark theme |
|
|
318
|
+
| Android | Native Kotlin app with Fragments | 50+ items, Material Design |
|
|
319
|
+
| KMP | Compose Desktop app | 50+ items, tab navigation |
|
|
320
|
+
| Tauri | Web frontend (Rust backend) | 55+ feed cards |
|
|
321
|
+
| .NET MAUI | Simulated bridge with 6 screens | 114 elements |
|
|
322
|
+
| React Native | Real RN app on iOS simulator | Self-registering components |
|
|
323
|
+
| Flutter iOS | TikTok clone (10 feature modules) | Full social media app |
|
|
324
|
+
| Flutter Web | TikTok clone via bridge proxy | Full social media app |
|
|
325
|
+
|
|
326
|
+
</details>
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
282
330
|
## Troubleshooting
|
|
283
331
|
|
|
284
332
|
| Problem | Fix |
|
package/dart/pubspec.yaml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: flutter_skill_npm
|
|
2
2
|
description: Give your AI Agent eyes and hands inside your Flutter app.
|
|
3
3
|
version: 0.2.0
|
|
4
|
+
publish_to: 'none'
|
|
4
5
|
homepage: https://github.com/ai-dashboad/flutter-skill
|
|
5
6
|
repository: https://github.com/ai-dashboad/flutter-skill
|
|
6
|
-
# publish_to: 'none' # Remove this when ready to publish to pub.dev
|
|
7
7
|
|
|
8
8
|
executables:
|
|
9
9
|
flutter_skill: flutter_skill
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flutter-skill",
|
|
3
|
-
"mcpName": "io.github.
|
|
4
|
-
"version": "0.
|
|
3
|
+
"mcpName": "io.github.ai-dashboad/flutter-skill",
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"description": "MCP Server for app automation - Give your AI Agent eyes and hands inside any app (Flutter, React, Web, Native)",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|