「心配性の彼女から何度も連絡が来るアプリ」の開発経緯まとめ
1. 企画のきっかけ
今回作ろうとしたのは、
「心配性の彼女から何度も連絡が来る」
という状況をジョークとして再現する Android アプリです。
現実でもよくある
- 返信が遅れる
- 何度も通知が来る
といった体験を、
笑いと技術デモに変換できないかという発想が出発点でした。
2. アプリの概要
アプリのコンセプトはシンプルです。
- 「通知スタート」ボタンを押す
- 一定間隔で通知が繰り返し届く
- 内容は「心配性の彼女」っぽいメッセージ
- 「通知ストップ」で即座に止められる
通知・UI・ループ処理という
Android の基本要素を全部使う構成になっています。
3. 技術構成(ざっくり)
- 言語:Kotlin
- UI:XML(activity_main.xml)
- 処理:MainActivity
- 機能:
- NotificationChannel(Android 8以降対応)
- NotificationCompat
- Handler + Looper によるループ通知
初心者でも触れるけど、実務でも必須な要素を一通り含めています。
4. 実装中にハマったポイント①
「R が見つからない」問題
開発中、何度も出たエラーが:
Unresolved reference: R
これは
- レイアウトがあるのに
- ボタンIDも正しいのに
- コンパイルできない
という Android 初学者が必ず通る壁です。
5. 原因の正体
原因は Android Studio の新仕様でした。
- Manifest に
packageを書く → ❌(非推奨) - Gradle の
namespaceが正解の指定場所 → ⭕
つまり
Manifest と Gradle の役割が変わっていたことが原因でした。
6. 学び①(重要ポイント)
- 今の Android では
AndroidManifest.xmlではなくbuild.gradleのnamespaceが R の生成元
- パッケージ名
- フォルダ構造
- namespace
この 3点が一致していないと、R は生成されない
という仕組みを理解しました。
7. 実装中にハマったポイント②
「フォルダ構造が増殖する問題」
途中で
com.example.yandereappcom.example.yandereapp2
という 2つのパッケージが混在し、
Android Studio がどこを正とすべきか迷う状態になりました。
8. 学び②
- 不要なパッケージは削除する
- namespace と一致する場所に Activity を置く
- リファクタリングは IDE 任せにしない
「見た目が動いている」と「ビルドが正しい」は別物
ということを強く実感しました。
9. 最終的に完成したもの
- UI:
- 優しい配色
- シンプルな2ボタン構成
- 機能:
- 通知ループ
- 即停止
- タップでアプリに戻る
「心配性の彼女から連絡が止まらない」体験を
安全・笑い・技術デモとして再現できました。
10. この制作から得たもの
- Android の基礎構造理解
- 新旧仕様の違いへの対応力
- エラー文を読む力
- 「動かない理由」を切り分ける思考
そして何より、
技術は「体験」を作るための道具
という感覚を、実装を通して再確認できました。
