基本から楽しく開発するAndroidアプリ ─⁠─ Step by stepで身につけるアプリづくりのスタイル

「基本から楽しく開発するAndroidアプリ」のカバー画像
著者
松尾源まつおげん 著
定価
2,860円(本体2,600円+税10%)
発売日
2026.2.27
判型
B5変形
頁数
384ページ
ISBN
978-4-297-15378-6

概要

本書は「まずは動かしてみる」「理屈より体験」というスタンスを重視。実際に動くアプリを題材に、楽しい開発体験そのものを通じてJetpack Composeを使ったAndroidアプリ開発の考え方やKotlinの文法を学べる構成にしています。

段階的に難易度を上げていくことで無理なく知識を身につけられ、近年強化されているAndroid StudioのAIコーディング支援機能にも触れ、初心者が開発時に感じる「つまずき」や「調べ方がわからない」問題を、AIの力を借りて乗り越えるヒントも紹介します。

本書で身につくこと:

  • 作れる。という実感と自信
  • Android開発の基礎スキルの習得
  • 自分で調べて進む自走力

こんな方にオススメ

本書は「Androidアプリ開発を始めてみたいが、どこから手をつければよいかわからない」と感じている初学者を主な対象としています。

  • Androidアプリ開発が初めてで、まずは一通り動くアプリを作ってみたい方
  • 過去にAndroidアプリ開発に挑戦したものの、途中で挫折してしまった方
  • Java+XMLを使ったAndroidアプリ開発の経験があり、Jetpack Composeに移行したい方
  • SwiftUIアプリ開発の経験があり、Jetpack Composeを使ったAndroidアプリ開発に挑戦したい方

目次

Chapter 1 Androidアプリの開発準備 ── 開発環境の構築と開発の基本を知ろう

1.1 この本の読み方

  • 囲み記事

1.2 開発に必要なもの

  • Windows PC
  • インターネット回線
  • Androidスマートフォン(任意)

1.3 Android Studioをセットアップする

  • [Step 1]Android Studioをダウンロードする
  • [Step 2]Android Studioをインストールする
  • [Step 3]Android Studioを起動する(初回)
  • [Step 4]Android Studioを起動する(2回目以降)

1.4 新規プロジェクトを作成する

  • [Step 1]プロジェクトを選択する
  • [Step 2]プロジェクトの設定をする

1.5 Hello Android!を画面に表示する

  • [Step 1]Compose Previewで画面を表示する
  • [Step 2]エミュレータをセットアップする
  • [Step 3]エミュレータでアプリを実行する
  • [Step 4]リソースをダウンロードする
  • [Step 5]アプリアイコンを変更する
  • [Step 6]プロジェクトを閉じる

1.6 プロジェクトのファイル構成を確認する

1.7 アプリ開発で使う技術を整理する

  • Android
  • Kotlin
  • Jetpack Compose

1.8 Android Studioの画面構成と主に使う機能

  • ❶メインツールバー
  • ❷ツールウィンドウ(左)
  • ❸エディタウィンドウ
  • ❹ツールウィンドウ(右)
  • ❺ツールウィンドウ(下)

1.9 AI支援ツール ─ Gemini in Android Studio

  • Ask Gemini
  • Transform code
  • Agent

1.10 実機接続の準備をする(オプション)

  • [Step 1]USBデバッグを有効にする
  • [Step 2]実機とAndroid Studio(PC)を接続しアプリを実行する

1.11 困ったとき

  • Android Studioが起動しない
  • Gradle同期エラー
  • Runボタンを押してもアプリ画面が表示されない

1.12 まとめ

Column

  • タスクバーにピン止めする
  • New Projectダイアログでの選択
  • 初回の待ち時間
  • Package nameのルール
  • Minimum SDKにAPI 30(Android 11.0)を選択する理由
  • 本書の方針とコメントアウトの表現
  • エミュレータのセットアップは初回だけ
  • エミュレータで利用するAndroidのバージョンについて
  • Medium Phoneを選択する理由
  • 初回の待ち時間

Chapter 2 メッセージ表示 ── 画面にメッセージを表示するアプリを作ろう

2.1 完成したアプリをイメージしよう

2.2 習得できる技術

2.3 利用技術

2.4 学習の進め方

2.5 開発を進めよう

  • [Step 1]新規プロジェクトを作成する
  • [Step 2]アプリを実行する
  • [Step 3]表示するメッセージを変更する
  • [Step 4]ボタンを追加する
  • [Step 5]もう1つボタンを追加する

2.6 まとめ

