MCP HubMCP Hub
Retour aux compétences

moai-domain-mobile-app

modu-ai
Mis à jour Today
287 vues
424
78
424
Voir sur GitHub
Testsmobilereact-nativefluttercapacitorioniccross-platformtestingdeployment

À propos

Cette compétence Claude fournit une expertise en développement mobile d'entreprise pour les frameworks multiplateformes React Native 0.76+, Flutter 3.24+ et Capacitor 6.x. Elle se concentre sur la mise en œuvre de modèles robustes, de tests complets et de l'automatisation CI/CD pour des applications mobiles prêtes pour la production. Utilisez cette compétence pour obtenir des conseils sur l'architecture mobile, l'optimisation des performances et les stratégies de déploiement.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add modu-ai/moai-adk
Commande PluginAlternatif
/plugin add https://github.com/modu-ai/moai-adk
Git CloneAlternatif
git clone https://github.com/modu-ai/moai-adk.git ~/.claude/skills/moai-domain-mobile-app

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

moai-domain-mobile-app

Enterprise Mobile Development Excellence

Version: 4.0.0 (React Native 0.76+, Flutter 3.24+) Technology Stack: Modern async mobile development with CI/CD automation Focus: Cross-platform strategies, performance optimization, production deployment


📖 Progressive Disclosure

Level 1: Quick Reference (Core Concepts)

Purpose: Enterprise mobile development covering React Native, Flutter, Capacitor with modern patterns.

Core Stack (2025 Stable):

  • React Native: 0.76+ (New Architecture default)
  • Flutter: 3.24+ (Dart 3.5+)
  • Expo: 52.x (EAS Build/Submit)
  • Navigation: React Navigation 6.x, Flutter Navigator 2.x
  • State: Provider 6.x, GetX 4.x, Redux Toolkit
  • Testing: Detox 20.x (E2E), Jest 30.x (Unit)
  • CI/CD: GitHub Actions, fastlane 2.x, EAS Build

Quick Setup Patterns:

React Native App Structure:

// Main app with modern navigation
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AsyncStorage from '@react-native-async-storage/async-storage';

export const AppNavigator = () => (
  <NavigationContainer>
    <Stack.Navigator>
      <Stack.Screen name="Home" component={HomeScreen} />
      <Stack.Screen name="Profile" component={ProfileScreen} />
    </Stack.Navigator>
  </NavigationContainer>
);

Flutter App Structure:

import 'package:flutter/material.dart';
import 'package:flutter/services/navigation.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter App',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(),
      routes: {
        '/': (context) => MyHomePage(),
        '/profile': (context) => ProfilePage(),
      },
    );
  }
}

When to Use:

  • ✅ Native iOS/Android app development
  • ✅ Cross-platform apps with shared business logic
  • ✅ Web app deployment (Capacitor/Ionic)
  • ✅ Performance optimization and battery management
  • ✅ E2E automation and CI/CD integration

Level 2: Practical Implementation (Essential Patterns)

Pattern 1: React Native Architecture (0.76+)

Modern Setup:

npx react-native@latest init MyApp --template
cd MyApp
npm install @react-navigation/native @react-native-async-storage @react-native-community/netinfo

Async Data Management:

const [products, setProducts] = useState<Product[]>([]);
const [loading, setLoading] = useState(false);
const [isOnline, setIsOnline] = useState(true);

// Load from cache first, then API
const loadProducts = useCallback(async () => {
  try {
    setLoading(true);

    // Try cache first
    const cached = await AsyncStorage.getItem('products');
    if (cached) {
      setProducts(JSON.parse(cached));
    }

    // Fetch fresh data if online
    if (isOnline) {
      const response = await fetch('https://api.example.com/products');
      const data = await response.json();
      setProducts(data);
      await AsyncStorage.setItem('products', JSON.stringify(data));
    }
  } finally {
    setLoading(false);
  }
}, [isOnline]);

Pattern 2: Testing Strategy

Detox E2E Testing:

// detox/e2e/app.config.js
module.exports = {
  testEnvironment: 'node',
  testRunner: 'jest',
  setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
};

Component Testing:

// Component Testing with React Testing Library
import { render, screen, fireEvent } from '@testing-library/react-native';
import { renderHook } from '@testing-library/react-native');

it('should render correctly', () => {
  render(<HomeScreen />);
  expect(screen.getByText('Welcome')).toBeTruthy();
});

Pattern 3: Performance Optimization

Image Optimization:

const OptimizedImage = ({ uri, style, resizeMode, width, height }) => {
  return (
    <Image
      source={{ uri }}
      style={style}
      resizeMode={resizeMode}
      width={width}
      height={height}
      onLoad={handleImageLoad}
      onError={() => console.log('Image failed to load')}
    />
  );
};

