RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/Rork入門
Rork入門/2026-03-23初級

Rorkでポモドーロタイマーアプリを作る完全チュートリアル

Rorkを使ってポモドーロタイマーアプリを作る方法をステップバイステップで解説。タイマー機能、セッション管理、UIアニメーションの実装まで、初心者でも30分で完成できます。

Rork515ポモドーロタイマーアプリチュートリアル23React Native209状態管理11

ポモドーロタイマーアプリを Rork で作ってみよう

集中力を高めるテクニックとして世界中で人気のポモドーロ・テクニック。25分間集中して5分休憩するというシンプルなサイクルを繰り返すだけで、驚くほど生産性が上がります。

ここではRork を使ってポモドーロタイマーアプリをゼロから作る方法をステップバイステップで解説します。プログラミング経験がなくても大丈夫です。Rork の AI がコードを自動生成してくれるので、アプリのアイデアと完成イメージを伝えるだけで、実用的なタイマーアプリが完成します。

このチュートリアルで学べること:

  • Rork でのプロジェクト作成と基本操作
  • カウントダウンタイマーの実装方法
  • セッション(作業・休憩)の自動切替ロジック
  • 円形プログレスバーによる視覚的フィードバック
  • 効果音・バイブレーションによる通知

前提知識と環境準備

必要なもの

  • Rork アカウント(無料プランでも作成可能)
  • ブラウザ(Chrome / Safari 推奨)
  • 動作確認用のスマートフォン(iOS / Android どちらでもOK)

Rork の基本をおさらい

Rork は AI を搭載したアプリ開発プラットフォームです。自然言語でアプリの機能を伝えるだけで、React Native ベースのクロスプラットフォームアプリを自動生成してくれます。まだ Rork を使ったことがない方は、先に入門ガイドを読んでおくとスムーズです。

Step 1: プロジェクトを作成する

Rork のダッシュボードで「New Project」をクリックし、以下のプロンプトを入力します:

ポモドーロタイマーアプリを作成してください。
 
機能要件:
- 25分の作業タイマーと5分の休憩タイマー
- 長い休憩(15分)を4セッションごとに挿入
- 開始・一時停止・リセットボタン
- 円形プログレスバーで残り時間を表示
- セッション完了時にバイブレーション通知
- 完了したセッション数のカウント表示
- ダークモード対応のシンプルなUI

Rork の AI がこのプロンプトを解釈し、アプリの画面構成とコードを自動生成します。生成されたプレビューを確認して、ベースとなるアプリが正しく動作しているか確認しましょう。

Step 2: タイマーのコアロジックを理解する

Rork が生成するタイマーのコアロジックは、React Native の useEffectsetInterval を使ったカウントダウン処理です。ここでは生成されるコードの仕組みを理解しておきましょう。

// タイマーのコアロジック(Rork が自動生成)
import { useState, useEffect, useRef } from 'react';
 
const useTimer = (initialMinutes: number) => {
  const [seconds, setSeconds] = useState(initialMinutes * 60);
  const [isRunning, setIsRunning] = useState(false);
  const intervalRef = useRef<NodeJS.Timeout | null>(null);
 
  useEffect(() => {
    if (isRunning && seconds > 0) {
      intervalRef.current = setInterval(() => {
        setSeconds((prev) => prev - 1);
      }, 1000);
    }
    return () => {
      if (intervalRef.current) clearInterval(intervalRef.current);
    };
  }, [isRunning, seconds]);
 
  // 残り時間を mm:ss 形式に変換
  const formatTime = () => {
    const mins = Math.floor(seconds / 60);
    const secs = seconds % 60;
    return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
  };
 
  return { seconds, isRunning, setIsRunning, setSeconds, formatTime };
};
 
// 期待する出力例:
// formatTime() → "25:00"(開始時)
// formatTime() → "24:59"(1秒後)
// formatTime() → "00:00"(終了時)

このカスタムフックが、タイマーの状態管理を担当します。isRunningtrue の間、1秒ごとに seconds をデクリメントしていく仕組みです。

Step 3: セッション管理を追加する

ポモドーロ・テクニックでは、作業セッションと休憩セッションを交互に繰り返します。Rork のチャットで以下のように指示を追加しましょう:

セッション管理を改善してください。
 
- 作業セッション(25分)完了後、自動的に休憩セッション(5分)に切り替え
- 4回の作業セッション完了後は、長い休憩(15分)に切り替え
- 現在のセッション種別(作業/短い休憩/長い休憩)を画面上部に表示
- セッション完了数を「🍅 × 3」のようなトマトアイコンで表示

Rork が生成するセッション管理のロジックは以下のようになります:

// セッション管理ロジック
type SessionType = 'work' | 'shortBreak' | 'longBreak';
 
interface PomodoroState {
  sessionType: SessionType;
  completedSessions: number;
  totalWorkMinutes: number;
}
 
const getNextSession = (state: PomodoroState): SessionType => {
  if (state.sessionType !== 'work') {
    return 'work'; // 休憩後は必ず作業セッション
  }
  // 4セッションごとに長い休憩
  return (state.completedSessions + 1) % 4 === 0
    ? 'longBreak'
    : 'shortBreak';
};
 
const getSessionDuration = (type: SessionType): number => {
  switch (type) {
    case 'work': return 25;
    case 'shortBreak': return 5;
    case 'longBreak': return 15;
  }
};
 
// 期待する出力例:
// getNextSession({ sessionType: 'work', completedSessions: 2, ... })
//   → 'shortBreak'
// getNextSession({ sessionType: 'work', completedSessions: 3, ... })
//   → 'longBreak'
// getNextSession({ sessionType: 'shortBreak', completedSessions: 3, ... })
//   → 'work'

Step 4: 円形プログレスバーを実装する

