基本から楽しく開発するAndroidアプリ ── Step by stepで身につけるアプリづくりのスタイル
- 松尾源 著
- 定価
- 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