Level 3: Advanced Integration (Complex Scenarios)

Pattern 1: Capacitor Plugin Development

Plugin Structure:

// capacitor-plugin/src/index.ts
import { registerPlugin } from '@capacitor/core';

export interface CustomPluginPlugin {
  echo(options: { value: string }): Promise<{ value: string }>;
  openNativeScreen(): Promise<void>;
}

export const CustomPlugin = registerPlugin<CustomPlugin>('CustomPlugin', {
  web: () => import('./web').then(m => new m.CustomPluginWeb()),
});

React Native Integration:

// capacitor.config.ts
import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: [
    {
      name: 'Camera',
      plugins: ['camera', 'filesystem']
    }
  ]
};

export default config;

Pattern 2: Cross-Platform Business Logic

Shared Service Architecture:

// services/user-service.ts
export class UserService {
  async getUserProfile(userId: string): Promise<UserProfile> {
    // Shared implementation across platforms
    return await this.apiCall(`/users/${userId}`);
  }
}

Platform-Specific Implementations:

// services/platform-specific/web-service.ts
export class WebUserService implements UserService {
  async getUserProfile(userId: string): Promise<UserProfile> {
    const response = await fetch(`/api/users/${userId}`);
    return response.json();
  }
}

// services/platform-specific/mobile-service.ts
export class MobileUserService implements UserService {
  async getUserProfile(userId: string): Promise<UserProfile> {
    const user = await this.realm.objects.get(userId);
    return user.profile || null;
  }
}

Pattern 3: Advanced Production Features

Sentry Integration:

import * as Sentry from '@sentry/react-native';
import { ReactNode } from 'react';

Sentry.init({
  dsn: 'https://@[key]@[domain].ingest.sentry.io/[projectId]',
  tracesSampleRate: 1.0,
  environment: __DEV__ ? 'development' : 'production',
  integrations: [
    new Sentry.BrowserTracing(),
    new Sentry.ReactNavigationRoutingInstrumentation()
  ]
});

Custom Metrics:

import Analytics from 'analytics-react-native';
import { MetricsCollector } from './metrics';

const AppAnalytics = Analytics.getAnalytics({
  trackAppSessions: true,
  trackScreen: true,
  trackUserProperties: true,
  trackExceptions: true
});

Analytics.track('screen_view', { screen: 'Home', platform: platform });

🎯 Decision Matrix

ScenarioBest ChoiceWhy
Dashboard AppTabler Icons (5900+)Optimized for admin UI
Tailwind ProjectHeroicons (official)Native integration
Multiple WeightsPhosphor (6 weights)Design flexibility
200K+ IconsIconify (universal)Complete coverage
Compact UIRadix Icons (~5KB)Minimal bundle

📊 Technology Comparison

FrameworkIconsBundle SizeUse CaseType System
React Native1000+Native appsTypeScriptMedium
Flutter800+Cross-platformDartHigh
Capacitor500+Hybrid appsWeb + nativeMedium
Ionic1300+Hybrid appsAngular/ReactMedium

🔗 Related Skills

  • Skill("moai-domain-frontend") – UI/UX integration patterns
  • Skill("moai-domain-testing") - Mobile testing strategies
  • Skill("moai-domain-devops") - CI/CD and deployment
  • Skill("moai-domain-backend") - API integration and data management

Version: 4.0.0 Enterprise Last Updated: 2025-11-13 Status: Production Ready Stack: React Native 0.76+, Flutter 3.24+, Capacitor 6.x

Dépôt GitHub

modu-ai/moai-adk
Chemin: .claude/skills/moai-domain-mobile-app
agentic-aiagentic-codingagentic-workflowclaudeclaudecodevibe-coding

Compétences associées

content-collections

Méta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

Voir la compétence

evaluating-llms-harness

Tests

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

Voir la compétence

cloudflare-turnstile

Méta

This skill provides comprehensive guidance for implementing Cloudflare Turnstile as a CAPTCHA-alternative bot protection system. It covers integration for forms, login pages, API endpoints, and frameworks like React/Next.js/Hono, while handling invisible challenges that maintain user experience. Use it when migrating from reCAPTCHA, debugging error codes, or implementing token validation and E2E tests.

Voir la compétence

cloudflare-cron-triggers

Tests

This skill provides comprehensive knowledge for implementing Cloudflare Cron Triggers to schedule Workers using cron expressions. It covers setting up periodic tasks, maintenance jobs, and automated workflows while handling common issues like invalid cron expressions and timezone problems. Developers can use it for configuring scheduled handlers, testing cron triggers, and integrating with Workflows and Green Compute.

Voir la compétence