oma-mobile

Implements and verifies cross-platform mobile features for Flutter, React Native, and Swift iOS.

Updated Mar 26, 2026
One-click install
npx skills add https://github.com/javiruu/viru-air --skill oma-mobile-javiruu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: oma-mobile
Source: https://github.com/javiruu/viru-air/tree/main/.agents/skills/oma-mobile
Command: npx skills add https://github.com/javiruu/viru-air --skill oma-mobile-javiruu

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building mobile features across Flutter, React Native, and native Swift iOS requires consistent architecture, state management, offline handling, and testing discipline that is hard to enforce manually across platforms. ## Core Features & Use Cases - Multi-platform implementation: Builds screens, widgets, providers, and API clients following Clean Architecture (Flutter), App/Core/Features/Shared layout (Swift), or TanStack Query patterns (React Native). - Offline-first and caching: Mandates repository-layer response caches with stale-while-revalidate reads and write invalidation using Drift, hyperoslo/Cache, or TanStack Query with MMKV persistence. - Verification workflow: Runs unit, widget, XCTest/XCUITest, and Maestro E2E checks with a self-verification checklist and an error recovery playbook. - Use Case: Ask it to create a native iOS todo list screen with pull-to-refresh; it generates a SwiftUI view, an @Observable view model, a service wrapping the swift-openapi-generator client, and XCTest coverage. ## Quick Start Ask the agent to build a mobile feature such as a login screen with JWT auth for your Flutter or Swift iOS app and let it implement and verify the code.

Frequently Asked Questions about oma-mobile

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Flutter screen with Riverpod state management?▼

Define entities and repository interfaces in the domain layer, implement Dio-based data sources, then create Riverpod providers and screens in the presentation layer. Add unit and widget tests, and use Maestro for critical user flows.

How do I use swift-openapi-generator in a native iOS app?▼

Place the OpenAPI spec at Core/Networking/openapi.yaml with an openapi-generator-config.yaml, attach the OpenAPIGenerator build plugin in Package.swift, and call the generated Client from a service. Never hand-roll URLRequest or JSONDecoder for spec-covered endpoints.

Flutter vs React Native vs Swift for cross-platform mobile development?▼

Flutter uses Dart with Riverpod and Drift for offline-first caching, React Native uses TypeScript with TanStack Query and MMKV persistence, and Swift targets iOS 17+ only with SwiftUI and @Observable. Choose based on target platforms and team expertise.

Why is my @Observable view model not updating the SwiftUI view?▼

Confirm the class uses the @Observable macro, the deployment target is iOS 17+, and the view holds the view model with @State. Mutations must happen on the main actor, and child views needing mutation require @Bindable.

How do I add offline-first caching to a mobile app?▼

Cache decoded domain models at the repository layer, never raw HTTP responses. Serve cached data immediately while revalidating in the background, and invalidate affected cache keys on every write operation.

When should I not use this mobile development approach?▼

Do not use it for web frontend or backend API work, which belong to separate frontend and backend agents. It targets native and cross-platform mobile features only.