jpskill.com
🛠️ 開発・MCP コミュニティ

project-setup-architecture

Set up project infrastructure including TypeScript, database, state management, navigation, and testing. Use when initializing new features or configuring development environment.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o project-setup-architecture.zip https://jpskill.com/download/17421.zip && unzip -o project-setup-architecture.zip && rm project-setup-architecture.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17421.zip -OutFile "$d\project-setup-architecture.zip"; Expand-Archive "$d\project-setup-architecture.zip" -DestinationPath $d -Force; ri "$d\project-setup-architecture.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して project-setup-architecture.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → project-setup-architecture フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

プロジェクトのセットアップとアーキテクチャ

React Native/Expo プロジェクトのインフラストラクチャをセットアップするためのガイドです。

使用する場面

  • TypeScript の構成を初期化する
  • データベース層をセットアップする
  • 状態管理を構成する
  • テストをインストールして構成する
  • ディレクトリ構造を作成する
  • Lint とフォーマットを追加する

セットアップのワークフロー

TypeScript のセットアップ

# TypeScript をインストールする
npm install --save-dev typescript @types/react @types/react-native

# tsconfig.json を作成する
npx tsc --init
{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true,
    "skipLibCheck": true,
    "jsx": "react-native"
  }
}

ディレクトリ構造

# feature-sliced architecture を作成する
mkdir -p src/{app,features,shared,db,theme}
mkdir -p src/shared/{components,hooks,utils,types}

データベースのセットアップ (SQLite + Drizzle)

# 依存関係をインストールする
npx expo install expo-sqlite
npm install drizzle-orm
npm install --save-dev drizzle-kit

# 構造を作成する
mkdir -p src/db/{schema,migrations}
// src/db/client.ts
import * as SQLite from 'expo-sqlite';
import { drizzle } from 'drizzle-orm/expo-sqlite';

const db = SQLite.openDatabaseSync('app.db');
export const drizzle = drizzle(db);

状態管理 (Zustand)

npm install zustand
// src/shared/stores/useAppStore.ts
import { create } from 'zustand';

interface AppState {
  count: number;
  increment: () => void;
}

export const useAppStore = create<AppState>((set) => ({
  count: 0,
  increment: () => set((state) => ({ count: state.count + 1 })),
}));

テストのセットアップ

npm install --save-dev jest @testing-library/react-native
// package.json
{
  "scripts": {
    "test": "jest"
  }
}

Lint とフォーマット

npm install --save-dev eslint prettier
npx eslint --init

構成ファイル

app.json (Expo の構成)

{
  "expo": {
    "name": "MyApp",
    "slug": "my-app",
    "version": "1.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "bundleIdentifier": "com.company.myapp"
    },
    "android": {
      "package": "com.company.myapp"
    }
  }
}

package.json のスクリプト

{
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "test": "jest",
    "lint": "eslint src/",
    "type-check": "tsc --noEmit"
  }
}

ベストプラクティス

  1. 段階的なセットアップ: 一度に 1 つのシステムをインストールして構成します。
  2. インストールの検証: 次に進む前に、各セットアップをテストします。
  3. 依存関係の確認: Expo SDK との互換性を確認します。
  4. Expo Install の使用: Expo パッケージの場合は、npx expo install を使用します。
  5. バージョン管理: セットアップが成功するたびにコミットします。

一般的なタスク

新しい依存関係の追加

# Expo SDK パッケージかどうかを確認する
npx expo install package-name

# それ以外の場合は npm を使用する
npm install package-name

新しいフィーチャーモジュールの作成

mkdir -p src/features/my-feature/{components,hooks,services,types}
touch src/features/my-feature/index.ts

データベースのマイグレーションの生成

npx drizzle-kit generate:sqlite
npx drizzle-kit push:sqlite

検証チェックリスト

セットアップ後、以下を確認してください。

  • [ ] TypeScript がエラーなしでコンパイルされる (npx tsc --noEmit)
  • [ ] アプリが iOS と Android の両方で実行される
  • [ ] テストが正常に実行される (npm test)
  • [ ] Lint がパスする (npm run lint)
  • [ ] データベースが接続され、クエリが機能する
  • [ ] 状態管理が正しく機能する

リソース

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Project Setup & Architecture

Guide for setting up React Native/Expo project infrastructure.

When to Use

  • Initializing TypeScript configuration
  • Setting up database layer
  • Configuring state management
  • Installing and configuring testing
  • Creating directory structure
  • Adding linting and formatting

Setup Workflows

TypeScript Setup

# Install TypeScript
npm install --save-dev typescript @types/react @types/react-native

# Create tsconfig.json
npx tsc --init
{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true,
    "skipLibCheck": true,
    "jsx": "react-native"
  }
}

Directory Structure

# Create feature-sliced architecture
mkdir -p src/{app,features,shared,db,theme}
mkdir -p src/shared/{components,hooks,utils,types}

Database Setup (SQLite + Drizzle)

# Install dependencies
npx expo install expo-sqlite
npm install drizzle-orm
npm install --save-dev drizzle-kit

# Create structure
mkdir -p src/db/{schema,migrations}
// src/db/client.ts
import * as SQLite from 'expo-sqlite';
import { drizzle } from 'drizzle-orm/expo-sqlite';

const db = SQLite.openDatabaseSync('app.db');
export const drizzle = drizzle(db);

State Management (Zustand)

npm install zustand
// src/shared/stores/useAppStore.ts
import { create } from 'zustand';

interface AppState {
  count: number;
  increment: () => void;
}

export const useAppStore = create<AppState>((set) => ({
  count: 0,
  increment: () => set((state) => ({ count: state.count + 1 })),
}));

Testing Setup

npm install --save-dev jest @testing-library/react-native
// package.json
{
  "scripts": {
    "test": "jest"
  }
}

Linting & Formatting

npm install --save-dev eslint prettier
npx eslint --init

Configuration Files

app.json (Expo Configuration)

{
  "expo": {
    "name": "MyApp",
    "slug": "my-app",
    "version": "1.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "bundleIdentifier": "com.company.myapp"
    },
    "android": {
      "package": "com.company.myapp"
    }
  }
}

package.json Scripts

{
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "test": "jest",
    "lint": "eslint src/",
    "type-check": "tsc --noEmit"
  }
}

Best Practices

  1. Incremental Setup: Install and configure one system at a time
  2. Verify Installation: Test each setup before moving to next
  3. Check Dependencies: Ensure compatibility with Expo SDK
  4. Use Expo Install: For Expo packages, use npx expo install
  5. Version Control: Commit after each successful setup step

Common Tasks

Add New Dependency

# Check if it's an Expo SDK package
npx expo install package-name

# Otherwise use npm
npm install package-name

Create New Feature Module

mkdir -p src/features/my-feature/{components,hooks,services,types}
touch src/features/my-feature/index.ts

Generate Database Migration

npx drizzle-kit generate:sqlite
npx drizzle-kit push:sqlite

Verification Checklist

After setup, verify:

  • [ ] TypeScript compiles without errors (npx tsc --noEmit)
  • [ ] App runs on both iOS and Android
  • [ ] Tests run successfully (npm test)
  • [ ] Linting passes (npm run lint)
  • [ ] Database connects and queries work
  • [ ] State management functions correctly

Resources