タイマーアプリの見た目を大きく左右するのが、プログレスバーのデザインです。Rork に以下のように指示して、円形プログレスバーを追加しましょう:

タイマーの表示を円形プログレスバーに変更してください。
 
- SVGで円形のプログレスリングを描画
- 残り時間に応じてリングが減っていくアニメーション
- 作業セッションは赤系(#FF6B6B)、休憩セッションは緑系(#51CF66)
- リングの中央に残り時間を大きく表示
- スムーズなアニメーション(1秒ごとに滑らかに遷移)

円形プログレスバーは SVG の strokeDashoffset プロパティを使って実現します。Rork はこのような UI コンポーネントも AI で自動生成してくれるため、SVG の知識がなくても心配ありません。アプリの見た目にこだわりたい方は、Rork アニメーションガイドも参考にしてください。

Step 5: 通知とフィードバックを追加する

セッション完了をユーザーに知らせる通知機能は、ポモドーロアプリの重要な要素です:

セッション完了時の通知を追加してください。
 
- バイブレーション(Haptics)でセッション完了を通知
- 完了時に短い効果音を再生
- セッション種別に応じて異なるバイブレーションパターン
  - 作業完了: 長め(成功パターン)
  - 休憩完了: 短め(再開パターン)

Rork は Expo の expo-haptics モジュールを使って、以下のようなバイブレーション制御コードを生成します:

import * as Haptics from 'expo-haptics';
 
// セッション完了時のフィードバック
const onSessionComplete = async (sessionType: SessionType) => {
  if (sessionType === 'work') {
    // 作業完了: 成功パターン
    await Haptics.notificationAsync(
      Haptics.NotificationFeedbackType.Success
    );
  } else {
    // 休憩完了: 軽いタップ
    await Haptics.impactAsync(
      Haptics.ImpactFeedbackStyle.Light
    );
  }
};
 
// 期待する動作:
// 作業セッション完了時 → 強めのバイブレーション
// 休憩セッション完了時 → 軽いバイブレーション

Step 6: UI を仕上げる

最後に、アプリ全体の見た目を整えます。Rork に以下の指示を出して、仕上げましょう:

UIを仕上げてください。
 
- ダークモード対応(背景: #1A1A2E、テキスト: #EAEAEA)
- セッション切替時にフェードアニメーション
- 下部に統計情報を表示(今日の合計作業時間、完了セッション数)
- フォントはシステムフォント(太字)で時間を大きく表示
- 開始ボタンは丸型、一時停止とリセットは小さめに配置

これでポモドーロタイマーアプリの主要機能が完成です。Rork のプレビュー機能で実際にタイマーを動かして、期待通りに動作するか確認しましょう。

よくあるエラーと対処法

タイマーがバックグラウンドで止まる

React Native のアプリはバックグラウンドに移行すると setInterval が停止します。これは仕様上の制限ですが、Rork に「バックグラウンドでもタイマーが正確に動作するようにしてください」と指示すれば、Date.now() を使った経過時間計算方式に切り替えてくれます。

プログレスバーがカクつく

アニメーションの描画が重い場合は、useNativeDriver: true オプションを有効にするよう Rork に指示してください。ネイティブドライバーを使うことで、JS スレッドとは別にアニメーションが処理され、滑らかな表示になります。

セッション数がリセットされてしまう

アプリを閉じるとステートが失われます。「AsyncStorage を使ってセッション数を永続化してください」と Rork に指示すれば、アプリを再起動しても記録が保持されるようになります。

応用: さらに機能を追加するには

基本のポモドーロタイマーが完成したら、以下の機能を追加してアプリをさらにレベルアップさせましょう:

  • タスクリスト連携: 作業セッションごとにタスクを紐づけて、何に集中したかを記録します。タスク管理の基本はToDoアプリのチュートリアルを参考にしてください。
  • 統計ダッシュボード: 日別・週別の作業時間をグラフで表示する
  • カスタムタイマー設定: 作業時間と休憩時間をユーザーが自由に変更できるようにする
  • ホワイトノイズ再生: 作業中にBGMやホワイトノイズを再生する機能を追加する

全体を振り返って

このチュートリアルでは、Rork を使ってポモドーロタイマーアプリをゼロから作成する方法を解説しました。タイマーのコアロジック、セッション管理、円形プログレスバー、通知機能と、実用的なアプリに必要な要素を一通りカバーしています。

Rork の AI アプリ開発なら、自然言語の指示だけでこれだけの機能を実装できます。まずはこのチュートリアルの通りに作ってみて、慣れてきたら自分だけのカスタマイズを加えてみてください。ポモドーロ・テクニックを実践しながら、Rork でのアプリ開発スキルも一緒に磨いていきましょう。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Rork 入門2026-04-19
Rorkで服薬管理アプリを作る — 毎日の薬を飲み忘れないための仕組みをAIで実装する
Rorkを使って服薬管理アプリを作る手順を解説します。薬の登録・服用チェック・リマインダー通知・家族共有まで、プログラミング知識なしで実装できる実践ガイドです。
Rork 入門2026-04-19
Rork で旅行計画アプリを作る — 行き先・スケジュール・持ち物リストを1つに
Rork を使って旅行計画アプリを作るチュートリアルです。行き先一覧・日程スケジュール・持ち物チェックリストを1アプリに統合する方法をプロンプト例とともに解説します。
Rork 入門2026-03-31
Rork で作る睡眠トラッカーアプリ完全チュートリアル — 就寝・起床時刻の記録から睡眠スコア分析まで
Rork を使って睡眠トラッカーアプリを作る完全チュートリアル。就寝・起床時刻の記録、睡眠スコア計算、グラフ表示まで、初心者でも30分で動くアプリが完成します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →