Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    aj-geddes

    mobile-offline-support

    aj-geddes/mobile-offline-support
    Coding
    59
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Implement offline-first mobile apps with local storage, sync strategies, and conflict resolution. Covers AsyncStorage, Realm, SQLite, and background sync patterns.

    SKILL.md

    Mobile Offline Support

    Table of Contents

    • Overview
    • When to Use
    • Quick Start
    • Reference Guides
    • Best Practices

    Overview

    Design offline-first mobile applications that provide seamless user experience regardless of connectivity.

    When to Use

    • Building apps that work without internet connection
    • Implementing seamless sync when connectivity returns
    • Handling data conflicts between device and server
    • Reducing server load with intelligent caching
    • Improving app responsiveness with local storage

    Quick Start

    Minimal working example:

    import AsyncStorage from '@react-native-async-storage/async-storage';
    import NetInfo from '@react-native-community/netinfo';
    
    class StorageManager {
      static async saveItems(items) {
        try {
          await AsyncStorage.setItem(
            'items_cache',
            JSON.stringify({ data: items, timestamp: Date.now() })
          );
        } catch (error) {
          console.error('Failed to save items:', error);
        }
      }
    
      static async getItems() {
        try {
          const data = await AsyncStorage.getItem('items_cache');
          return data ? JSON.parse(data) : null;
        } catch (error) {
          console.error('Failed to retrieve items:', error);
          return null;
        }
      }
    
    // ... (see reference guides for full implementation)
    

    Reference Guides

    Detailed implementations in the references/ directory:

    Guide Contents
    React Native Offline Storage React Native Offline Storage
    iOS Core Data Implementation iOS Core Data Implementation
    Android Room Database Android Room Database

    Best Practices

    ✅ DO

    • Implement robust local storage
    • Use automatic sync when online
    • Provide visual feedback for offline status
    • Queue actions for later sync
    • Handle conflicts gracefully
    • Cache frequently accessed data
    • Implement proper error recovery
    • Test offline scenarios thoroughly
    • Use compression for large data
    • Monitor storage usage

    ❌ DON'T

    • Assume constant connectivity
    • Sync large files frequently
    • Ignore storage limitations
    • Force unnecessary syncing
    • Lose data on offline mode
    • Store sensitive data unencrypted
    • Accumulate infinite queue items
    • Ignore sync failures silently
    • Sync in tight loops
    • Deploy without offline testing
    Recommended Servers
    InstantDB
    InstantDB
    One drive
    One drive
    Kernel
    Kernel
    Repository
    aj-geddes/useful-ai-prompts
    Files