2.7 Kotlinの学習方法について

2.8 復習:Kotlinの理解度を高めよう

  • [課題1]文字列の結合について理解度を高める
  • [課題2]変数宣言と型について理解度を高める
  • [課題3]変数宣言と型(型推論)について理解度を高める

Column

  • MainActivity.ktって何?
  • 関数と引数
  • importの追加について
  • 変数と状態変数
  • rememberで値を保持するしくみ

Chapter 3 High&Lowゲーム ── 数字の大小を当てるゲームを作ろう

3.1 完成したアプリをイメージしよう

3.2 習得できる技術

3.3 利用技術

3.4 学習の進め方

3.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]ゲームロジックを実装する
  • [Step 4]ボタンの表示を制御する
  • [Step 5]数字をカード風に表示する
  • [Step 6]レイアウトを整える

3.6 まとめ

3.7 復習:Kotlinの理解度を高めよう

  • [課題1]変数宣言の仕方について理解度を高める
  • [課題2]関数とラムダ式について理解度を高める
  • [課題3]高階関数について理解度を高める

Column

  • アプリはどこから始まるの?
  • import文って何のためにあるの?
  • 便利だけど油断は禁物! Alt+Enterの自動import
  • トレーリングラムダって何?
  • 「var message by remember { …… }」ってどういう意味?
  • コードのインデントを自動で整える
  • Modifierって何?
  • dp、spって何?
  • Column、Row、Boxを使った画面レイアウト
  • このifは「式」です
  • paddingとSpacerの使い分け

Chapter 4 サイコロアプリ ── 振って遊ぼう! 乱数と画像で作るサイコロアプリを作ろう

4.1 完成したアプリをイメージしよう

4.2 習得できる技術

4.3 利用技術

4.4 学習の進め方

4.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]サイコロの目を決めるロジックを実装する
  • [Step 4]画像を使ってサイコロを表示する
  • [Step 5]サイコロを3個に増やす
  • [Step 6]サイコロを転がす(簡易アニメーションを追加する)

4.6 まとめ

4.7 復習:Kotlinの理解度を高めよう

  • [課題1]論理演算子の理解度を高める
  • [課題2]if式の理解度を高める
  • [課題3]Listの理解度を高める1
  • [課題4]Listの理解度を高める2

Column

  • リストと添え字
  • 論理演算子 ── &&、||、!
  • コルーチンって何?

Chapter 5 鍵盤アプリ ── 画面タッチで音が出るピアノ風UIの鍵盤アプリを作ろう

5.1 完成したアプリをイメージしよう

5.2 習得できる技術

5.3 利用技術

5.4 学習の進め方

5.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]音声を再生する
  • [Step 4]白鍵盤を実装する
  • [Step 5]UIを部品化する
  • [Step 6]黒鍵盤を実装する
  • [Step 7]音声再生方法を改善する(任意)

5.6 まとめ

5.7 復習:Kotlinの理解度を高めよう

  • [課題1]try-finallyの復習
  • [課題2]null許容型とletの理解度を高める
  • [課題3]リストとforループの復習1
  • [課題4]リストとforループの復習2
  • [課題5]リストとmapの理解度を高める

Column

  • タッチとタップの使い分け
  • Contextって何?
  • Compose Previewの活用範囲
  • アノテーションって何?
  • tryとfinally
  • ?とlet{……}
  • セーフコールって何?
  • スコープ関数って何?

Chapter 6 タイマーアプリ ── キッチンタイマーのようなアプリを作ろう

6.1 完成したアプリをイメージしよう

6.2 習得できる技術

6.3 利用技術

6.4 学習の進め方

6.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]画面作成の準備をする
  • [Step 4]ボタン押下で動作のイメージを確認する
  • [Step 5]タイマーの基本機能を実装する
  • [Step 6]タイマーの終了をメッセージと音で通知する
  • [Step 7]時間の増減を実装する
  • [Step 8]設定値の保存・復元を実装する

6.6 まとめ

6.7 復習:Kotlinの理解度を高めよう

  • [課題1]enum classについて理解度を高める
  • [課題2]when式について理解度を高める

Column

  • ScaffoldをMainに移動する理由
  • package(パッケージ)って何?
  • ViewModelの扱い
  • viewModelScopeって何?
  • 同期・非同期と並列・並行
  • スコープを意識する
  • アクセス修飾子は「守るため」に使う
  • DataStoreって何?
  • 拡張プロパティって何?
  • エルビス演算子って何?

Chapter 7 ToDoアプリ ── データベースと連携したToDoアプリを作ろう

