はじめに
「Python3エンジニア認定基礎試験」の勉強をしようと思ったとき、スキマ時間にサクッと問題を解けるアプリがあったら便利だな、と思いました。
せっかくなら自分で作ってしまおうということで、Flutterで開発してiOS/Android両方にリリースしました。
この記事では、開発の経緯や技術的なポイント、リリースまでの流れを紹介します。
作ったアプリ
Python基礎 - 資格試験対策
- 160問以上の練習問題を収録
- 単元別学習 / 模擬試験モード
- 学習進捗・弱点分析
- 完全オフライン対応
- 無料で利用可能
技術スタック
| カテゴリ | 技術 |
|---|---|
| フレームワーク | Flutter |
| 状態管理 | Riverpod |
| ローカルDB | Hive |
| デザイン | Material 3 |
開発で工夫したポイント
1. オフライン完全対応
資格勉強は通勤中にやることが多いので、電波がなくても使えることを重視しました。
問題データはすべてローカルに保持し、Hiveで学習進捗を管理しています。
// Hiveでの進捗保存例
final box = await Hive.openBox('progress');
await box.put('unit_$unitId', {
'completed': true,
'score': score,
'timestamp': DateTime.now().toIso8601String(),
});
2. Riverpodで状態管理をシンプルに
クイズの状態(現在の問題、選択肢、正誤判定)をRiverpodで一元管理することで、UIとロジックを分離しました。
final quizProvider = StateNotifierProvider<QuizNotifier, QuizState>((ref) {
return QuizNotifier();
});
3. 弱点分析機能
間違えた問題を記録し、苦手な単元を可視化する機能を実装しました。
ユーザーが「どこを重点的に復習すべきか」が一目でわかるようになっています。
リリースまでの道のり
App Store審査
Appleの審査は1回で通過しました。教育アプリとしての価値が明確だったのが良かったのかもしれません。
ポイントとして意識したこと:
- プライバシーポリシーの用意
- スクリーンショットの品質
- アプリの説明文を丁寧に記載
Google Play審査
こちらも特に問題なく通過。Flutterのおかげで両プラットフォーム同時にリリースできたのは大きかったです。
今後の予定
- 問題数の追加(200問以上を目指す)
- ユーザーからのフィードバック反映
おわりに
「自分が欲しいアプリを自分で作る」というのは、開発者の特権だなと改めて感じました。
同じようにPython資格の勉強をしている方、Flutterでアプリ開発をしている方の参考になれば嬉しいです。
もしよければ使ってみてください!
ダウンロード
iOS(App Store)
https://apps.apple.com/jp/app/id6755055488?pt=126702707&ct=qiita&mt=8
Android(Google Play)
https://play.google.com/store/apps/details?id=com.osakaworks.pythonbasicsapp&utm_source=qiita&utm_medium=article&utm_campaign=launch
質問やフィードバックがあればコメントください 🙌