๐ฑ Mobile Developer Agent Specification¶
๐ง Purpose¶
The Mobile Developer Agent is a modular, platform-aware engineering agent within the ConnectSoft AI Software Factory. Its mission is to autonomously generate production-ready mobile apps and modules across the following target stacks:
- .NET MAUI โ for C#/.NET-native mobile apps
- Flutter โ for Dart-based mobile/web/desktop hybrid apps
- React Native โ for JavaScript/TypeScript cross-platform apps
It acts as a multi-platform mobile compiler, orchestrated by UX, backend, and edition agents, producing apps that are:
- ๐งฑ Cleanly layered
- โ๏ธ Service-integrated
- ๐จ Branded per tenant/edition
- ๐ Observable by default
๐งญ Position in the Agent System¶
The Mobile Developer Agent sits in the Engineering Cluster, collaborating with:
- ๐งฉ Backend Developer Agent โ to generate service bindings
- ๐จ UX Designer Agent โ for layout, routing, component specs
- ๐ฅ๏ธ Frontend Developer Agent โ for design consistency and web-to-mobile continuity
- ๐งช QA Agent โ for test plan and UI test stubs
- ๐ฒ DevOps + CI Agent โ for signing, packaging, and store-ready builds
It is orchestrated by the Mobile App Orchestrator or the Engineering Execution Flow.
๐งฉ Position Diagram (Simplified)¶
flowchart LR
UX[๐จ UX Designer Agent]
BE[๐ง Backend Developer Agent]
FE[๐ฅ๏ธ Frontend Developer Agent]
QA[๐งช QA Agent]
CI[๐ CI/CD Agent]
UX --> MDA
BE --> MDA
FE --> MDA
MDA --> QA
MDA --> CI
subgraph MDA[๐ฑ Mobile Developer Agent]
direction TB
FlutterStack[Flutter Target]
ReactNativeStack[React Native Target]
MAUIStack[.NET MAUI Target]
end
๐ฏ Goals¶
| Goal | Description |
|---|---|
| Multi-platform UI generation | Generate consistent, brand-aware mobile UIs across MAUI, Flutter, and React Native. |
| Service binding | Autogenerate mobile HTTP bindings from OpenAPI, GraphQL, or REST contract definitions. |
| State management scaffolding | Inject MVVM (MAUI), Riverpod/BLoC (Flutter), or Redux/Context (React Native). |
| Routing and flow control | Define and scaffold full screen-to-screen navigation trees. |
| Modular delivery | Support partial feature generation (e.g., just "booking module" or "onboarding flow"). |
| Test hooks + metrics | Include OTEL, crash reporting, UI trace annotations, and UI test stubs. |
| Edition-aware branding | Handle tenant themes, icons, login screens, and overlays. |
๐ง Key Use Cases¶
- Generate a fully themed white-label app for a B2B tenant on iOS/Android in .NET MAUI
- Scaffold a Flutter-based MVP from UX wireframes + backend APIs
- Create a React Native mobile front for an existing web SaaS
- Add a "Notifications" screen and logic to an already existing modular mobile app
- Retest, refactor, or regenerate only the routing + viewmodel layer after backend change
๐๏ธ Clean Architecture Compliance¶
The agent always respects ConnectSoftโs core principles:
- Modular DDD features (per screen or use case)
- MVVM or equivalent pattern enforcement
- Separation of UI, logic, and services
- Observable UI and API tracing
- Multi-tenant + Edition support
โ Summary¶
- The Mobile Developer Agent is a multi-platform mobile app generator and feature compiler
- It works with .NET MAUI, Flutter, and React Native
- It sits in the Engineering Cluster, consuming designs and contracts, and emitting traceable app modules
- It is modular, clean, edition-aware, observable, and fully automatable
๐ Core Responsibilities¶
The Mobile Developer Agent is responsible for end-to-end generation, adaptation, and integration of mobile application features, tailored for target platforms: .NET MAUI, Flutter, and React Native.
It is designed to build apps that are:
- ๐งฑ Modular
- ๐ง AI-generated but human-auditable
- ๐ฆ Multi-tenant and brand-aware
- ๐ฒ Native-feeling across iOS and Android
๐งญ Responsibility Overview¶
| Area | Responsibility |
|---|---|
| ๐งฑ UI Layer Generation | Generates pages/screens, navigation graphs, themed components, layout code. |
| โ๏ธ Service Integration | Binds OpenAPI/GraphQL endpoints into mobile services using platform-specific SDKs or HTTP clients. |
| ๐ State Management | Injects MVVM (MAUI), Riverpod/BLoC (Flutter), Redux or Context (React Native). |
| ๐งญ Routing + Navigation | Generates routes.ts, app_routes.dart, AppShell.xaml.cs, etc., based on UX flow. |
| ๐จ Theming + Branding | Compiles tenant-specific assets (logos, colors, fonts) into branded app shell. |
| ๐งช UI Test Hook Generation | Emits screen test IDs, testing harnesses, BDD-friendly test entries per screen. |
| ๐ Authentication UX Wiring | Implements mobile login, multi-tenant switching, auth callbacks, biometric wiring. |
| ๐ Offline + Caching Support | Adds platform-safe caching, retry queues, or local persistence logic. |
| ๐ง Telemetry + Tracing | Embeds OpenTelemetry spans, crash reporting hooks, trace-aware user actions. |
| ๐งฑ Build System Support | Structures project for GitHub Actions, Azure Pipelines, and signing pipelines. |
๐ Modular Feature Responsibilities¶
The Mobile Developer Agent can be instructed to create:
- A complete mobile app repository
- A single feature module (
Onboarding,Notifications,Appointments) - A screen bundle (e.g.,
LoginScreen + AuthFlow + ForgotPassword) - A shared component library (e.g., form fields, modal overlays)
- A native bridge or plugin wrapper (e.g., Flutter plugin for QR scanning)
๐จ Branding & Edition Logic¶
| Layer | Branding Applied |
|---|---|
| Logo/Icon | From edition-assets/branding.json |
| Theme colors, fonts | From edition-styles.json |
| Feature visibility | From edition-config.yaml |
| Store name/package ID | From edition-app-metadata.yaml |
๐ฑ Platform-Specific Responsibilities¶
| Platform | Specialized Tasks |
|---|---|
| .NET MAUI | Create AppShell, .xaml pages, ViewModel.cs files, dependency injection wiring |
| Flutter | Scaffold Dart classes, lib/screens/, navigation using GoRouter or AutoRoute, inject Riverpod |
| React Native | Structure JSX/TSX pages, Redux store, navigation stack via @react-navigation/native, async thunk wiring |
๐ Continuous Responsibility in Iterative Scenarios¶
When the agent is invoked incrementally (e.g., to add a screen or update an API contract), it:
- Preserves generated layout and state scaffolding
- Applies only delta updates (e.g., add screen, refactor service, adjust navigation)
- Updates test metadata and route graphs accordingly
๐งโ๐ป Human-Aware Responsibility Handoff¶
The agent includes:
README.mddescribing generated output structurehuman-review.mdsummarizing decisions requiring dev feedback (e.g., ambiguous field type, custom animation)
โ Summary¶
The Mobile Developer Agent is responsible for:
- Full mobile app generation
- Feature/module screen injection
- API and auth wiring
- Theming and edition logic
- Routing, testing, observability
- Supporting .NET MAUI, Flutter, and React Native targets
It supports clean, testable, modular, and multi-tenant mobile codebases โ 100% agent-generated, CI/CD ready.
๐ฅ Accepted Inputs¶
The Mobile Developer Agent consumes a rich set of structured, semantically scoped inputs from multiple upstream agents. These inputs provide everything the agent needs to generate native/hybrid mobile modules for .NET MAUI, Flutter, and React Native platforms โ including layouts, bindings, tenant theming, routing graphs, and backend contracts.
๐ Core Input Categories¶
| Input Type | Source Agent | Description |
|---|---|---|
| UI Flow Specs | UX Designer Agent | YAML/JSON screen definitions, navigation graph, component hierarchy, control bindings |
| OpenAPI/GraphQL Contracts | Backend Developer Agent | Service specifications to bind data models, DTOs, and API methods |
| Edition Branding Assets | Product Manager Agent or Edition Coordinator | Icons, theme palettes, fonts, localized strings, splash screens |
| Domain Models | Backend Developer Agent | Entity and DTO definitions, enum sets, business rules |
| Routing Definitions | UX Designer Agent or Frontend Developer Agent | Describes transitions, stacked flows, and nested navigation structures |
| Authentication Flow | Auth/Identity Agent | OAuth/OpenID Connect callback structure, login screen behavior, biometric support toggle |
| Consent + Feature Flags | LegalOps Agent + Feature Toggle Agent | Which screens require consent, tenant- or region-specific feature activation |
| Screen Test Metadata | QA Agent | Screen test IDs, expected behaviors, BDD tag associations |
| Tenant Profile | Orchestration or Edition Agent | Regional settings, app ID overrides, white-label flags, onboarding variants |
๐ Example: ui-flow.yaml¶
app:
name: BookingApp
root: SplashScreen
screens:
- id: SplashScreen
type: screen
transition: fade
next: LoginScreen
- id: LoginScreen
inputs: [email, password]
buttons:
- text: Login
action: submit
next: Dashboard
- id: Dashboard
tabs:
- Book
- History
- Profile
๐ Example: api-spec.openapi.json¶
paths:
/appointments:
get:
summary: Get all appointments
responses:
200:
content:
application/json:
schema:
$ref: "#/components/schemas/AppointmentList"
/login:
post:
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LoginRequest"
๐ Example: edition-config.yaml¶
tenant: vetclinic-premium
theme:
primaryColor: "#123456"
font: "Nunito"
assets:
icon: "vetclinic/icon.png"
splash: "vetclinic/splash.png"
features:
enableQRScan: false
enableAppointments: true
๐ Input Format Flexibility¶
| Format | Description |
|---|---|
| YAML | Preferred for UI/UX trees, config-like edition logic |
| JSON | Used for OpenAPI, GraphQL, DTOs, test metadata |
| Asset Bundles | Directory paths or URLs to logos, icons, splash screens, localized text sets |
| Prompt Envelopes | Semantic Kernel-style structured prompts describing mobile module tasks in high-level language |
๐ Input Context Tags¶
All inputs are tagged with:
traceId,sessionIdplatformTargets(maui,flutter,react-native)scanScope: full-app, screen-only, auth-only, branding-onlybuildType: debug, release, white-label-previewlocale: for region-aware generation (e.g., ๐ช๐บ ๐บ๐ธ ๐ธ๐ฆ)
โ Summary¶
The Mobile Developer Agent accepts:
- ๐ UX flows
- ๐ API contracts
- ๐จ Theming
- ๐ Auth flows
- ๐ฑ Routing and screen specs
- ๐งช Testing metadata
- ๐ Tenant, locale, edition overlays
All inputs are semantically tagged, orchestrated, and structured for reproducible mobile feature delivery โ across .NET MAUI, Flutter, and React Native targets.
๐ค Outputs¶
The Mobile Developer Agent produces a platform-specific, modular mobile application bundle, designed for extensibility, GitOps workflows, and integration into CI/CD pipelines. These outputs vary by target (.NET MAUI, Flutter, React Native) but share a consistent modular structure and metadata tagging for traceability.
๐ฆ Output Categories¶
| Category | Description |
|---|---|
| Codebase | Full mobile application source code (per platform) including pages, components, services, and models. |
| Routing & Navigation | Auto-generated navigation graphs, route constants, shell setup (AppShell, routes.ts, app_router.dart). |
| API Bindings | Service classes or SDK wrappers for backend integration, based on OpenAPI/GraphQL contracts. |
| State Management | ViewModels, BLoC/Provider modules, Redux stores (per platform standard). |
| Tenant Assets | Themed icons, splash screens, fonts, locale files, and login screen variations. |
| Testing Hooks | UI test IDs, BDD scenarios, snapshot templates, and platform-compatible test runner wiring. |
| Telemetry Wrappers | OTEL spans, error tracking interceptors, and API request observability wrappers. |
| Documentation | README, mobile-overview.md, generated structure docs (tree.json, flow.yaml). |
| CI/CD Metadata | Output tags, platform build targets, version info, and signing readiness notes. |
๐ Output Directory Structure (Per Platform)¶
๐ท .NET MAUI (C# / XAML)¶
/maui-app/
AppShell.xaml
App.xaml.cs
Pages/
LoginPage.xaml
DashboardPage.xaml
ViewModels/
LoginViewModel.cs
DashboardViewModel.cs
Services/
AppointmentService.cs
Themes/
Styles.xaml
Assets/
splashscreen.png
icon.png
Tests/
UITests/
README.md
mobile-overview.md
๐ท Flutter (Dart)¶
/flutter-app/
lib/
main.dart
screens/
login.dart
dashboard.dart
services/
appointment_service.dart
state/
auth_state.dart
theme/
app_theme.dart
assets/
images/
fonts/
test/
widgets/
README.md
flow.yaml
๐ท React Native (TypeScript/JS)¶
/react-native-app/
src/
screens/
LoginScreen.tsx
DashboardScreen.tsx
navigation/
routes.ts
services/
appointmentService.ts
store/
authSlice.ts
theme/
colors.ts
assets/
icons/
splash/
e2e/
tests/
README.md
structure.md
๐ Example: mobile-overview.md (Auto-Generated)¶
# BookingApp โ Mobile Module
**Generated For:** vetclinic-premium
**Platform:** React Native
**Modules Included:** Login, Dashboard, Appointments
**Theme:** Brand Blue
**Navigation:** React Navigation Stack
**Auth:** OAuth with biometric fallback
**APIs:** login, appointments, notifications
๐ Multi-Target Emission Support¶
If multiple platforms are requested (flutter, maui, react-native), agent emits multiple sibling directories, each scoped and tagged with:
platform: flutter | maui | react-nativetenantIdeditionIdgeneratedAt
๐งช Output Artifacts Used By¶
| Artifact | Used By |
|---|---|
/tests/, UITests/ |
QA Agent, CI |
/AppShell, routes.ts |
Frontend Architect Agent, Studio UI |
/ViewModels, /state/ |
Engineer reviewing async logic |
flow.yaml |
Studio visualizer, app previewer |
README.md, mobile-overview.md |
DevOps Agent, HumanOps Agent |
โ Summary¶
The Mobile Developer Agent emits:
- ๐ฑ Full mobile application codebases per platform
- ๐ Routing, API bindings, and state scaffolding
- ๐จ Edition-aware themes and screens
- ๐งช Test-ready apps with observability hooks
- ๐งพ Fully documented, GitOps-compatible mobile outputs
Each emission is cleanly structured, traceable, and ready for human review or automated release.
๐ฏ Platform Targeting Strategy¶
The Mobile Developer Agent is capable of multi-platform emission, dynamically selecting and adapting generation logic based on project scope, platform targets, tenant requirements, and orchestration flags.
This cycle defines when and how the agent decides to generate for:
- โ .NET MAUI
- โ Flutter
- โ React Native
๐งญ Target Selection Modes¶
| Mode | Description |
|---|---|
| Explicit Target | Orchestrator or input prompt specifies platform(s): platformTargets: [flutter]. |
| Edition Preference | If edition-config.yaml includes platform preference, that overrides. |
| Tenant Compatibility | Some tenants may require native-only (e.g., MAUI), or Flutter for hybrid rollout. |
| Fallback Strategy | If primary generation fails or unsupported, agent may fall back to alternate platform (e.g., MAUI โ Flutter). |
๐ Input Prompt Example¶
platformTargets:
- flutter
- react-native
scanScope: full
tenantId: vetclinic-premium
buildType: release
โ Agent generates both platforms side-by-side with consistent structure and shared logic when possible.
๐ง Platform Selection Decision Tree¶
flowchart TD
A[Input: platformTargets]
B{Defined?}
C[Use specified targets]
D[Check edition defaults]
E{Edition or Tenant says Flutter?}
F[Use Flutter generator]
G[Fallback to default]
A --> B
B -- Yes --> C
B -- No --> D
D --> E
E -- Yes --> F
E -- No --> G
โ๏ธ Generator Strategy by Platform¶
| Platform | Strategy |
|---|---|
| .NET MAUI | Full MVVM scaffolding, XAML + C#, AppShell routing, DI setup. |
| Flutter | Dart-based structure with modular lib/screens, riverpod or BLoC state injection, GoRouter navigation. |
| React Native | TypeScript-first layout with @react-navigation/native, Redux or Context API wiring, async API slices. |
๐ Cross-Platform Common Code Handling¶
If multiple targets are selected:
- Shared logic (DTOs, API paths, field rules) is extracted from OpenAPI
- Navigation flow (
flow.yaml) drives generation on all stacks - Localized strings and theming assets are normalized and adapted to each platform
- State management follows idiomatic pattern per platform, but aligned conceptually (e.g., MAUI ViewModel = Flutter StateNotifier = RN Redux slice)
๐ฑ Default Platform by Use Case (if not specified)¶
| Use Case | Default |
|---|---|
| Enterprise + existing .NET backend | โ .NET MAUI |
| Startups, consumer UX first | โ Flutter |
| Web-first teams with TS/JS stack | โ React Native |
| Multi-tenant with edition branding | Flutter or React Native (faster overlay adaptation) |
| Single-platform (iOS only) | Any, but may steer toward React Native for rapid iteration |
๐ Per-Tenant Platform Example¶
tenants:
vetclinic-premium:
platform: maui
petcare-lite:
platform: flutter
wellness360:
platform: react-native
โ Handled at generation time by tenant context injector.
โ Summary¶
The Mobile Developer Agent:
- ๐ง Selects the right platform(s) based on prompt, edition, and tenant rules
- ๐ ๏ธ Uses idiomatic generation logic per stack
- ๐ Supports fallback and multi-target scenarios
- ๐ฆ Outputs aligned modules across .NET MAUI, Flutter, and React Native when requested
๐ Execution Flow¶
This cycle details the full internal execution flow of the Mobile Developer Agent, from agent activation through multi-platform output delivery.
The agent operates as a skill-based pipeline, interpreting mobile design and backend specs into concrete screen modules, state scaffolds, and platform-specific codebases.
๐ High-Level Workflow¶
flowchart TD
START[๐ Trigger: StartAgentSession(MobileDeveloperAgent)]
PARSE[๐ฅ Parse Inputs & Platform Targets]
PLAN[๐ง Create Generation Plan]
SCREENGEN[๐งฑ Generate Screens + Layouts]
ROUTE[๐งญ Generate Routing & Navigation]
STATE[๐ Wire State Management Layer]
API[๐ Bind API Contracts (OpenAPI / GraphQL)]
THEMING[๐จ Apply Tenant Theming & Branding]
TEST[๐งช Inject Test IDs + UI Test Stubs]
OBS[๐ Add Telemetry + Tracing]
PACKAGE[๐ฆ Emit Codebase + Metadata]
END[โ
Done]
START --> PARSE --> PLAN --> SCREENGEN --> ROUTE --> STATE --> API --> THEMING --> TEST --> OBS --> PACKAGE --> END
๐ช Step-by-Step Breakdown¶
| Step | Description |
|---|---|
| 1. Parse Inputs | Load ui-flow.yaml, api-spec.json, edition-config.yaml, and platformTargets. |
| 2. Create Plan | Determine what modules, screens, and assets to generate per platform. |
| 3. Generate Screens | Build layout code: JSX/XAML/Dart, including form fields, buttons, labels, containers. |
| 4. Build Navigation | Generate route maps, router configs, AppShell, and nested navigation trees. |
| 5. Wire State Logic | Inject ViewModel/BLoC/Redux/Context files per platform. |
| 6. Bind APIs | Build service wrappers, auth injectors, and DTOs from backend contracts. |
| 7. Apply Theming | Inject fonts, splash screens, logos, primary color sets, and edition overlays. |
| 8. Add Tests | Insert test hooks (testID/testKey), generate UI spec runners, and default screen checks. |
| 9. Add Observability | Decorate screens and service calls with OpenTelemetry spans, error capture, session tracing. |
| 10. Emit Output | Write full platform project(s) into /flutter-app/, /maui-app/, or /react-native-app/, with metadata and README. |
๐ง Agent-Initiated Events During Flow¶
| Event | Trigger |
|---|---|
MobileScreenGenerated |
After each screen is scaffolded |
MobilePlatformReady |
When all files for one platform are complete |
MobileGenerationError |
On invalid layout, missing schema, or navigation conflict |
MobileComplianceWarning |
If app lacks erasure endpoint, tenant switch, or auth safety |
MobileTelemetryAttached |
When observability hooks added to layout/API layers |
๐งโ๐ป Developer-Aware Step¶
If humanReviewMode: true or agent encounters ambiguity:
-
Agent emits
human-review.mdfile with notes like: -
"Unclear where to route after
SignupSuccessScreen." - "API
/verify-emailis missing expected response schema." - Flags step with
ManualReviewRequiredfor Studio or DevOps agent.
๐งช Reproducibility Guarantees¶
Each run is:
- โ Deterministic (given same input)
- ๐ Output-traceable (each file tied to
traceId,platform,module) - ๐ Documented with
mobile-overview.md+ changelog per run
โ Summary¶
The Mobile Developer Agent executes a 10-stage flow:
- ๐ง Plans
- ๐งฑ Generates layouts
- ๐งญ Routes
- ๐ Binds APIs
- ๐จ Themes
- ๐งช Tests
- ๐ Observes
- ๐ฆ Emits builds
It ensures modular, clean, platform-native mobile application output thatโs traceable and CI/CD ready.
๐งฉ Skills and Kernel Functions¶
The Mobile Developer Agent is powered by a modular set of Semantic Kernel skills that orchestrate layout generation, service integration, theming, and routing per mobile platform.
Each skill is responsible for a focused task and can be reused across .NET MAUI, Flutter, and React Native generation pipelines with trace-scoped logic.
๐ง Core Kernel Skills¶
| Skill Name | Purpose |
|---|---|
GenerateScreenLayoutSkill |
Builds UI layout for a single screen: form fields, buttons, containers, etc. |
BuildNavigationGraphSkill |
Constructs full navigation stack or tab routing based on flow inputs. |
GenerateStateLayerSkill |
Creates ViewModel (MAUI), Riverpod/Bloc (Flutter), or Redux slice/Context (RN). |
BindApiServiceSkill |
Generates service wrappers for OpenAPI/GraphQL: DTOs, methods, error handling. |
InjectThemeAndAssetsSkill |
Applies edition-specific assets, splash screens, icons, fonts, and styles. |
GenerateTestHooksSkill |
Adds testId, screen IDs, and simple UI tests for each module or screen. |
DecorateWithTelemetrySkill |
Wraps user actions and API calls with OpenTelemetry spans + error tracking. |
EmitMobileProjectSkill |
Final output writer for each platform โ writes files, folders, and metadata. |
ValidateScreenStructureSkill |
Checks UI layout consistency, required fields, and accessibility constraints. |
ReviewPromptPlannerSkill |
Decides which areas need human intervention or UX decision review. |
๐ Sample Skill Chain โ Login Screen (React Native)¶
โ GenerateScreenLayoutSkill
โ GenerateStateLayerSkill
โ BindApiServiceSkill
โ BuildNavigationGraphSkill
โ GenerateTestHooksSkill
โ DecorateWithTelemetrySkill
โ EmitMobileProjectSkill
๐ Example Skill Invocation: GenerateScreenLayoutSkill¶
{
"screenId": "LoginScreen",
"platform": "react-native",
"layoutType": "form",
"fields": ["email", "password"],
"actions": ["login", "forgotPassword"],
"theme": "vetclinic-premium",
"traceId": "proj-811-v2"
}
โ Outputs LoginScreen.tsx and layout metadata.
๐ง Contextual Memory Use in Skills¶
GenerateScreenLayoutSkillmay reuse patterns (e.g., reusableTextFieldWithIcon) from past sessions.GenerateStateLayerSkilluses known response model bindings from similar endpoints.InjectThemeAndAssetsSkilladapts based on prior edition overlays (colors, typography, onboarding variants).
๐งช Validation and Retry Hooks in Skills¶
-
Each skill can return:
-
success: true warnings: [ ... ]retryRecommended: true- Skills support self-correction, e.g., fallback layout if invalid screen type detected.
๐ Example Skill Output (Test Hook Generator)¶
{
"screen": "Dashboard",
"testIds": {
"welcomeText": "dashboard_welcome_text",
"appointmentList": "dashboard_appointments"
},
"testRunner": "jest + detox"
}
๐ ๏ธ Platform-Specific Skill Behavior¶
| Skill | Adaptations |
|---|---|
GenerateScreenLayoutSkill |
Emits .xaml (MAUI), .dart (Flutter), .tsx (RN) |
GenerateStateLayerSkill |
Generates ViewModel.cs (MAUI), BLoC or Provider (Flutter), Redux slice or Context (RN) |
EmitMobileProjectSkill |
Uses file writers and folder conventions per platform |
โ Summary¶
- Skills form the foundation of mobile feature generation
-
They are:
-
๐ง Modular
- ๐ฆ Reusable
- โ๏ธ Platform-aware
- ๐งพ Trace-linked
- Skills compose cleanly into screen, app, and full-project pipelines across .NET MAUI, Flutter, and React Native
๐งฐ Technology Stack and SDK Matrix¶
This cycle outlines the full mobile technology stack supported by the Mobile Developer Agent, detailing frameworks, SDKs, language tools, state managers, and build systems per platform.
It ensures that generated apps are aligned with industry standards, clean architecture principles, and ConnectSoftโs multi-tenant, modular platform vision.
๐ฑ Platform Stack Comparison¶
| Platform | Language | Framework | State Manager | Routing | Build Tool |
|---|---|---|---|---|---|
| .NET MAUI | C# | MAUI/XAML | MVVM (CommunityToolkit.Mvvm) | Shell + Route URIs | MSBuild + CLI |
| Flutter | Dart | Flutter SDK | Riverpod / BLoC | GoRouter / AutoRoute | flutter build |
| React Native | TS/JS | React Native | Redux / Context API | @react-navigation |
Metro + Expo CLI |
๐ SDK & Library Support Matrix¶
| Category | MAUI | Flutter | React Native |
|---|---|---|---|
| UI Components | Microsoft.Maui.Controls, XAML |
Material, Cupertino, FlutterFlow |
react-native-paper, native-base |
| State Mgmt | MVVM Toolkit, ObservableProperty |
Riverpod, BLoC, Provider |
Redux Toolkit, useReducer, Context |
| HTTP Client | HttpClient, Refit, Polly |
http, dio, graphql_flutter |
axios, fetch, apollo-client |
| Auth/OAuth | MSAL, OpenIddict, WebAuthenticator |
flutter_appauth, firebase_auth |
expo-auth-session, react-native-app-auth |
| Navigation | Shell, Routing.RegisterRoute |
GoRouter, AutoRoute, Navigator |
@react-navigation/native-stack, Drawer |
| Theming | Styles.xaml, ResourceDictionary |
ThemeData, FlexColorScheme |
ThemeProvider, StyleSheet |
| Testing | xUnit, MAUI.UITest, MSTest |
flutter_test, golden_toolkit, integration_test |
jest, detox, react-native-testing-library |
| Observability | OpenTelemetry.Instrumentation.Http, Serilog |
sentry_flutter, otel_dart |
@opentelemetry/api, Sentry, Expo Analytics |
| CI/CD Support | Azure Pipelines, GitHub Actions | GitHub Actions, Codemagic, Bitrise | Expo EAS, Fastlane, GitHub Actions |
๐ฆ Artifact Format & Packaging¶
| Platform | Output Type(s) | Description |
|---|---|---|
| MAUI | .apk, .aab, .ipa, .msi |
Native binaries; can emit .nupkg for SDK-style sharing |
| Flutter | .apk, .aab, .ipa, .web, .linux |
Multi-platform app builds, including PWA |
| React Native | .apk, .aab, .ipa, .bundle |
Web-compatible or native store-ready bundles via Expo or CLI |
๐ Identity & Security Modules¶
| Area | Stack-Specific Tools |
|---|---|
| Biometrics | MAUI Essentials, LocalAuthentication (Flutter), expo-local-authentication |
| JWT Handling | System.IdentityModel, jwt_decoder (Flutter), jsonwebtoken (RN) |
| Secure Storage | SecureStorage (.NET), flutter_secure_storage, react-native-encrypted-storage |
| App Transport Security (ATS) | Enabled via platform default templates and security profiles |
๐ Internationalization (i18n)¶
| Platform | Toolchain |
|---|---|
| MAUI | resx resources, CultureInfo.CurrentCulture |
| Flutter | flutter_localizations, .arb files, intl |
| React Native | i18next, react-intl, react-native-localize |
๐งช Automated Testing Toolchain¶
| Test Type | MAUI | Flutter | React Native |
|---|---|---|---|
| Unit Tests | xUnit, MSTest |
flutter_test, test |
jest, mocha |
| Widget/Screen UI | MAUI.UITest |
golden_toolkit |
react-native-testing-library |
| Integration | SpecFlow + Appium |
integration_test |
detox, Appium |
| E2E Snapshots | Playwright |
FlutterDriver (legacy) |
Storybook, jest-image-snapshot |
โ Summary¶
The Mobile Developer Agent is equipped to generate mobile apps using:
- ๐ฆ Modern SDKs across MAUI, Flutter, and React Native
- โ๏ธ Native state management and routing tools
- ๐ Secure, compliant identity flows
- ๐งช Fully testable codebases, ready for CI/CD
- ๐ Observable outputs (OpenTelemetry, Sentry, etc.)
All stacks are modular, idiomatic, and GitOps-integrated โ empowering the agent to generate production-grade mobile systems across all delivery channels.
๐งพ Prompt Input Template¶
The Prompt Input Template defines how the Mobile Developer Agent receives structured instructions to generate full or partial mobile applications. This prompt may originate from the Orchestrator, Product Owner Agent, or as a refinement from another engineering agent.
The input supports generation for .NET MAUI, Flutter, and React Native, and includes configuration for edition branding, navigation, test stubs, and multi-tenant logic.
๐ฅ Input Format: YAML / JSON¶
traceId: proj-811-v2
sessionId: mobilegen-sess-428
platformTargets:
- flutter
- react-native
scanScope: full
generate:
appName: BookingApp
modules:
- Login
- Dashboard
- Appointments
theme: vetclinic-premium
authFlow:
type: oauth2
enableBiometrics: true
localization:
enabled: true
defaultLocale: en-US
tenantId: vetclinic-premium
editionId: vetclinic-blue
inputs:
uiFlow: ./ui/ui-flow.yaml
apiSpec: ./api/openapi.yaml
brandingAssets: ./branding/edition-config.yaml
testMetadata: ./qa/ui-tests.json
buildType: release
๐ Field Definitions¶
| Field | Description |
|---|---|
traceId, sessionId |
For observability and auditability |
platformTargets[] |
One or more of maui, flutter, react-native |
scanScope |
full, screenOnly, featureOnly, brandingOnly |
generate.appName |
Human-friendly app name |
generate.modules[] |
High-level feature list (screens or flows) |
theme |
Refers to tenant or edition-specific styling and assets |
authFlow |
Defines authentication mode, biometric enablement |
localization |
Language support toggle and default locale |
inputs.* |
External paths (relative, URL, or blob ref) to required configuration |
buildType |
debug, release, white-label-preview |
๐ UI Flow Reference (ui/ui-flow.yaml)¶
screens:
- id: LoginScreen
fields: [email, password]
actions: [login]
next: DashboardScreen
- id: DashboardScreen
tabs: [Appointments, Profile]
๐งช Test Metadata Example (ui-tests.json)¶
{
"LoginScreen": {
"testId": "login_screen_root",
"actions": ["fill_email", "fill_password", "tap_login"],
"expectedNext": "DashboardScreen"
}
}
๐ Prompt Modes¶
| Mode | Description |
|---|---|
| Screen-only | Only generate new screen (e.g., Generate LoginScreen for React Native) |
| Branding-only | Update theming, icons, splash screen across platforms |
| Partial-module | Regenerate or augment existing module (Appointments) |
| Multi-platform full-app | End-to-end app generation for multiple targets |
๐ Orchestration Options (Advanced)¶
orchestration:
retryOnFailure: true
manualReviewEnabled: false
observabilityLevel: full
postGenerateHook:
- validateStructure
- notifyStudio
โ Summary¶
The Mobile Developer Agent accepts rich prompt input to:
- ๐ฑ Generate platform-specific apps and modules
- ๐จ Apply tenant edition branding and feature flags
- ๐งญ Scaffold navigation and routing
- ๐ Integrate authentication flows and localization
- ๐งช Prepare test hooks and observability metadata
The prompt is modular, extensible, and traceable โ allowing precise control of mobile output generation.
๐ฆ Output Format and Layout¶
This cycle defines the output structure generated by the Mobile Developer Agent for each supported platform: .NET MAUI, Flutter, and React Native.
All outputs are:
- ๐ Modular โ structured by feature, screen, or service
- ๐งพ Traceable โ tagged with
traceId,platform,editionId, andtenantId - ๐งช Testable โ includes test artifacts, screen IDs, and sample specs
- ๐ค Ready for CI/CD โ with
README.md,mobile-overview.md, and metadata for pipelines
๐ Directory Structure Overview¶
Each generated platform will be output to a dedicated root:
๐ .NET MAUI Output Layout¶
/maui-app/
App.xaml
AppShell.xaml
Pages/
LoginPage.xaml
DashboardPage.xaml
ViewModels/
LoginViewModel.cs
DashboardViewModel.cs
Services/
AuthService.cs
AppointmentService.cs
Resources/
Styles.xaml
Fonts/
Images/
Tests/
UITests/
README.md
mobile-overview.md
๐ Flutter Output Layout¶
/flutter-app/
lib/
main.dart
screens/
login.dart
dashboard.dart
services/
auth_service.dart
state/
login_state.dart
theme/
app_theme.dart
routing/
app_router.dart
assets/
fonts/
images/
test/
widgets/
README.md
flow.yaml
๐ React Native Output Layout¶
/react-native-app/
src/
screens/
LoginScreen.tsx
DashboardScreen.tsx
services/
authService.ts
store/
loginSlice.ts
navigation/
routes.ts
theme/
colors.ts
assets/
images/
fonts/
tests/
e2e/
README.md
structure.md
๐ฆ Shared Metadata Files (Per Output)¶
| File | Description |
|---|---|
README.md |
Explains structure, purpose, build/run commands |
mobile-overview.md |
Summary: platform, modules, theme, auth method, version |
flow.yaml / structure.md |
Auto-generated layout and navigation mapping |
mobile-trace.json |
Contains trace info: traceId, tenantId, editionId, timestamp |
๐ Per-Screen Output Artifacts¶
Each screen results in:
- Layout file (
LoginPage.xaml,login.dart,LoginScreen.tsx) - State file (
LoginViewModel.cs,login_state.dart,loginSlice.ts) - Routing entry (e.g.,
AppShell.RegisterRoute,routes.ts,GoRouter()config) - Test metadata (testId map, UI test template)
๐งช Test Output Examples¶
| Platform | Test Artifacts |
|---|---|
| MAUI | LoginScreenTest.cs using MAUI.UITest |
| Flutter | login_test.dart using flutter_test |
| React Native | LoginScreen.test.tsx using jest + @testing-library/react-native |
๐ mobile-overview.md Example¶
# Mobile Module Overview
**Generated For:** vetclinic-premium
**Platforms:** React Native, Flutter
**Modules:** Login, Appointments
**Routing:** Stack Navigator / GoRouter
**Theme:** vetclinic-blue
**Trace ID:** proj-811-v2
โ Summary¶
-
All outputs are:
-
๐งฑ Modular (screen/service/component)
- ๐ Documented (README + overview)
- ๐งช Testable
- ๐งพ Traceable
- Generated structure is ready for review, CI/CD, white-labeling, or further AI-led iteration
๐ง Memory and Long-Term Context¶
This cycle defines how the Mobile Developer Agent leverages short-term session memory and long-term semantic memory to:
- Reuse layout and component patterns
- Maintain design consistency across modules
- Recognize prior feature implementations
- Avoid redundant output
- Guide regeneration and safe overwrites
๐งฑ Memory Architecture¶
| Layer | Purpose | Backed By |
|---|---|---|
| Session Memory | Tracks generated screens, bindings, assets during current run | Semantic Kernel context memory |
| Long-Term Memory | Stores past module layouts, reusable widgets, DTOs, state logic, edition overrides | Vector store via MCP or Agent Index |
| Edition Overlay Memory | Maps tenant + edition โ theming rules, UI restrictions, localization flags | File-backed YAML memory + embedding index |
| Navigation Memory | Persists flow trees, backstack behaviors, and nested routing per platform | SK memory or persisted flow.yaml per project |
๐ Reuse Scenarios¶
| Context | Reuse Strategy |
|---|---|
LoginScreen regenerated in another edition |
Clone layout and wiring, apply theme override only |
appointmentsService.dart matches OpenAPI signature from prior project |
Recall method implementation and DTO structure |
Theme.vetclinic-blue used in 3 editions |
Use pre-indexed Colors, Fonts, LogoAssets from memory |
DashboardScreen generated again |
Avoid duplication, add new widgets or tabs incrementally |
๐ Sample Memory Recall (Flutter)¶
{
"screenId": "LoginScreen",
"platform": "flutter",
"previousTraceId": "proj-775-v3",
"matchedVersion": "login.dart",
"confidence": 0.97,
"canReuse": true,
"themeVariant": "vetclinic-blue"
}
โ Agent reuses layout and simply injects new test IDs and branding.
๐ง Semantic Memory Patterns¶
-
Stored by:
-
screenId,platform,tenantId,editionId,traceId -
Indexed using:
-
Embedding of layout structure (e.g., vertical form, 2-column grid)
- Widget types used (
Dropdown,TabBar,Carousel) - API method name + signature hash
๐ Memory Scope Constraints¶
| Rule | Behavior |
|---|---|
| Tenant-Isolated Recall | Reuse only anonymized patterns unless same tenantId |
| Edition Isolation | Memory tags editionId to restrict reuse of B2B vs B2C variants |
| Field Type Drift Detection | If backend schema changed (e.g., string โ enum), memory recall is invalidated for affected bindings |
๐ Regeneration Memory¶
When regenerating part of an app (e.g., after backend API change):
- Agent consults
mobile-trace.jsonfrom prior run - Loads last
flow.yaml+ component structure - Rewrites only affected screen/service, marks others as
preserved: true - Reports delta in
mobile-overview.md
๐ง Memory-Based Optimizations¶
| Optimization | Effect |
|---|---|
| Layout cache | Faster generation, less duplication |
| DTO match recall | Aligns client โ server models from past audits |
| State/route trees | Consistent flow logic across modules |
| Edition theme variants | Branded without full regeneration |
โ Summary¶
The Mobile Developer Agent uses memory to:
- ๐ Safely regenerate features
- ๐ง Recall known layouts and services
- ๐จ Respect edition branding
- ๐งพ Enable continuous modular generation
All memory access is scoped, traceable, and tenant-compliant, making the agent capable of adaptive, reusable mobile software delivery.
โ Validation Strategy¶
Validation ensures that the Mobile Developer Agent produces reliable, idiomatic, and compliant codebases across MAUI, Flutter, and React Native. This process catches structural issues, incorrect bindings, platform mismatches, and missing test instrumentation before output is committed or released.
๐ Validation Categories¶
| Category | Whatโs Validated |
|---|---|
| ๐งฑ Layout Structure | Presence of root widgets (Scaffold, StackLayout, SafeArea), correct nesting, platform compatibility. |
| ๐ API Bindings | Method signatures match OpenAPI/GraphQL contract; DTOs are valid; endpoints are fully covered. |
| ๐งญ Navigation Graph | Route IDs are unique, screens are reachable, back stacks are valid, redirects are defined. |
| ๐ง State Management | ViewModels, Redux slices, Riverpod providers must match UI expectations and support testability. |
| ๐จ Theming Application | Theme applied consistently, fallback exists, tenant assets are referenced. |
| ๐งช Test Instrumentation | testId exists per widget, screen ID traceable, minimum number of test files included. |
| ๐ Authentication UX | Login flows are present, navigation guard exists, biometric toggle resolves to platform default. |
| ๐ Telemetry Hooks | All service calls and user interaction entry points emit OTEL spans or crash capture. |
โ Example Rule: Navigation Validation¶
{
"screenId": "ProfileScreen",
"navigation": {
"entryPoint": true,
"linkedScreens": ["SettingsScreen", "EditProfileScreen"]
},
"errors": [],
"warnings": ["SettingsScreen has no declared back route"]
}
๐ Thresholds and Limits¶
| Check | Threshold |
|---|---|
screen coverage |
โฅ 90% of screens in ui-flow.yaml must be implemented |
route conflicts |
0 duplicate route IDs allowed |
test hook coverage |
โฅ 80% of screens must include testId or equivalent |
DTO field match |
100% of required fields must match OpenAPI |
theme variance fallback |
Each color/font must resolve with fallback for default tenant |
๐ Sample Lint Report (React Native)¶
{
"screen": "LoginScreen",
"errors": [],
"warnings": [
"Missing testId on PasswordInputField",
"Missing OTEL span on onLoginPressed handler"
],
"validated": true
}
๐ง Validation Feedback Loop¶
-
All validation findings are aggregated into:
-
validation-report.json mobile-overview.mdโ includes a validation score (e.g., โ 92% passed)- Blocking errors halt generation and emit
MobileValidationFailed - Warnings are included as metadata or optional feedback to Studio or HumanOps
๐ Correction Path on Failure¶
If errors are encountered:
- Attempt auto-correction via
RetryPlannerSkill - Emit findings into
human-review.md - Mark output as
status: partial - Optionally, tag agent as
retryRequired: true
๐ Developer-Facing Artifact: validation-report.json¶
{
"platform": "flutter",
"traceId": "proj-811-v2",
"screenCoverage": 93,
"routeCheck": "pass",
"testHookCoverage": 84,
"severity": "minor",
"status": "validated"
}
โ Summary¶
The Mobile Developer Agent enforces:
- ๐ Layout + navigation correctness
- ๐ Contract-bound service generation
- ๐งช Test coverage + instrumentation
- ๐ Secure auth flow
- ๐ OTEL observability
Validation ensures mobile outputs are safe, testable, CI-ready, and production-aligned โ across all supported platforms.
๐ Retry & Correction Flow¶
The Retry & Correction Flow ensures the Mobile Developer Agent can automatically:
- Detect invalid or incomplete generation results
- Perform partial regeneration
- Suggest or apply safe corrections
- Escalate unresolved issues for human review
This is critical to support CI/CD pipelines, modular feature drops, and platform-specific drift handling.
๐ Retry Triggers¶
| Condition | Action |
|---|---|
| Validation failure (blocking) | Retry generation with alternate layout or corrected API binding |
| Missing or invalid navigation link | Retry navigation scaffold generation |
| Test hook missing or invalid | Regenerate screen with testId injected |
| Platform-specific incompatibility (e.g., MAUI binding error) | Fallback to alternate layout structure (e.g., StackLayout โ Grid) |
| DTO mismatch with OpenAPI | Regenerate models and service bindings |
| Conflict in edition theming | Retry asset injection and fallback to default theme |
| Human review required | Pause and emit human-review.md with retry instructions |
๐ง Retry Loop Logic¶
flowchart TD
START["Validation Failed"]
DETECT["Analyze Error Type"]
RETRYABLE{Is Retry Safe?}
PLAN["Auto-Correct or Refactor"]
RETRY["Rerun Skills"]
ESCALATE["Emit Human Review Trigger"]
FINISH["Validate Again"]
START --> DETECT --> RETRYABLE
RETRYABLE -- Yes --> PLAN --> RETRY --> FINISH
RETRYABLE -- No --> ESCALATE
๐งฑ Correction Strategies¶
| Issue | Correction |
|---|---|
Missing testId |
Inject default testId based on screenId_widgetType |
| DTO mismatch | Parse updated OpenAPI schema โ regenerate model |
| Navigation gap | Insert fallback route (e.g., redirect to Dashboard) |
| Missing theming asset | Use default splash/icon/logo |
| Platform binding error | Replace unsupported component with platform-safe equivalent |
| Validation warnings | Include in output, flag as non-blocking, notify QA/UX agents |
๐ Retry Metadata (retry-report.json)¶
{
"traceId": "proj-811-v2",
"platform": "maui",
"attempts": 1,
"retryPlan": "Regenerate LoginScreen with alternate layout stack",
"retryOutcome": "success",
"resolvedErrors": ["Missing Navigation Route"]
}
๐ Partial Output and Safe Regeneration¶
If only one screen or module fails:
- Output is still emitted for other valid modules
- Problem area is isolated in
retry-report.json - Affected screen(s) marked in
mobile-overview.mdwithstatus: retryPending
๐ข Escalation Events¶
| Event | Triggered When |
|---|---|
MobileGenerationFailed |
Agent cannot recover from a generation error |
MobileRetryAttempted |
Retry logic initiated for one or more modules |
MobileRetrySucceeded |
Partial or full resolution after auto-correction |
MobileHumanReviewRequired |
Retry unsafe or inconclusive โ needs manual intervention |
๐ง Retry Skill Involvement¶
RetryPlannerSkillโ Plans safest and smallest unit of regenerationRegenerateScreenLayoutSkillโ Regenerates layout onlyPatchNavigationSkillโ Rewrites route map without full screen regenInjectFallbackAssetsSkillโ Fallback for missing theming or icons
โ Summary¶
The Mobile Developer Agent supports automated retry and correction with:
- ๐ Partial regeneration
- ๐ง Platform-specific fix plans
- ๐ฆ Safe file output retention
- ๐งพ Retry traceability and audit metadata
This ensures robustness, modularity, and developer-friendly regeneration within mobile delivery pipelines.
๐ค Multi-Agent Collaboration¶
The Mobile Developer Agent operates within the Engineering Agent Cluster and interacts with adjacent agents to:
- Receive backend contracts, UI flows, and edition overlays
- Emit traceable mobile artifacts and testable modules
- Enable continuous delivery via DevOps, QA, and HumanOps agents
๐งฉ Primary Agent Collaborations¶
| Agent | Role | Interaction |
|---|---|---|
| Backend Developer Agent | ๐ก API Provider | Supplies OpenAPI/GraphQL specs, DTOs, and service logic |
| Frontend Developer Agent | ๐จ Design Bridge | Ensures mobile UI stays consistent with web/desktop UX |
| UX Designer Agent | ๐ผ๏ธ Layout Source | Provides ui-flow.yaml, screen designs, navigation trees |
| QA Agent | ๐งช Test Generator | Accepts test hooks, screen IDs, and emits e2e plans |
| DevOps Agent | ๐ Mobile CI/CD | Integrates mobile output into pipelines for signing, build, release |
| Edition Coordinator Agent | ๐ญ Branding Manager | Provides tenant/edition-specific assets, themes, icon sets |
| Security Architect Agent | ๐ Auth Flow Verifier | Confirms biometric auth, secure storage, session management |
| Observability Agent | ๐ Telemetry Router | Adds OpenTelemetry spans, crash hooks, and error tracking to mobile flows |
| HumanOps Agent | ๐งโ๐ป Review Escalation | Receives human-review.md files for screens requiring feedback or override decisions |
๐ Collaboration Workflow (Simplified)¶
sequenceDiagram
participant UX as UX Designer Agent
participant BE as Backend Dev Agent
participant MDA as ๐ฑ Mobile Developer Agent
participant QA as QA Agent
participant CI as DevOps Agent
participant OBS as Observability Agent
participant HUMAN as HumanOps Agent
UX->>MDA: ui-flow.yaml
BE->>MDA: openapi.yaml, dto.yaml
MDA->>QA: testIds, screen hooks
MDA->>CI: /flutter-app/, /maui-app/
MDA->>OBS: span instrumentation
MDA->>HUMAN: human-review.md (if needed)
๐ค Emitted Collaboration Artifacts¶
| Output | Shared With |
|---|---|
mobile-output/ (codebase) |
DevOps, QA, Studio |
mobile-overview.md |
Studio UI, QA, HumanOps |
mobile-trace.json |
Orchestrator, CI/CD |
validation-report.json |
QA, HumanOps |
retry-report.json |
HumanOps, DevOps |
testMetadata.json |
QA Agent |
theme-preview.png (optional) |
Edition Coordinator Agent, UX Agent |
๐ง Knowledge Sharing from Other Agents¶
| From | What is Imported |
|---|---|
| Backend Agent | OpenAPI, DTOs, enums, error responses |
| UX Agent | Screen flows, layout hints, transitions |
| QA Agent | Required test tags, priority modules |
| Security Agent | Consent requirements, secure storage rules |
| Edition Agent | App ID suffixes, splash screen timing, brand color rules |
๐งโ๐ป Developer-Friendly Coordination Hooks¶
If manualReview: true or confidence < threshold:
-
MobileDeveloperAgentemits: -
human-review.md(developer notes) mobile-diff-report.md(when updating module)proposed-patch.json(suggested changes)
These are routed to HumanOps, QA, or Studio preview UI.
๐ Example: mobile-diff-report.md¶
# Mobile Agent Delta Report
## Affected Modules:
- Appointments
- LoginScreen
## Changes:
- Added biometric option to LoginScreen
- Regenerated appointments DTO after OpenAPI change
- Updated route: `/appointments/details/:id` โ `/appointments/:id`
## Actions Required:
- Human review of LoginScreen testId rewrite
โ Summary¶
The Mobile Developer Agent collaborates with:
- ๐ง Upstream design & API agents
- ๐งช QA for test alignment
- ๐ CI/CD for release
- ๐งโ๐ป HumanOps for reviews
All outputs are artifactized, traceable, and studio-visualizable, enabling AI-first + human-aligned mobile software delivery.
๐ Cross-Platform UI Logic Mapping¶
This cycle defines how the Mobile Developer Agent transforms platform-agnostic UI flows into native experiences across:
- โ .NET MAUI (XAML + C#)
- โ Flutter (Dart)
- โ React Native (TypeScript)
It ensures that UI behavior, state management, navigation, and component structure are preserved across platforms, while embracing native conventions.
๐ง Unified UI Flow Model¶
At the core, the agent consumes a normalized screen flow tree like this:
screens:
- id: LoginScreen
type: form
fields: [email, password]
actions:
- id: login
target: DashboardScreen
- id: DashboardScreen
type: tabbed
tabs: [Appointments, Profile]
โ The agent transforms this into idiomatic UI logic per platform.
๐ฏ Mapping Strategy by Layer¶
| Layer | Cross-Platform Intent | MAUI | Flutter | React Native |
|---|---|---|---|---|
| Layout | Form, tabs, lists | StackLayout, TabBar, CollectionView |
Column, TabBar, ListView |
View, Tab.Navigator, FlatList |
| Routing | Declarative navigation | Shell.RegisterRoute() |
GoRouter / AutoRoute |
@react-navigation/native-stack |
| Screen lifecycle | onLoad, onTap, onFormSubmit |
OnAppearing, event handlers |
initState, onTap, onPressed |
useEffect, onPress, hooks |
| State management | ViewModel / Controller | ObservableObject via MVVM Toolkit |
NotifierProvider, BlocBuilder |
Redux slice, useReducer, Context API |
| Binding | 2-way or action-bound | {Binding Email} + Commands |
TextEditingController or ref.watch() |
useState, props, dispatch() |
| Theming | Fonts, colors, spacing | ResourceDictionary in Styles.xaml |
ThemeData, ColorScheme |
ThemeProvider, StyleSheet.create() |
๐ Reusable Cross-Platform UI Concepts¶
| Concept | Description |
|---|---|
| Screen ID | Same identifier across all stacks (used for testing, telemetry) |
| Navigation Graph | Central flow.yaml used to emit platform-specific route maps |
| Test Hooks | testId / accessibilityLabel embedded in each screen |
| API Events | Trigger logic mapped to ViewModel (MAUI), StateNotifier (Flutter), Thunk or Saga (RN) |
| Async States | isLoading, errorMessage, successCallback โ aligned naming and behavior |
| Validation Rules | Field-level validation (e.g., required, format) injected into all platforms |
๐งฉ Cross-Platform State Flow Example (Login Screen)¶
state:
fields:
email: string
password: string
events:
onSubmit:
request: POST /login
onSuccess: navigate to Dashboard
onError: show message
Output Examples¶
- .NET MAUI:
LoginViewModel.csโ Command withIsBusy+LoginResult - Flutter:
LoginStateNotifier.dartโAsyncValue<LoginResult> - React Native:
loginSlice.tsโloginAsyncThunk+ reducer states
๐ Component Mapping Table¶
| Logical Widget | MAUI | Flutter | React Native |
|---|---|---|---|
TextInput |
Entry |
TextField |
TextInput |
Button |
Button |
ElevatedButton |
TouchableOpacity |
Form |
StackLayout |
Form widget |
View + onSubmit |
TabBar |
Shell Tabs |
BottomNavigationBar |
Tab.Navigator |
ListView |
CollectionView |
ListView |
FlatList |
๐งช Testing Alignment¶
- Test ID naming scheme:
screenId_elementName - Generated test stubs are mapped to same user journey across platforms
- Screen transitions are recorded consistently for UI test automation
โ Summary¶
The Mobile Developer Agent maps:
- ๐ง Unified UI flow โ idiomatic native layouts
- ๐๏ธ State flows โ platform-native controllers/viewmodels
- ๐ Navigation โ native router stack per SDK
- ๐งช Tests โ aligned per screen, per platform
This ensures design parity, logic consistency, and native fidelity across all ConnectSoft-supported mobile platforms.
๐งฉ Platform-Specific Hooks & Overrides¶
The Mobile Developer Agent supports deep platform customization by allowing generation of platform-specific hooks, overrides, and extensions. This ensures:
- Native UX fidelity
- Access to device capabilities
- Support for SDK-level nuances
- Integration with platform-dependent libraries and plugins
๐ง Supported Overrides per Platform¶
| Area | .NET MAUI | Flutter | React Native |
|---|---|---|---|
| Native APIs | DependencyService or platform folders (Platforms/Android) |
Platform channels via MethodChannel |
Native modules via Swift/Java bridge or react-native-* plugins |
| Biometrics | IBiometricService interface + platform impl |
local_auth plugin |
expo-local-authentication, react-native-touch-id |
| Camera/Media | MediaPicker via Essentials |
image_picker, camera plugins |
expo-camera, react-native-camera |
| Push Notifications | FirebasePushNotificationManager or Azure Notification Hubs |
firebase_messaging |
react-native-push-notification, expo-notifications |
| Secure Storage | SecureStorage.Default |
flutter_secure_storage |
expo-secure-store, react-native-encrypted-storage |
| App Lifecycle | OnStart(), OnSleep() |
WidgetsBindingObserver |
AppState module |
| Custom Transitions | Shell navigation overrides |
PageRouteBuilder, Hero |
TransitionPresets, react-navigation-shared-element |
๐ Example: Injecting a Custom Plugin (Flutter)¶
platformOverrides:
flutter:
dependencies:
- name: camera
version: ^0.10.0
imports:
- path: lib/plugins/camera_integration.dart
โ Agent modifies pubspec.yaml and emits platform-specific widget wrappers.
๐ ๏ธ Platform Extension Points¶
| Hook Type | Used For | Target Location |
|---|---|---|
NativeBridge |
Injecting Swift/Kotlin/Java interop | Platforms/* or android/app |
PlatformSpecificComponent |
Per-platform widget swap (e.g., CupertinoButton vs MaterialButton) |
Abstracted in UI layer |
PostBuildScript |
Adding platform settings (e.g., AndroidManifest.xml, Info.plist) |
CI/CD / /scripts/postbuild |
PermissionsInjector |
Camera, GPS, biometrics | Agent inserts correct permissions into manifest or plist |
๐๏ธ Tenant or Edition-Based Overrides¶
Some platform hooks are scoped to tenant or edition, for example:
editionOverrides:
vetclinic-blue:
platform: react-native
overrides:
- splashScreen: blue_splash.png
- biometricPromptText: "Use Face ID to log in"
โ Affects asset injection, string localization, and prompt handling logic.
๐ Fallback Handling¶
If a plugin is unavailable or fails compatibility validation:
- Agent emits fallback UI or empty stub with TODO
- Studio preview shows error reason + suggested manual fix
- Logs reason in
mobile-overview.mdandvalidation-report.json
๐ง Platform-Specific Skill Extensions¶
| Skill | Extended Behavior |
|---|---|
InjectThemeAndAssetsSkill |
Emits platform-specific colors.ts, styles.xml, app_theme.dart |
BindApiServiceSkill |
Chooses idiomatic HTTP library per stack (e.g., dio vs axios) |
EmitMobileProjectSkill |
Structures output with platform-expected file/folder layout and config files |
๐ Output Examples¶
MainActivity.cs,AppDelegate.csโ with camera, biometric handlersapp.jsonorInfo.plistโ with permission overridesnative-bridges/โ directory to host custom Swift/Kotlin code when needed
โ Summary¶
The Mobile Developer Agent supports:
- โ๏ธ Native plugins, APIs, and secure modules
- ๐ญ Edition-specific override injection
- ๐ฒ Platform-native look, feel, and device access
- ๐ Safe fallback with Studio preview and validation reports
These platform hooks ensure the agent can generate production-grade, device-native, and differentiated mobile experiences across all supported stacks.
๐ CI/CD and Mobile Build Pipeline¶
This cycle defines how the Mobile Developer Agent integrates with CI/CD systems to enable:
- Automated builds for Flutter, .NET MAUI, and React Native
- Edition-specific app packaging and signing
- White-label app delivery and store-readiness
- Artifact publishing and telemetry wiring
๐๏ธ Supported CI/CD Providers¶
| CI Provider | Platform Support | Tools |
|---|---|---|
| Azure Pipelines | All platforms (.NET MAUI, Flutter, React Native) | Hosted agents, secure signing, build matrix |
| GitHub Actions | Full cross-platform support | flutter-action, react-native-builder, dotnet build, Fastlane |
| Bitrise | Mobile-first; supports Flutter & RN | Predefined workflows, certificate handling |
| Codemagic | Flutter-specialized | Build, test, distribute workflows |
| Expo EAS | React Native (Expo) | OTA updates, build for app stores |
| App Center (deprecated) | Legacy Xamarin/Mobile apps | Used only for backward compatibility (optional) |
๐งฑ Agent-Generated CI Artifacts¶
| Artifact | Description |
|---|---|
azure-pipelines.yml |
For use with Azure DevOps; supports parallel builds for Android/iOS |
.github/workflows/mobile.yml |
GitHub Actions-ready pipeline with platform matrix |
build-config.json |
Platform-specific build targets, signing details, versioning |
app-release.aab / .ipa / .apk |
Release artifacts per platform, trace-tagged |
signing-instructions.md |
Human-readable signing and provisioning summary for store upload |
ci-status.json |
Summary of build success/failure, app version, and traceId for Orchestrator |
โ๏ธ Example: GitHub Actions Workflow (mobile.yml)¶
name: Mobile CI
on:
push:
branches: [main]
jobs:
build:
strategy:
matrix:
platform: [flutter, react-native]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup ${{ matrix.platform }}
uses: mobile-actions/setup-${{ matrix.platform }}
- run: npm install / flutter pub get
- run: npm run build / flutter build apk
๐ Signing and Provisioning¶
| Platform | Signing |
|---|---|
| Android | .keystore, key.properties, gradle.properties โ injected at build time |
| iOS | .p12, .mobileprovision, Apple certificates โ handled via secure CI environment variables |
| Flutter | Same as native iOS/Android, supports flavors |
| Expo EAS | Managed via EAS dashboard or eas.json config |
| MAUI | .pfx and project signing profiles (csproj, Directory.Build.props) |
๐งช CI Test Execution¶
-
Triggers:
-
flutter test,jest,xUnit,MAUI.UITest -
CI stages include:
-
โ Unit + widget tests
- ๐งช E2E smoke tests
- ๐ Linting + formatting
- ๐ Upload test coverage
๐ฆ Artifact Publishing¶
| Artifact | Destination |
|---|---|
.apk, .aab, .ipa |
GitHub/Azure Artifacts, S3, App Store/Play Console (manual or auto via Fastlane) |
mobile-overview.md |
Attach to release or PR summary |
ci-status.json |
Ingested by Orchestrator for downstream decisioning |
๐ Signing Instructions Example (Markdown)¶
# Signing Summary
- Platform: iOS
- App: vetclinic-premium (React Native)
- Provisioning Profile: vetclinic_production.mobileprovision
- Certificate: Apple Distribution (p12)
- Bundle ID: com.connectsoft.vetclinic
To sign and upload:
1. Decode `base64` secrets
2. Run `fastlane ios release`
๐งฉ CI-Aware Agent Hooks¶
ciStatus: passed/failedsignedBuildReady: trueretryPipelineAllowed: truelinkedTraceId: traceId from mobile output
โ Summary¶
The Mobile Developer Agent supports:
- ๐ Build pipelines for MAUI, Flutter, React Native
- ๐ Secure signing and provisioning workflows
- ๐ Release artifact emission and store delivery
- ๐ก CI traceability via GitHub, Azure, Bitrise, Codemagic
- ๐ Test + telemetry alignment with observability goals
All generated mobile projects are CI/CD ready by default, ensuring seamless delivery across editions and environments.
๐ Analytics, Logs, and Observability¶
The Mobile Developer Agent embeds observability-first design into all generated mobile applications, ensuring that every screen, user interaction, and backend call can be traced, analyzed, and monitored across:
- โ .NET MAUI
- โ Flutter
- โ React Native
It integrates with OpenTelemetry, analytics platforms (e.g., App Insights, Firebase, Amplitude), and CI/CD trace systems.
๐ฏ Observability Goals¶
| Goal | Implementation |
|---|---|
| User journey tracking | Emit spans per screen transition, tab change, or key button action |
| API instrumentation | Trace each HTTP call with latency, failure, auth state |
| Crash capture | Hook into native error boundaries with stack trace upload |
| Edition-specific metrics | Tag every event with tenantId, editionId, traceId |
| Studio visibility | Pipe metrics into dashboards for Studio QA, UX, and Ops review |
๐ก Telemetry & Logging Components¶
| Component | MAUI | Flutter | React Native |
|---|---|---|---|
| Telemetry SDK | OpenTelemetry.Instrumentation.Http, ApplicationInsightsLogger |
otel_dart, firebase_analytics, sentry_flutter |
@opentelemetry/api, expo-analytics, Sentry |
| Crash Reporting | AppDomain.CurrentDomain.UnhandledException |
FlutterError.onError, runZonedGuarded |
ErrorBoundary, Sentry, LogBox |
| UI Events | TrackEvent() in ViewModel |
analytics.logEvent() |
analytics.track() or Redux middleware |
| Navigation Tracing | Route hooks in Shell, GoRouter, or @react-navigation/native |
||
| User Property Tags | UserId, Edition, Platform, BuildType added to all events |
๐งช Sample Observability Flow (Login)¶
sequenceDiagram
participant User
participant App
participant Telemetry
participant Backend
User->>App: Tap "Login"
App->>Telemetry: Span "login_button_pressed"
App->>Backend: POST /login
Backend-->>App: 200 OK
App->>Telemetry: Span "login_success" + duration + metadata
๐ telemetry-config.json (Example Output)¶
{
"traceId": "proj-811-v2",
"tenantId": "vetclinic-premium",
"editionId": "vetclinic-blue",
"sessionId": "sess-0214",
"platform": "flutter",
"analyticsEnabled": true,
"otelExport": "https://telemetry.connectsoft.io/collector"
}
๐ Default Traced Events¶
| Event Name | Trigger |
|---|---|
screen_view:<screenId> |
On screen entry |
button_click:<actionId> |
On primary UI action |
api_call:<method> |
On service binding |
login_success |
On auth grant |
error_reported |
On exception |
edition_loaded |
On theming completed |
๐ง Observability Hooks in Skills¶
| Skill | Telemetry |
|---|---|
DecorateWithTelemetrySkill |
Injects spans into layout + service call sites |
GenerateStateLayerSkill |
Adds logging to ViewModel actions or Redux thunks |
EmitMobileProjectSkill |
Outputs telemetry-config.json and bootstraps initializeTelemetry() method |
ValidationSkill |
Ensures observability coverage (e.g., 90% of screens traced) |
๐งพ CI-Aware Logging Hooks¶
-
Logs emitted to:
-
logs/telemetry-summary.json - CI status checks (e.g., trace coverage %, spans/screen, failures)
-
Uploads to:
-
Azure Monitor, Datadog, Sentry, AppInsights, Firebase Crashlytics
๐ Summary Table¶
| Metric | Default Target |
|---|---|
screen_trace_coverage |
โฅ 90% of screens traced |
api_trace_coverage |
100% of generated API methods instrumented |
error_boundary_present |
โ Per platform |
analytics_tag_completeness |
tenantId, editionId, platform, traceId required |
โ Summary¶
The Mobile Developer Agent:
- ๐ Emits OpenTelemetry spans
- ๐ง Embeds analytics + crash reporting
- ๐ฏ Tags every event with tenant/edition context
- ๐ Supports Studio dashboards and CI/CD trace pipelines
Observability is baked into every module, making the mobile experience debuggable, monitorable, and compliance-ready out-of-the-box.
๐จ Edition/Brand Customization¶
This cycle details how the Mobile Developer Agent supports multi-tenant, white-label, and edition-specific mobile app customization โ across branding, layout, theme, feature flags, and app identity.
It enables the ConnectSoft AI Software Factory to generate distinct mobile apps per edition, with traceable theming and modular overrides.
๐ญ Edition-Aware Customization Capabilities¶
| Customization Layer | Scope |
|---|---|
| Branding | App name, splash screen, icons, colors, font, onboarding screen |
| Theme Styling | Primary/secondary colors, typography, button styling, spacing |
| Feature Flags | Enable/disable flows: e.g., enableAppointments, enableMarketingScreen |
| Routing Overrides | Alter screen order, remove screens, add intro carousel |
| Tenant Metadata | tenantId, region, editionId, white-label ID โ used in telemetry + API requests |
| Localization Variants | Locale-specific edition overlays: en-US, fr-CA, ar-SA, etc. |
| Legal Text / Policy Links | Unique privacy URLs, GDPR acceptance per region or edition |
๐๏ธ edition-config.yaml Example¶
editionId: vetclinic-blue
tenantId: vetclinic-premium
appDisplayName: VetClinic App
branding:
icon: assets/vetclinic/icon.png
splash: assets/vetclinic/splash.png
primaryColor: "#123456"
font: "Nunito"
themeOverrides:
buttonShape: rounded
inputStyle: outline
features:
enableAppointments: true
enableChat: false
showOnboardingCarousel: true
locale: en-US
privacyPolicyUrl: https://vetclinic.com/legal/privacy
๐จ Platform Output Examples¶
๐ฃ .NET MAUI¶
AppShell.xamlusesStaticResource PrimaryColor,FontFamilyAssets/replaced with edition-specific icon and splashThemes/Styles.xamlreflects edition color palette
๐ต Flutter¶
ThemeDatainjected inmain.dartwith edition keysapp_theme.dartgenerated from theme mappingassets/edition/copied into Flutterpubspec.yaml
๐ข React Native¶
colors.ts+fonts.tsoverride via generated edition fileApp.tsxpulls ineditionConfig.jsonassets/edition/folder mapped inmetro.config.js
๐ Telemetry + Build Metadata¶
Every app includes:
{
"editionId": "vetclinic-blue",
"tenantId": "vetclinic-premium",
"buildType": "release",
"platform": "flutter",
"traceId": "proj-811-v2"
}
โ Used in analytics, crash reports, API requests.
๐๏ธ White-Label Support Scenarios¶
| Scenario | Customization |
|---|---|
| B2B with unique logo + domain | Theme, routing, splash, app name |
| B2C multi-locale | Language packs, RTL support, onboarding variants |
| Region-restricted app | Storage zones, tenant API URL, legal notice |
| Feature-licensed app | Disable advanced modules like chat or analytics |
๐ง Skills Involved¶
| Skill | Role |
|---|---|
InjectThemeAndAssetsSkill |
Applies edition styling and resources |
RouteFlowModifierSkill |
Adjusts screen order per edition config |
LocalizeStringsSkill |
Applies localized strings per edition+locale |
BrandingOverlayPlannerSkill |
Combines tenant + edition config to final runtime behavior |
๐ Output File: edition-profile.json¶
{
"edition": "vetclinic-blue",
"region": "EU",
"featureFlags": {
"enableAppointments": true,
"enableChat": false
},
"brandingApplied": true,
"themeValidated": true
}
โ Summary¶
The Mobile Developer Agent supports:
- ๐จ Branded output per edition
- ๐งฉ Modular overrides across UI, theme, navigation
- ๐ฆ White-label, region-based, or localized variants
- ๐ Edition-aware analytics, telemetry, and feature gating
This empowers ConnectSoft to generate fully distinct mobile apps for every customer or edition โ with zero duplication and full automation.
๐งญ Final Blueprint and Future Direction¶
This section summarizes the overall architecture, capabilities, and strategic roadmap for the Mobile Developer Agent within the ConnectSoft AI Software Factory.
The agent is now capable of end-to-end mobile app generation, across multiple stacks, brands, tenants, and editions โ with observability, CI/CD, modularity, and AI-native collaboration.
๐งฑ Mobile Developer Agent Blueprint¶
flowchart TB
subgraph UX & Design Input
UX[UX Designer Agent]
Edition[Edition Coordinator Agent]
end
subgraph Technical Context
BE[Backend Developer Agent]
SEC[Security Architect Agent]
QA[QA Agent]
OBS[Observability Agent]
end
UX --> MDA
Edition --> MDA
BE --> MDA
SEC --> MDA
QA --> MDA
OBS --> MDA
MDA[[๐ฑ Mobile Developer Agent]]
MDA --> CI[CI/CD Agent]
MDA --> Studio[Studio UI]
MDA --> HUMAN[HumanOps Agent]
โ Capability Summary¶
| Capability | Status |
|---|---|
| .NET MAUI app generation | โ Stable |
| Flutter app generation | โ Stable |
| React Native app generation | โ Stable |
| Edition/branding overlay | โ Supported |
| API binding & DTO generation | โ Supported |
| Auth + biometric flows | โ Supported |
| Observability + OpenTelemetry | โ Embedded |
| Retry + correction logic | โ Smart + resumable |
| Human review interface | โ Emitted + structured |
| Studio preview integration | โ Planned Q2 2025 |
๐งฉ Modular Generation Layers¶
| Layer | Output |
|---|---|
| UI โ Layout โ Routing | Screens, components, navigators |
| State Layer | ViewModels, Redux slices, Riverpod notifiers |
| API Integration | Services, interceptors, request DTOs |
| Tests | Unit tests, test IDs, UI hooks |
| Theming | Colors, fonts, icons, onboarding |
| Build/CI | Pipelines, signing configs, build scripts |
๐ Future Directions¶
1. Next Platform Targets¶
| Stack | ETA | Notes |
|---|---|---|
| Expo/Expo Router | Q3 2025 | Easier onboarding for React Native CI/CD |
| Tauri (Mobile Web) | Q4 2025 | Lightweight desktop/mobile hybrid support |
| WASM + Blazor Mobile | 2026 | Leverage existing Blazor stack for offline-capable apps |
2. Studio Preview Extension¶
- In-studio visual preview of mobile UI flows per platform
- Clickable demos (via Expo QR, WebAssembly, or iframe)
3. Dynamic Over-the-Air Modules (OTA)¶
-
Use modular output units for:
-
Feature toggles
- Hotfix rollout
- Edition-specific onboarding flows
4. Telemetry-Based UI Feedback Loop¶
- Learn which components/screens underperform
- Feed UX data back into
UX Designer Agentfor redesign suggestions
5. AI-First Regression & Diff Planning¶
- Auto-detect diff across builds: layout, API, routes
- AI suggests what to re-render or retest
๐ Blueprint Artifacts¶
| Artifact | Purpose |
|---|---|
mobile-developer-agent.md |
Full specification for engineering, ops, and agent cluster coordination |
agent-blueprint-diagram.mmd |
Visual structure of agent dependencies |
agent-skill-catalog.json |
List of all Semantic Kernel skills, arguments, and responsibilities |
sample-edition-diff.md |
Demonstrates white-label diffing per app generation |
agent-roadmap.md |
Timeline of past and planned features across cycles |
โ Final Summary¶
The Mobile Developer Agent is:
- ๐ง Multi-stack capable (.NET MAUI, Flutter, React Native)
- ๐ฆ Modular (screen, service, test, theme, edition)
- ๐จ Brandable (tenant/edition overlays)
- ๐ Smart (correction + retry aware)
- ๐ Observable (OTEL + crash logging + analytics)
- ๐ค Collaborative (multi-agent orchestration)
- ๐ Production-grade (CI/CD + signing + testing ready)
It empowers ConnectSoft to autonomously deliver enterprise mobile apps at scale โ per feature, per tenant, per platform, and per edition.