okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

「Android クリーンアーキテクチャ ヒッチハイク・ガイド」を頒布しました

目次

技術書典14 オンラインマーケット、およびboothで「Android クリーンアーキテクチャ ヒッチハイク・ガイド」を頒布しました。Androidアプリにクリーンアーキテクチャを導入するための同人誌です。

ソフトウェアデザイン 2023年6月号にもAndroidアプリのクリーンアーキテクチャについて寄稿しておりますが、寄稿した記事よりも多くの文字数を費やしてAndroidアプリのクリーンアーキテクチャについて書いています。執筆の時系列順は、同人誌→ソフトウェアデザインの順です。

目次

1. 前書き
2. Androidクリーンアーキテクチャ・入門編
  1. クリーンアーキテクチャとは
  2. クリーンアーキテクチャ入門
  3. クリーンアーキテクチャとMVWパターン
  4. クリーンアーキテクチャとアプリアーキテクチャガイド
3. Androidクリーンアーキテクチャ・実装編
  1. Domainレイヤ
  2. Dataレイヤ
  3. UIレイヤ
  4. メインコンポーネント
4. 参考文献

前書き

クリーンアーキテクチャは、Robert C.Martin(通称Uncle Bob)が2012年に自身のブログ2にて提示したアイデアです。これは、2012年以前のアーキテクチャに関する議論(ヘキサゴナルアーキテクチャやオニオンアーキテクチャなど)を統合するための試みであり、それ自体が新しいアイデアというわけではありません。しかしながら、そのアイデアの影響は大きく、2023年現在、アプリケーションのアーキテクチャにクリーンアーキテクチャを取り入れているプロジェクトも多いのではないでしょうか。

本書では、クリーンアーキテクチャの考え方や導入方法を学びたいAndroidアプリエンジニアに向けて、基本的なアイデアとサンプルコードを提示します。重要なことは、基本的な考え方を理解することです。考え方が主で、サンプルコードはおまけです。本書のサンプルコードは、考え方の理解を助けるためのものと捉えていただければと思います。考え方さえ理解できれば、本書のサンプルコードを拡張して、またはサンプルコードを捨てて、アーキテクチャを構築することは容易でしょう。

クリーンアーキテクチャの「哲学」を学ぶことで、ソフトウェアのアーキテクチャに関する見方が180度変わります。クリーンアーキテクチャは銀の弾丸ではありません。また、すべてのプロジェクトに最適というものでもありません。しかしながら、価値のあるソフトウェアを作るための強力な武器であると筆者は考えます。

#Writing #Android

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

Android 依存性注入 ヒッチハイク・ガイド🧳

Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。

販売サイトへ🏃

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容