7.1 完成したアプリをイメージしよう

7.2 習得できる技術

7.3 利用技術

7.4 学習の進め方

7.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]画面作成の準備をする
  • [Step 4]ToDo一覧を表示する
  • [Step 5]完了済みToDoの表示を切り替える
  • [Step 6]ToDoを編集する
  • [Step 7]データベースに保存する
  • [Step 8]完了ToDoをデータベースから削除する
  • [Step 9]アプリを仕上げる(UXの向上)
  • [Step 10]ToDoの順序を入れ替える(任意)

7.6 まとめ

7.7 復習:Kotlinの理解度を高めよう

  • [課題1]companion objectについて理解度を高める
  • [課題2]可変長引数について理解度を高める
  • [課題3]引数なしのwhenについて理解度を高める

Column

  • 状態ホイスティングって何?
  • data classって何?
  • Flowって何?
  • collectAsStateとcollectAsStateWithLifecycleの使い分け
  • 副作用について
  • ViewModelで、明示的に型を書く場合と書かない場合があるのはなぜ?
  • RoomとKSPって何?
  • suspend関数って何?
  • companion objectって何?
  • Entity、Dao、Databaseはファイルを分ける
  • Flowのオペレータ
  • whenは書き順に注意が必要
  • Composableが参照するStateについて(再コンポーズのしくみ)

Chapter 8 カメラアプリ ── カメラを使った画像認識アプリを作ろう

8.1 完成したアプリをイメージしよう

8.2 習得できる技術

8.3 利用技術

8.4 学習の進め方

8.5 開発を進めよう

  • [Step 1]アプリ構成を検討する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]画面作成の準備をする
  • [Step 4]権限リクエストをする
  • [Step 5]カメラプレビューを実装する
  • [Step 6]静止画を撮影する
  • [Step 7]静止画を表示する
  • [Step 8]文字列を認識する
  • [Step 9]認識結果を表示する
  • [Step 10]バーコードを認識する

8.6 まとめ

8.7 復習:Kotlinの理解度を高めよう

  • [課題1]無名オブジェクトの生成について理解度を高める
  • [課題2]use関数について理解度を高める

Column

  • 「@OptIn(ExperimentalPermissionsApi::class)」を追加した理由は?
  • 権限リクエストの恒久拒否(Don't allow)対応
  • エミュレータでのカメラプレビュー表示
  • AndroidViewって何?
  • Composeでのカメラプレビュー
  • 便利なスコープ関数applyとalso
  • 非nullアサーション演算子 ── !!
  • 手書き文字の認識精度
  • カメラプレビューと撮影画像の不一致
  • バーコードサンプル

Chapter 9 書籍検索アプリ ── Web APIを使ったアプリを作ろう

9.1 完成したアプリをイメージしよう

9.2 習得できる技術

9.3 利用技術

9.4 学習の進め方

9.5 開発を進めよう

  • [Step 1]アプリ作成に必要な知識を整理する
  • [Step 2]新規プロジェクトを作成する
  • [Step 3]画面作成の準備をする
  • [Step 4]データとロジックを整理する
  • [Step 5]JSONを解析する
  • [Step 6]リスト画面を実装する
  • [Step 7]詳細画面を実装する
  • [Step 8]Google Books APIを利用した検索処理に変更する
  • [Step 9]APIの結果をGsonで自動解析するように変更する
  • [Step 10]アプリを仕上げる(UXの向上)

9.6 まとめ

9.7 復習:Kotlinの理解度を高めよう

  • [課題1]スコープ関数の利用方法について理解度を高める
  • [課題2]安全なnullの扱い方について理解度を高める

Column

  • APIとWeb API
  • Google Books APIについて
  • NavHostを使った画面遷移のメリット
  • data classの生成をAIに任せよう
  • MVVMって何?
  • Logcatを味方につけよう!
  • 状態管理に役立つバッキングプロパティ
  • ナビゲーションスタックって何?
  • return@withContextって何?
  • ライブラリを使って楽をする
  • HTTP通信が制限されている理由
  • Exceptionをそのまま使うのはイマイチ?

プロフィール

松尾源まつおげん

名古屋市にあるIT系専門学校の教員。

教員になる前は独立系IT企業に勤務し、WebやAndroidアプリ開発に従事。

趣味はバイクとサウナ。

・著書:『現場で使える[逆引き+実践]Androidプログラミングテクニック』(共著) https://gihyo.jp/book/2012/978-4-7741-5187-8

・X:https://x.com/genz0

・Blog:https://genz0.blogspot.com/