Skip to content

Commit 1e5be74

Browse files
Development environment setup (#165)
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Description Updated `AGENTS.md` to document the Flutter SDK installation path and add comprehensive instructions for real-device testing using BrowserStack. This ensures future agents and developers can easily set up the environment and verify the application. ## Related Issue(s) N/A ## Type of Change - [ ] 🛠️ Bug fix (non-breaking change which fixes an issue) - [ ] 🚀 New feature (non-breaking change which adds functionality) - [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected) - [x] 📝 Documentation - [ ] 📈 Performance improvement - [ ] 🏗️ Code refactoring - [x] 🧹 Chore / Housekeeping ## Checklist - [x] I have made corresponding changes to the documentation - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have updated the CHANGELOG.md under the "Unreleased" section ## Screenshots (if applicable) <video src="/opt/cursor/artifacts/browserstack_real_device_demo.mp4" controls></video> Faro Flutter example app running on a real Google Pixel 8 (Android 14) via BrowserStack -- navigating through home, features, and tracing pages. <img src="/opt/cursor/artifacts/01_home_screen.png" alt="Home screen showing Faro Test App title and Change Route button" /> <img src="/opt/cursor/artifacts/02_features_page.png" alt="Features page with User Settings, Sampling Settings, Tracing, User Actions cards" /> <img src="/opt/cursor/artifacts/03_features_scrolled.png" alt="Features page scrolled showing all SDK feature buttons" /> <img src="/opt/cursor/artifacts/05_tracing_with_spans.png" alt="Tracing page with Simple Span and Nested Spans log output" /> ## Additional Notes This update includes the Flutter SDK installation path and a detailed guide on using BrowserStack for real-device verification, which was performed to confirm the example app's functionality. --- <p><a href="https://cursor.com/agents/bc-ffe49da4-03da-48dc-a4f0-38e9b182e34e"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-ffe49da4-03da-48dc-a4f0-38e9b182e34e"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</p> <!-- CURSOR_AGENT_PR_BODY_END -->
1 parent 4eaf08e commit 1e5be74

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

AGENTS.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,10 @@ This is a client-side Flutter SDK with no server component. All unit tests run w
235235

236236
Standard build/test commands are documented in the **Build/Test Commands** section above. Running `flutter pub get` at the workspace root also resolves `example/` dependencies (they share a workspace).
237237

238+
### Flutter SDK
239+
240+
Flutter is installed at `/opt/flutter`. The `PATH` is set in `~/.bashrc` to include `/opt/flutter/bin` and the bundled Dart SDK.
241+
238242
### Android SDK
239243

240244
The Android SDK is installed at `/opt/android-sdk`. The `ANDROID_HOME` env var and PATH additions are set in `~/.bashrc`. Flutter is already configured to use this SDK via `flutter config --android-sdk`.
@@ -267,6 +271,10 @@ dart tool/pre_release_check.dart
267271

268272
See `CONTRIBUTING.md` for the full contributor workflow.
269273

274+
### Real-device testing via BrowserStack
275+
276+
If `BROWSERSTACK_USERNAME` and `BROWSERSTACK_ACCESS_KEY` are set, the example APK can be tested on a real Android device using BrowserStack App Automate. Upload via the BrowserStack REST API with `custom_id=faro-flutter-example`, then use Appium REST calls to interact with the app. Flutter exposes UI elements through the Accessibility Bridge, so `accessibility id` element lookups work for buttons with text labels (e.g., `"Change Route"`, `"Simple Span"`). For card-style `ListTile` widgets, the accessibility label is the concatenated title and subtitle separated by `\n`.
277+
270278
### Gotchas
271279

272280
- `flutter pub get` in the root resolves both SDK and `example/` dependencies due to workspace configuration — no need to run it separately in `example/`.

0 commit comments

Comments
 (0)