取り組みの背景 — なぜ瞑想アプリを作るのか
ヘルスケア・ウェルネス分野のアプリは、App Store と Google Play の両方で安定した需要があるカテゴリです。特に瞑想・マインドフルネス系のアプリは、シンプルな機能構成でありながらユーザーの継続利用率が高く、個人開発者にとって理想的なジャンルと言えます。
プログラミング経験が浅い方でも、Rork の AI アシスタント機能を活用すれば、30分〜1時間ほどで基本機能が揃ったアプリを完成させることができます。
この記事で学べること:
- カウントダウンタイマーの実装
- 環境音(BGM)の再生制御
- セッション履歴の保存と表示
- 直感的なUI/UXの設計ポイント
前提知識と準備するもの
瞑想タイマーアプリを作り始める前に、以下を準備しましょう。
必要なもの:
- Rork アカウント(無料プランでも開発可能)
- Webブラウザ(Chrome推奨)
- アプリのイメージ(どんな瞑想体験を提供したいか)
あると望ましい知識:
- 基本的なアプリの画面構成(ホーム画面、設定画面など)
- React Native や Expo の基礎概念(なくても Rork が補完してくれます)
Rork の基本操作にまだ慣れていない方は、まず「Rork 入門ガイド」をご覧ください。
アプリの設計 — 画面構成を考える
最初に、瞑想タイマーアプリの画面構成を設計します。Rork でアプリを作るときは、最初に全体の画面構成を AI に伝えることで、スムーズに開発が進みます。
基本の3画面構成
- ホーム画面(タイマー): メインのカウントダウンタイマーと開始/停止ボタン
- 履歴画面: 過去の瞑想セッション記録の一覧
- 設定画面: タイマーの長さ、環境音の選択、通知設定
Rork への指示プロンプト例
Rork のチャットに以下のようなプロンプトを入力してみましょう。
瞑想タイマーアプリを作ってください。以下の機能を含めてください:
1. ホーム画面
- 円形のカウントダウンタイマー(プログレスリング表示)
- 5分、10分、15分、20分のプリセットボタン
- 開始/一時停止/リセットボタン
- 落ち着いた色合いのデザイン(ダークブルー系)
2. 履歴画面
- 日付、瞑想時間、完了/中断の記録
- 週間の瞑想時間合計を表示
3. 設定画面
- タイマーの長さをカスタム設定
- 終了時のサウンド選択(ベル、チャイム、なし)
ナビゲーションはボトムタブを使用してください。
カラーテーマは落ち着いたダークブルー+ホワイトでお願いします。このプロンプトを入力するだけで、Rork が画面構成・ナビゲーション・コンポーネントを自動生成してくれます。
カウントダウンタイマーの実装
瞑想アプリの中心となるタイマー機能を順を追って説明します。Rork が生成するコードをベースに、必要に応じてカスタマイズします。
タイマーロジックの基本
// タイマーの状態管理(Rork が生成するコードの例)
import { useState, useEffect, useRef } from 'react';
const useMeditationTimer = (initialMinutes: number) => {
const [timeLeft, setTimeLeft] = useState(initialMinutes * 60);
const [isRunning, setIsRunning] = useState(false);
const intervalRef = useRef<NodeJS.Timeout | null>(null);
useEffect(() => {
if (isRunning && timeLeft > 0) {
intervalRef.current = setInterval(() => {
setTimeLeft((prev) => prev - 1);
}, 1000);
} else if (timeLeft === 0) {
// タイマー終了時の処理
setIsRunning(false);
// 完了サウンドを再生
// セッション記録を保存
}
return () => {
if (intervalRef.current) clearInterval(intervalRef.current);
};
}, [isRunning, timeLeft]);
// 分:秒 形式にフォーマット
const formatTime = () => {
const minutes = Math.floor(timeLeft / 60);
const seconds = timeLeft % 60;
return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
};
return { timeLeft, isRunning, setIsRunning, setTimeLeft, formatTime };
};円形プログレスの表示
タイマーの残り時間を視覚的に表現する円形プログレスリングは、瞑想アプリのUI において重要な要素です。Rork に「円形のプログレスバーでタイマーを表示して」と指示すると、react-native-svg を使った実装を自動生成してくれます。
// 円形プログレスの計算例
// progress: 0(開始)〜 1(終了)
const progress = 1 - (timeLeft / totalTime);
const circumference = 2 * Math.PI * radius;
const strokeDashoffset = circumference * (1 - progress);
// → SVG の circle 要素に適用環境音の再生機能を追加する
瞑想中に流れる環境音(アンビエントサウンド)は、ユーザー体験を大きく向上させます。
Rork への追加プロンプト例
タイマー画面に環境音の再生機能を追加してください:
- 選択肢:雨の音、波の音、鳥のさえずり、無音
- タイマー開始と同時に再生、終了で停止
- 音量調整スライダーを追加
- expo-av を使って実装してくださいサウンド再生の基本コード
// expo-av を使った環境音再生(Rork 生成コードの例)
import { Audio } from 'expo-av';
const sounds = {
rain: require('../assets/sounds/rain.mp3'),
waves: require('../assets/sounds/waves.mp3'),
birds: require('../assets/sounds/birds.mp3'),
};
const playAmbientSound = async (soundKey: string) => {
const { sound } = await Audio.Sound.createAsync(
sounds[soundKey],
{
isLooping: true, // ループ再生
volume: 0.5, // 初期音量
}
);
return sound;
};Rork を使えば、こうした音声再生の実装も「環境音を追加して」と指示するだけで自動的にセットアップしてくれます。
セッション履歴の保存と表示
瞑想の継続を促すために、セッション履歴の記録機能は欠かせません。
データの保存方法
Rork で作るアプリでは、AsyncStorage を使ってローカルにデータを保存するのが最もシンプルです。
// セッションデータの型定義
interface MeditationSession {
id: string;
date: string; // ISO 8601 形式
duration: number; // 秒数
completed: boolean; // 完了したかどうか
soundUsed: string; // 使用した環境音
}
// セッション保存の例
import AsyncStorage from '@react-native-async-storage/async-storage';
const saveSession = async (session: MeditationSession) => {
const existing = await AsyncStorage.getItem('meditation_sessions');
const sessions = existing ? JSON.parse(existing) : [];
sessions.push(session);
await AsyncStorage.setItem('meditation_sessions', JSON.stringify(sessions));
};履歴画面の表示
Rork に以下のように指示して、履歴画面をデザインしましょう。
履歴画面を改善してください:
- セッションを日付ごとにグループ化して表示
- 各セッションに瞑想時間と完了アイコンを表示
- 画面上部に「今週の合計瞑想時間」をカード形式で表示
- 連続日数(ストリーク)のバッジを追加連続日数(ストリーク)の表示は、ユーザーのモチベーション維持に非常に効果的です。ゲーミフィケーション要素として取り入れると、アプリの継続利用率が向上します。
UI/UXのブラッシュアップポイント
瞑想アプリでは、視覚的な落ち着きと直感的な操作性が特に重要です。以下のポイントを意識してデザインを調整しましょう。
カラーパレット
瞑想アプリに適したカラーパレットの一例です。
| 用途 | カラー | 説明 |
|---|---|---|
| 背景 | #0D1B2A | 深いネイビー |
| メインテキスト | #E0E1DD | 柔らかいホワイト |
| アクセント | #415A77 | 落ち着いたブルー |
| プログレスリング | #778DA9 | ライトブルーグレー |
| ボタン(開始) | #1B9AAA | ティールグリーン |
アニメーション
タイマーの開始・終了時に、ゆるやかなフェードイン/アウトのアニメーションを加えると、アプリ全体の雰囲気がぐっと良くなります。Rork に「タイマー開始時にふわっとしたアニメーションを追加して」と伝えるだけで実装可能です。
まとめ — 瞑想アプリから始めるアプリ開発
瞑想タイマーアプリは、シンプルでありながら実用的で、アプリ開発の基本要素(タイマー、データ保存、音声再生、UI デザイン)を幅広く学べるプロジェクトです。
Rork を使えば、プロンプトを工夫するだけで本格的なアプリを短時間で形にできます。まずは基本機能を実装してみて、そこから環境音の追加やストリーク機能など、ステップバイステップで機能を拡張していくのがおすすめです。
完成したアプリをさらに磨き上げたい方は、「Rork アプリのUI品質を高めるデザインテクニック」も参考にしてみてください。
ヘルスケア分野のアプリは需要が安定しており、マネタイズの選択肢も豊富です。ぜひこの記事をきっかけに、あなただけの瞑想アプリを作ってみましょう。