無料で始めるモバイルアプリ開発 — Stitch × Rork の民主化
2026年、アプリ開発の敷居は劇的に低くなりましました。Google Stitch(無料)の Vibe Design でアプリ UI を直感的に設計し、Rork でネイティブアプリに自動変換する「ノーコード・ローコード」なワークフローが実現したのです。本記事は、デザイン経験のない初心者向けに、実装から公開まで、完全なステップバイステップガイドです。
Google Stitch とは何か
Stitch の概要
Google Stitch は無料の AI ネイティブ無限キャンバスプラットフォームです。Figma のようなデザインツールではなく、より創造的で自由度の高い環境で、テキストやスケッチから AI が自動的に洗練された UI を生成します。
Google Stitch の特徴:
✓ 完全無料(Google アカウントで即開始)
✓ ブラウザベース(インストール不要)
✓ AI による自動デザイン生成
✓ Vibe Design(感覚的な設計)
✓ Voice Canvas(音声指定)
✓ アプリエクスポート対応
✓ チーム協作機能
Stitch の始め方
# Step 1: Google Stitch にアクセス
https://stitch.google.com
# Step 2: Google アカウントでログイン
# (Gmail アカウント等で可能)
# Step 3: 新規プロジェクト作成
# → "Mobile App UI" テンプレートを選択Vibe Design — 直感的なアプリ UI 設計
Vibe Design とは
Vibe Design は、言葉や簡単なスケッチを入力すると、AI が自動的に洗練された UI デザインを生成する機能です。デザイナーでなくても、プロ品質の UI が作れます。
実践例 1: タスク管理アプリ
Step 1: Vibe Design でコンセプト入力
Stitch の Vibe Design に以下のテキストを入力:
「シンプルなタスク管理アプリ。
画面上部に「今日のタスク」というタイトル。
その下に新規タスク追加用の入力フィールド(プラスボタン付き)。
メイン領域にタスク一覧。
各タスクは完了/未完了の チェックボックス付き。
カラースキームは、青と白のミニマルなデザイン。
フォントはモダンで見やすいもの。」
Step 2: AI が自動生成
Stitch の AI がこのテキストから以下を自動生成:
- 高精度な UI レイアウト
- カラースキーム(青と白のパレット)
- タイポグラフィ設定
- コンポーネント構成
- インタラクション仕様
Step 3: 生成されたデザインの確認
生成結果:
✓ ヘッダー: "今日のタスク" タイトル + 日付表示
✓ 入力フィールド: 新規タスク追加 + プラスボタン
✓ タスクリスト: スクロール可能なリスト表示
✓ タスクアイテム: チェックボックス + テキスト + 削除ボタン
✓ 色: 青を基調にした爽やかなパレット
✓ フォント: San Francisco(iOS互換)
✓ アニメーション: スムーズなトランジション
実践例 2: フィットネストラッキングアプリ
Vibe Design プロンプト:
「フィットネストラッキングアプリを設計してください。
上部に本日の歩数をゲージ表示(10,000歩目標)。
中央に達成度を円グラフで表示。
下部に過去7日間の活動をミニグラフで表示。
配色はオレンジとグレーの組み合わせ。
スポーツウォッチのような洗練された見た目。」
生成結果: 高精度なフィットネスアプリ UI
- ゲージコンポーネント(スムーズアニメーション)
- 円グラフ(達成度表示)
- 7日間の活動グラフ
- オレンジ×グレーのモダンカラースキーム
- Apple Watch 互換のデザイン
Voice Canvas — 音声でのアプリ設計
Voice Canvas の使い方
デザイナーでない人でも、音声で指示するだけで AI が UI を生成します。
# Step 1: Stitch で "Voice Canvas" を選択
# Step 2: マイクボタンをクリック
# Step 3: 音声で指示を入力
音声指示例(日本語対応):
「買い物リストアプリ。
上部に買い物リストのタイトル。
中央に買い物アイテムの一覧。
各アイテムに値段と数量を表示。
右側にチェックボックス。
下部に合計金額。
背景は白で、テキストは黒。」
# Step 4: 数秒後に自動デザイン生成Voice Canvas により、スマートフォンから直感的に UI 設計が可能です。
Stitch から Rork への連携
デザインのエクスポート
# Step 1: Stitch で作成したデザインを選択
# Step 2: メニューから "Export for Mobile App" を選択
# Step 3: エクスポート形式を選択
# → "Rork Format" を選択
# 自動的に以下が生成される:
# ✓ コンポーネント JSON
# ✓ デザイントークン(色、フォント)
# ✓ インタラクション定義
# ✓ API スキーマ(オプション)エクスポートされるファイル構成
stitch-export-01/
├── design.json # デザイン構造
├── components/
│ ├── Header.json
│ ├── TaskInput.json
│ ├── TaskList.json
│ └── TaskItem.json
├── tokens/
│ ├── colors.json
│ ├── typography.json
│ └── spacing.json
├── interactions.json # クリック動作等
└── README.md # 説明書
Rork へのインポートと実装
Rork の基本操作
Rork はネイティブモバイルアプリ(iOS/Android)を簡単に開発できるプラットフォームです。Stitch から書き出したデザインを直接インポートできます。
# Step 1: Rork にアクセス
https://rork.dev
# Step 2: Google アカウントでサインアップ
# Step 3: "Import from Stitch" を選択Stitch デザインのインポート
# Stitch から生成したファイルをアップロード
rork import --source=stitch-export-01/design.json
# 自動的に以下が行われる:
# ✓ コンポーネント構造を解析
# ✓ React Native コンポーネント を生成
# ✓ デザイントークンを適用
# ✓ インタラクションロジックを設定自動生成されたコンポーネント
// src/components/TaskItem.tsx
// Rork が Stitch のデザインから自動生成
import React from 'react';
import { View, Text, Pressable, CheckBox } from 'react-native';
import styled from 'styled-components/native';
import { DesignTokens } from '@/tokens';
interface TaskItemProps {
id: string;
title: string;
completed: boolean;
onToggle: (id: string) => void;
onDelete: (id: string) => void;
}
const Container = styled.View`
flex-direction: row;
align-items: center;
padding: ${DesignTokens.spacing.md};
border-bottom-width: 1px;
border-bottom-color: ${DesignTokens.colors.divider};
`;
const TaskText = styled.Text<{ completed: boolean }>`
flex: 1;
font-family: ${DesignTokens.typography.body.font};
font-size: ${DesignTokens.typography.body.size};
color: ${props =>
props.completed
? DesignTokens.colors.textDisabled
: DesignTokens.colors.text};
text-decoration-line: ${props => (props.completed ? 'line-through' : 'none')};
margin-left: ${DesignTokens.spacing.md};
`;
const DeleteButton = styled.Pressable`
padding: ${DesignTokens.spacing.sm};
`;
export const TaskItem: React.FC<TaskItemProps> = ({
id,
title,
completed,
onToggle,
onDelete
}) => {
return (
<Container>
<CheckBox
value={completed}
onValueChange={() => onToggle(id)}
/>
<TaskText completed={completed}>{title}</TaskText>
<DeleteButton onPress={() => onDelete(id)}>
<Text>削除</Text>
</DeleteButton>
</Container>
);
};Rork でのロジック実装
ビジネスロジックの追加
Stitch のデザインは自動的に UI になりますが、実際の動作を実装する必要があります。Rork では簡単にロジックを追加できます。
// src/screens/TaskManagerScreen.tsx
// Stitch のデザイン + Rork でのロジック実装
import React, { useState } from 'react';
import { View, Text, FlatList } from 'react-native';
import { TaskInput } from '@/components/TaskInput';
import { TaskList } from '@/components/TaskList';
import { TaskItem } from '@/components/TaskItem';
interface Task {
id: string;
title: string;
completed: boolean;
createdAt: Date;
}
export const TaskManagerScreen: React.FC = () => {
const [tasks, setTasks] = useState<Task[]>([]);
const [inputValue, setInputValue] = useState('');
// 新規タスク追加
const addTask = (title: string) => {
if (title.trim()) {
const newTask: Task = {
id: Date.now().toString(),
title: title.trim(),
completed: false,
createdAt: new Date()
};
setTasks([...tasks, newTask]);
setInputValue('');
}
};
// タスク完了/未完了切り替え
const toggleTask = (id: string) => {
setTasks(
tasks.map(task =>
task.id === id ? { ...task, completed: !task.completed } : task
)
);
};
// タスク削除
const deleteTask = (id: string) => {
setTasks(tasks.filter(task => task.id !== id));
};
// 本日のタスク(完了していない)
const todaysTasks = tasks.filter(task => !task.completed);
const completedCount = tasks.filter(task => task.completed).length;
return (
<View style={{ flex: 1, backgroundColor: '#fff' }}>
{/* ヘッダー */}
<View style={{ padding: 16 }}>
<Text style={{ fontSize: 24, fontWeight: 'bold' }}>今日のタスク</Text>
<Text style={{ fontSize: 14, color: '#999' }}>
完了: {completedCount}/{tasks.length}
</Text>
</View>
{/* 入力フィールド */}
<TaskInput
value={inputValue}
onChange={setInputValue}
onAddTask={addTask}
/>
{/* タスク一覧 */}
<FlatList
data={todaysTasks}
keyExtractor={item => item.id}
renderItem={({ item }) => (
<TaskItem
id={item.id}
title={item.title}
completed={item.completed}
onToggle={toggleTask}
onDelete={deleteTask}
/>
)}
/>
</View>
);
};Rork Max による高度な機能
Rork Max とは
Rork Max は有料プランで、AI による自動最適化、クラウドバックエンド、プッシュ通知など、エンタープライズ機能が利用できます。
# Rork Max で以下が可能:
✓ Firebase/Supabase 自動連携
✓ プッシュ通知機能
✓ 分析トラッキング
✓ A/B テスト機能
✓ ユーザー認証(Apple/Google ログイン)
✓ クラッシュレポート
✓ パフォーマンス監視Rork Max での Supabase 連携
// Rork Max: Supabase バックエンド自動連携
import { useRorkSupabase } from 'rork/supabase';
const useTaskDatabase = () => {
const { supabase } = useRorkSupabase();
// Supabase にタスクを保存
const saveTask = async (task: Task) => {
const { data, error } = await supabase
.from('tasks')
.insert([
{
title: task.title,
completed: task.completed,
created_at: task.createdAt
}
]);
if (error) throw error;
return data;
};
// Supabase からタスクを取得
const fetchTasks = async () => {
const { data, error } = await supabase
.from('tasks')
.select('*')
.order('created_at', { ascending: false });
if (error) throw error;
return data;
};
return { saveTask, fetchTasks };
};ステップバイステップ実装ガイド
実践例: タスク管理アプリ完全版
# 全体のワークフロー
[1] Google Stitch で UI 設計 (15 分)
↓
[2] Stitch から Rork に export (1 分)
↓
[3] Rork でコンポーネント生成 (自動)
↓
[4] React Native ロジック実装 (30 分)
↓
[5] テスト実行 (10 分)
↓
[6] iOS/Android ビルド (10 分)
↓
[7] シミュレーターで動作確認 (5 分)
↓
[8] App Store/Google Play 申請 (5 分)
総計: 約 76 分実装チェックリスト
Google Stitch:
☐ Google アカウント作成
☐ Stitch にアクセス
☐ Vibe Design で UI 設計
☐ Voice Canvas で調整(オプション)
☐ "Export for Mobile App" をクリック
☐ デザイン JSON をダウンロード
Rork インポート:
☐ Rork にアクセス
☐ "Import from Stitch" を選択
☐ デザイン JSON をアップロード
☐ コンポーネント生成を確認
☐ プレビューで UI 確認
ロジック実装:
☐ State 管理(useState)を設定
☐ イベントハンドラー実装
☐ ビジネスロジック追加
☐ エラーハンドリング実装
テスト・ビルド:
☐ npm run test 実行
☐ iOS シミュレーター確認
☐ Android エミュレーター確認
☐ ビルド最適化
☐ App Store/Google Play 申請
初心者向けトラブルシューティング
よくある問題と解決策
Q1: Stitch で生成したデザインが気に入らない
A: Voice Canvas や追加のテキストプロンプトで再生成可能
Stitch メニュー → "Regenerate Design"
Q2: インポート後にエラーが出た
A: Stitch エクスポート形式を確認
"Rork Format" で再度エクスポート
Q3: コンポーネントが反応しない
A: onPress/onChange イベントハンドラーが未実装の可能性
TaskInput 等の入力コンポーネントに handlers を追加
Q4: App Store 申請が通らない
A: 一般的な理由:
- プライバシーポリシーが不足
- テストアカウント情報が不足
- スクリーンショットが低品質
無料リソース・コミュニティ
学習リソース:
- Google Stitch 公式チュートリアル
- Rork デベロッパードキュメント
- YouTube: "Stitch × Rork 完全ガイド"
コミュニティ:
- Rork Developer Discord
- Google Stitch ユーザーフォーラム
- GitHub: rork-examples(テンプレート集)
次のステップ
Stitch × Rork でアプリが完成したら:
- マネタイズ: App Store/Google Play で有料・無料公開
- プロモーション: SNS で宣伝、レビュー募集
- 改善: ユーザーフィードバックに基づいて更新
- スケーリング: Rork Max で高度な機能を追加
全体を振り返って
Google Stitch と Rork の組み合わせにより、デザイン経験のない初心者でも、数時間でプロ品質のモバイルアプリが作れるようになりましました。Vibe Design による直感的な UI 設計、Voice Canvas による音声指定、Rork の自動コード生成により、アプリ開発の民主化が進んでいます。
あなたのアイデアを、今日からアプリにしてみませんか?