なぜ作ったか
ポモドーロアプリ、探せば山ほど出てきます。でもどれもしっくり来なかった。
- 多機能すぎて、もはやタスク管理ツールになっている
- シンプルすぎて、ただ25分と5分を回すだけ
「自分にちょうどいい」って意外とない。
求めていたのは以下の2点だけ:
- ポモドーロを“意識せずに”自然に使えること
- 自分に合ったテンプレートを保存して呼び出せること
この2つに全振りして、Focus Wisp を作りました。初のFlutterアプリです。
アプリ概要
Focus Wisp(Android対応)
集中の流れを切らない、最小限の機能に絞ったポモドーロタイマー。
できること
ポモドーロタイマー
- スタート/リセットのみ
- 一時停止なし(途中で集中切れるくらいなら最初からやり直せ、という方針)
テンプレート管理
-
作業ジャンルごとにタイマー設定を保存
- 作業時間・休憩時間
- 通知のオン/オフ
- 今後:音楽/背景/テーマカラーなども追加予定
UIと体験
- シンプル設計で没入感重視
- Light/Dark モード対応
- ローカル通知対応
技術スタック
Flutter
Firebase (Firestore, Crashlytics, App Distribution)
Riverpod
shared_preferences
flutter_local_notifications
timezone
logger
mocktail
設計の概要
関係図
コアモデル設計
開発の道のり
Flutterもモバイルアプリも未経験の状態からスタート。
-
React Native + Expo を試すも、依存ライブラリ周りで挫折
-
Flutterに切り替え、YouTubeとAI(ChatGPT / Claude / Copilot)をフル活用
-
詰まったポイント:
- Androidの通知とバックグラウンド制御
- アーキテクチャ選定(Riverpod採用)
- 変数設計、命名の整理
- 外部APIやMockの切り分け(依存性注入の考え方)
今後の展望
やりたいことは山ほどある。
-
統計機能
- 総作業時間、テンプレート別の使用傾向など
-
Firebase Authでログイン機能
-
Windows対応
-
テンプレートごとの設定拡張
- 音楽/環境音/背景/テーマカラー
-
スマホとPC間のタイマー同期
- PCアプリ起動と同時にタイマー開始
- フォーカス切替でPush通知
スクリーンUI
- タイマー画面のスクショ

- テンプレート設定画面のスクショ

- ダイアログ画面のスクショ

最後に
まだアルファ版ですが、「自分に本当に必要だったもの」がようやく形になりました。
アプリ開発初心者でも二か月頑張ればそこそこの形のアプリを作ることができるんだなと実感しました。
すごい時代になったなと思います。
文章を読んでくださってありがとうございます。
この記事は私の書いた最初のQiita記事になります。
これからはアプリ開発で詰まったポイントやほかのアプリを開発しはじめたらまた記事を投稿しようと思います。
以下に私のアルファ版ポモドーロタイマーアプリFocus WispをApp distributionにて公開しているのでよろしければダウンロードお願いします。(Android限定です。またフィードバック機能は未実装です。なにかあればMailかQiita上で連絡をお願いします)
参考資料
(この記事に関するものだけではなくアプリ作成の上で参考にさせていただいた資料になります)
Qiita
Zen