project-setup-architecture
Set up project infrastructure including TypeScript, database, state management, navigation, and testing. Use when initializing new features or configuring development environment.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
project-setup-architecture.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
project-setup-architectureフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 つのシステムをインストールして構成します。
- インストールの検証: 次に進む前に、各セットアップをテストします。
- 依存関係の確認: Expo SDK との互換性を確認します。
- Expo Install の使用: Expo パッケージの場合は、
npx expo installを使用します。 - バージョン管理: セットアップが成功するたびにコミットします。
一般的なタスク
新しい依存関係の追加
# 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
- Incremental Setup: Install and configure one system at a time
- Verify Installation: Test each setup before moving to next
- Check Dependencies: Ensure compatibility with Expo SDK
- Use Expo Install: For Expo packages, use
npx expo install - 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