はじめに
個人開発でAndroidアプリを作るとき、みなさんはどんなテーマを選びますか?
今回は私が「習慣トラッカーアプリ」を題材に、最新のAndroid開発技術を学びながら開発している過程をシリーズで紹介していきます。
初回となるこの記事では、なぜ習慣アプリを選んだのか、技術スタックをどう決めたのか、そしてこれから取り組む内容についてお話します。
きっかけ
個人開発で次に何を作るか迷っていたとき、「せっかくなら自分が学びたい技術を詰め込めるものを作りたい」と考えました。
最初に浮かんだのはメモ帳や付箋、タスク管理アプリなど。シンプルで着手しやすく、便利なジャンルです。
しかし、どれも既に多くのアプリが存在していて、オリジナリティを出しにくいこと、そして機能がシンプルになりがちな点が気になりました。
様々な候補があった中、私は習慣管理アプリの作成の選択をしました。
開発が楽しそうだったから
一方、習慣アプリはユーザーが継続的に使いたくなるような仕掛けを盛り込めます。
例えば習慣を達成したときにアニメーションを表示したり、記録が積み重なっていく達成感を演出したり…。
そうした「賑やかし要素」を考えること自体が開発者として面白そうで、作っていて楽しめるイメージが湧きました。
技術的な挑戦があったから
個人的な話になりますが、前回の個人開発で1本アプリを開発しています。
ただ、外部APIに依存する部分が大きく、自分でアプリの根幹を構築する機会が少なかったという反省がありました。
そこで今回は、データの作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)といったCRUD操作を自分の手で一通り実装することをテーマに設定しました。
習慣アプリならユーザーの習慣データを登録し、進捗を更新し、不要な習慣を削除するなど、CRUDをフル活用できる点も今回の作成の決め手となりました。
また、画面数も比較的多いため、状態管理や画面遷移など幅広い技術を学べるのも魅力でした。
個人的な興味があったから
私自身、新しい習慣を身につけたいと思いながらも、複数の習慣を並走して行うことについて、なかなか続かない経験があります。
世の中には優れた習慣管理アプリが数多くありますが、自分にとって本当に使いやすいものを自分の手で作りたいという、その気持ちがモチベーションの原動力になりました。
まとめ
開発には Kotlin + Jetpack Compose を採用し、ローカルデータは Room で管理。
依存注入に Hilt、画面遷移に Navigation を使い、最新のAndroid開発スタックを学びながら進めています。
仕様はConfluenceで整理し、タスクはJiraで管理するなど、個人開発でもチームに近い進め方を意識しています。
今回の記事はそのはじまりとして、背景などをまとめました。
次回からはアプリ設計や選定した技術について紹介できたらなと思います。
また、個人開発を始めたい方にとっても参考になるよう、試行錯誤や学びを率直に共有していく予定です。