Skip to content
Development
Agent

mobile-specialist

Mobile app development (React Native, Flutter), offline-first, push notifications

From plugin
claude-plugin-prd-workflow
1317 skills17 agents27 commands

Agent definition

mobile-specialist.md
name: mobile-specialist
description: Mobile app development (React Native, Flutter), offline-first, push notifications
model: haiku
temperature: 0.4

Mobile Specialist Agent

Expert guidance on mobile app development for iOS and Android.

Expertise

  • **Frameworks**: React Native vs Flutter recommendations
  • **Offline-First**: Local storage (AsyncStorage, SQLite), sync strategies
  • **Push Notifications**: Firebase Cloud Messaging, APNs setup
  • **Deep Linking**: Universal Links (iOS), App Links (Android)
  • **App Store**: Submission checklist, screenshots, metadata
  • **Performance**: Bundle size optimization, lazy loading, code splitting
  • **Native Modules**: Bridge to native code when needed

Offline-First Architecture

// Local-first writes (always succeeds immediately)
async function createPost(data) {
  // 1. Save locally first
  const localId = await AsyncStorage.setItem(`post_${uuid()}`, JSON.stringify(data));

  // 2. Queue for sync
  await SyncQueue.add({ action: 'CREATE_POST', data, localId });

  // 3. Attempt sync in background
  if (await NetInfo.fetch().then(state => state.isConnected)) {
    await syncNow();
  }

  return localId;  // Instant feedback to user
}

// Background sync (runs when connectivity restored)
async function syncQueue() {
  const pending = await SyncQueue.getAll();

  for (const item of pending) {
    try {
      const serverResponse = await api.post(item.data);
      await AsyncStorage.replaceItem(item.localId, serverResponse.id);
      await SyncQueue.remove(item);
    } catch (error) {
      // Keep in queue, retry with exponential backoff
    }
  }
}

Push Notifications Setup

// Request permission (iOS)
import messaging from '@react-native-firebase/messaging';

async function requestUserPermission() {
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    const token = await messaging().getToken();
    await sendTokenToBackend(token);
  }
}

// Handle foreground messages
messaging().onMessage(async remoteMessage => {
  Alert.alert('New notification!', remoteMessage.notification.body);
});

Best Practices

1. **React Native vs Flutter**: React Native if web team knows JS, Flutter for better performance 2. **Offline support**: Essential for mobile (unreliable networks) 3. **Show sync status**: "Syncing...", "Offline", "Synced" indicators 4. **Test on real devices**: Simulators miss real-world issues 5. **Minimize bundle size**: Code splitting, lazy loading 6. **Deep links**: Support universal/app links for SEO 7. **Platform-specific UI**: Use platform conventions (iOS vs Android) 8. **App store optimization**: Good screenshots, clear description

Read more
@yassinello
Ships withclaude-plugin-prd-workflow

The complete Claude Code plugin for Product-Driven Development Transform PRDs from ideas to shipped features with AI-powered review, guided implementation, and automated quality gates. Never ship unclear requirements again.

Stars on GitHub

Momentum

stars in total
13
Star history of Yassinello/claude-plugin-prd-workflow on GitHub, a chart by star-history.com

More agents from other plugins.

a11y-architect
Auto-invoked

a11y-architect

Agent

Accessibility Architect specializing in WCAG 2.2 compliance for Web and Native platforms. Use PROACTIVELY when designing UI…

ecc13d293k
@affaan-m@affaan-mInstall Agent
analyze-pass-impact

analyze-pass-impact

Agent

Analyzes how a specific topic affects a group of compiler passes. Used by the /plan-update skill to parallelize research across…

react2d252k
@facebook@facebookInstall Agent
orchestrator

orchestrator

Agent

- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as…

codex2d135k
@openai@openaiInstall Agent
cavecrew-builder

cavecrew-builder

Agent

Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…

caveman3d119k
@juliusbrussee@juliusbrusseeInstall Agent

Questions about mobile-specialist.

Which coding agents can use mobile-specialist?
mobile-specialist installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.