0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モダンAndroid開発の勘所を押さえる、シンプルなメモアプリ開発ログ(要件定義編)

Posted at

はじめに

こんにちは!

最近、Android開発の界隈を眺めていると、Jetpack Composeがすごい勢いで普及しているのを感じます。気づいたら世の中は宣言型UIが当たり前になっていて、「これは本気でやらないと乗り遅れるぞ…」と、ちょっと焦りました(笑)。

そこで今回は、モダンなAndroid開発の基礎固めと、今後の本格的なアプリ開発に向けた「土台」を作ることを目的として、シンプルなメモアプリを開発していこうと思います。

単にライブラリの使い方を学ぶだけでなく、その背景にある「宣言型UI」の設計思想や「状態管理」の考え方など、本質的な部分をしっかり自分のものにすることが、このプロジェクトの一番の狙いです。


このプロジェクトで目指すこと

この開発を通じて、以下の3つのゴール達成を目指します。

  1. モダンな開発フローの体得

    • Jetpack ComposeでのUI構築と、ViewModelを介したロジックの分離(MVVM)という、Googleが推奨する現代的な開発フローを一通り経験します。これにより、**関心の分離(SoC)**という、大規模開発で破綻しないための重要な原則を体に叩き込みます。UIとロジック、それぞれの役割分担を明確にするってやつですね。
  2. 「状態管理」の基本をマスター

    • 個人的には、宣言型UIの肝は「状態管理」にあると考えています。ComposeにおけるStaterememberといった仕組み、そしてViewModelからStateFlowでUIに状態を伝える**単方向データフロー(UDF)**を実装します。データの源泉をViewModelに一つに集約(SSOT)することで、「あれ、こっちの画面とあっちの画面で表示が違う…」みたいな最悪の事態を防ぐ狙いです。
  3. 今後のための「雛形」作成

    • このアプリは、作って終わりではありません。適切なパッケージ構成やMVVMの型を、今後より複雑なアプリを作る際の**自分だけのボイラープレート(雛形)**にします。新しいプロジェクトを始めるたびに毎回同じ設定をするのは、正直ちょっと面倒ですしね w

アプリの主な機能

今回実装する機能は、上記の目的を達成するために意図的に最小限に絞っています。

機能 概要
メモの一覧表示 アプリを起動すると、作成したメモがシンプルなリストで表示されます。
メモの追加 入力フォームとボタンを使って、新しいメモをリストに追加できるようにします。

技術選定とその理由

今回のプロジェクトでは、以下の技術スタックを採用します。なぜそれらを選ぶのか、その理由も明確にしておきます。

  • 言語: Kotlin

    • 理由: もはや説明不要のGoogle公式開発言語ですね。Null安全、コルーチンなど、一度この味を知るとJavaには戻れません(笑)。
  • UI: Jetpack Compose

    • 理由: XMLと比べて圧倒的に少ないコード量でUIを構築でき、プレビューも超強力。何より、UIを「状態の関数」として捉えるこの考え方が、UIロジックをシンプルに保つ鍵だと感じています。
  • アーキテクチャ: MVVM (ViewModel)

    • 理由: Google公式推奨。ライフサイクルを意識したデータ保持が可能で、画面回転にも強いのが魅力です。ロジックが分離されるので、テストが書きやすいというメリットも大きいですね。
  • バージョン管理: Git / GitHub

    • 理由: 開発現場の必須ツール。今回はfeat:fix:といったConventional Commitsの規約に則って、「未来の自分が見ても分かりやすいコミットログ」を意識してみようと思います。

今回のスコープ(やらないこと)

技術的な意思決定において、「何をやらないか」を決めることは、「何をやるか」と同じくらい重要だと考えています。

  • データの永続化(データベース連携)

    • 理由: まずはUIをしっかり動かすところまで。いきなりDBまでやろうとすると、だいたい途中で心が折れるので…(笑)。次のステップとして、Roomあたりを導入するのが王道かなと考えています。
  • 複雑なUIデザインやアニメーション

    • 理由: デザインに凝り始めると時間が溶けるので、今回はMaterial Designの標準コンポーネントが提供してくれる美しさに頼ります。本質的なロジックの実装を最優先します。
  • メモの編集・削除機能

    • 理由: まずはプロダクトの最小単位(MVP)として、「一覧(Read)」と「追加(Create)」に絞ります。ここがしっかり作れれば、あとは応用なので!

まとめ

まずはこの骨太な要件定義を元に、モダンAndroid開発の第一歩を踏み出してみようと思います。実際に開発を進める中で得られた知見や、思い通りにいかなかった点なども含めて、今後この開発ログに正直に記録していく予定です。(サボらないように頑張ります w)

もし同じような勉強をしている方がいれば、ぜひ情報交換しましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?