書籍詳細(基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Kotlin対応)

基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Kotlin対応 書影

ISBN: 978-4-7981-7613-0

基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Kotlin対応

著者WINGSプロジェクト 齊藤 新三
監修山田祥寛
出版社翔泳社
価格2,850円(税別)
判型B5変判・2色
ページ数472ページ
発売日2023年1月24日
対象レベル初中級

2023/05/11、Android Studio Flamingoによるサンプルへの影響について、PDFへまとめてサンプルに同梱しました。

「Androidアプリ開発の基礎力」を習得しよう

本書は、Kotlin言語の学習者を対象として、ハンズオン形式でサンプルプログラムを作りながら、Androidアプリ開発に必要な基礎知識やSDKの機能、プログラミングテクニックを学ぶことができる書籍です。
最新の開発環境Android Studio Dolphin(2021.3.1)を利用します。
同シリーズ「基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Java対応」と同じ構成でKotlinに対応させているため、KotlinとJavaを読み比べながら学んでいくことも可能です。
基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Kotlin対応 ロゴ

更新履歴

  • FAQ情報:2023年5月11日 更新
  • 正誤訂正:2025年4月5日 更新

目次

  • 第1章 Androidアプリ開発環境の作成
  • 1.1 Androidのキソ知識
  • 1.1.1 Androidの構造
  • 1.1.2 Android Studio
  • 1.1.3 Kotlin言語の正式サポート
  • 1.2 Android Studioのインストール
  • 1.2.1 Windowsの場合
  • 1.2.2 macOSの場合
  • 1.2.3 Android Studioの初期設定を行う
  • 1.2.4 アップデートを確認
  • 1.2.5 追加のSDKをダウンロード
  • 第2章 はじめてのAndroidアプリ作成
  • 2.1 はじめてのAndroidプロジェクト
  • 2.1.1 Android StudioのHelloAndroidプロジェクトを作成する
  • 2.1.2 Android Studioプロジェクトの作成はウィザードを使う
  • 2.1.3 プロジェクト作成情報
  • 2.2 AVDの準備
  • 2.2.1 AVD を作成する
  • 2.2.2 AVD を起動して初期設定を行う
  • 2.3 アプリの起動
  • 2.3.1 アプリを起動する
  • 2.4 Android Studioの画面構成とプロジェクトのファイル構成
  • 2.4.1 Android Studioの画面構成とProjectツールウィンドウのビュー
  • 2.4.2 Androidビューのファイル構成
  • 2.4.3 異なる画面密度に自動対応するための修飾子
  • 2.5 Androidアプリ開発の基本手順
  • 2.5.1 レイアウトファイルとアクティビティ
  • 2.5.2 strings.xmlの働き
  • 2.5.3 Androidアプリ開発手順にはパターンがある
  • 第3章 ビューとアクティビティ
  • 3.1 ビューの基礎知識
  • 3.1.1 ラベルを画面に配置する
  • 3.1.2 レイアウトファイルを編集する「レイアウトエディタ」
  • 3.1.3 画面部品の配置を決めるビューグループ
  • 3.1.4 画面部品そのものであるビュー
  • 3.1.5 画面構成はタグの組み合わせ
  • 3.1.6 画面部品でよく使われる属性
  • 3.2 画面部品をもう1つ追加する
  • 3.2.1 入力欄を画面に配置する
  • 3.2.2 アプリを手軽に再実行する機能
  • 3.2.3 入力欄の種類を設定する属性
  • 3.3 レイアウトエディタのデザインモード
  • 3.3.1 デザインモードでの画面各領域の名称
  • 3.3.2 デザインモードのツールバー
  • 3.4 デザインモードで部品を追加してみる
  • 3.4.1 デザインモードでの画面作成手順
  • 3.4.2 デザインモードでボタンを画面に配置する
  • 3.4.3 XMLがどうなったか確認してみる
  • 3.5 LinearLayoutで部品を整列する
  • 3.5.1 LinearLayoutを入れ子に配置する
  • 3.5.2 レイアウト部品を入れ子にした場合の画面構成
  • 3.6 他のビュー部品──ラジオボタン/選択ボックス/リスト
  • 3.6.1 単一選択ボタンを設置する──ラジオボタン
  • 3.6.2 複数のRadioButtonはRadioGroupで囲む
  • 3.6.3 選択ボックスを設置する──Spinner
  • 3.6.4 リストデータはstring-arrayタグで記述する
  • 3.6.5 リストを表示する──ListView
  • 3.6.6 余白を割り当てるlayout_weight属性
  • 3.6.7 一定の高さの中でリストデータを表示するListView
  • 第4章 イベントとリスナ
  • 4.1 アプリ起動時に実行されるメソッド
  • 4.1.1 画面を作成する
  • 4.1.2 アクティビティのソースコードを確認する
  • 4.1.3 リソースを管理してくれるRクラス
  • 4.2 イベントリスナ
  • 4.2.1 イベントとイベントハンドラとリスナ
  • 4.2.2 Androidでリスナを設定する手順
  • 4.2.3 リスナクラスを作成する
  • 4.2.4 リスナクラスは専用のインターフェースを実装する
  • 4.2.5 イベントハンドラメソッドに処理を記述する
  • 4.2.6 アクティビティ内で画面部品を取得する処理
  • 4.2.7 入力文字列の取得と表示
  • 4.2.8 リスナを設定する
  • 4.2.9 リスナインターフェースに対応したリスナ設定メソッド
  • 4.3 ボタンをもう1つ追加してみる
  • 4.3.1 文字列とボタンを追加する
  • 4.3.2 追加されたボタンの処理を記述する
  • 4.3.3 idで処理を分岐
  • 第5章 リストビューとダイアログ
  • 5.1 リストタップのイベントリスナ
  • 5.1.1 画面を作成する
  • 5.1.2 リストをタップしたときの処理を記述する
  • 5.1.3 リストビュータップのリスナはOnItemClickListenerインターフェースを実装する
  • 5.1.4 お手軽にメッセージを表示できるトースト
  • 5.1.5 リストビュータップのリスナはonItemClickListenerプロパティに代入
  • 5.2 アクティビティ中でリストデータを生成する
  • 5.2.1 アクティビティ中でリストを生成するサンプルアプリを作成する
  • 5.2.2 リストビューとリストデータを結びつけるアダプタクラス
  • 5.3 ダイアログを表示する
  • 5.3.1 ダイアログを表示させる処理を記述する
  • 5.3.2 Androidのダイアログの構成
  • 5.3.3 ダイアログを表示するにはDialogFragmentを継承したクラスを作成する
  • 5.3.4 ダイアログオブジェクトの生成処理はビルダーを利用する
  • 5.3.5 ダイアログのボタンタップはwhichで分岐する
  • 第6章 ConstraintLayout
  • 6.1 ConstraintLayout
  • 6.1.1 Android Studioのデフォルトレイアウト
  • 6.1.2 ConstraintLayoutの特徴
  • 6.2 制約の設定には制約ハンドルを使う
  • 6.2.1 TextViewが1つだけの画面を作成する
  • 6.2.2 設定された制約の確認
  • 6.3 ConstraintLayoutにおける3種類のlayout_width/height
  • 6.3.1 「名前」のラベルと入力欄を追加する
  • 6.3.2 ConstraintLayoutでは独特のlayout_width/height
  • 6.3.3 残りの部品を追加する
  • 6.4 横並びとベースライン
  • 6.4.1 横並びに変更も簡単
  • 6.4.2 ベースラインを揃える
  • 6.5 ガイドラインを利用する
  • 6.5.1 「名前」入力欄と「メールアドレス」入力欄の左端を揃える
  • 6.5.2 制約の設定先として利用できるガイドライン
  • 6.6 チェイン機能を使ってみる
  • 6.6.1 ボタンを3つ均等配置する
  • 6.6.2 複数の画面部品をグループ化できるチェイン機能
  • 第7章 画面遷移とIntentクラス
  • 7.1 2行のリストとSimpleAdapter
  • 7.1.1 定食メニューリスト画面を作成する
  • 7.1.2 柔軟なリストビューが作れるアダプタクラスSimpleAdapter
  • 7.1.3 データと画面部品を結びつけるfrom-to
  • 7.2 Androidの画面遷移
  • 7.2.1 画面遷移のコードと新画面のコードを記述する
  • 7.2.2 画面を追加する3種の作業
  • 7.2.3 Androidの画面遷移は遷移ではない
  • 7.2.4 アクティビティの起動とインテント
  • 7.2.5 引き継ぎデータを受け取るのもインテント
  • 7.2.6 Intentの引き継ぎデータはBundleに格納されている
  • 7.2.7 タップ処理をメソッドで記述できるonClick属性
  • 7.2.8 戻るボタンの処理はアクティビティの終了
  • 7.3 アクティビティのライフサイクル
  • 7.3.1 アクティビティのライフサイクルとは何か
  • 7.3.2 ライフサイクルをアプリで体感する
  • 7.3.3 AndroidのログレベルとLogクラス
  • 7.3.4 ログの確認はLogcatで行う
  • 7.3.5 ライフサイクルコールバックをログで確認する
  • 第8章 オプションメニューとコンテキストメニュー
  • 8.1 リストビューのカスタマイズ
  • 8.1.1 IntentSampleアプリと同じ部分を作成する
  • 8.1.2 リストビュー各行のカスタマイズはレイアウトファイルを用意するだけ
  • 8.2 オプションメニュー
  • 8.2.1 オプションメニューの例
  • 8.2.2 オプションメニュー表示を実装する
  • 8.2.3 オプションメニュー表示はXMLとアクティビティに記述する
  • 8.2.4 オプションメニュー選択時処理を実装する
  • 8.2.5 オプションメニュー選択時の処理はIDで分岐する
  • 8.3 戻るメニュー
  • 8.3.1 戻るメニューを実装する
  • 8.3.2 戻るメニュー表示はonCreate()に記述する
  • 8.4 コンテキストメニュー
  • 8.4.1 コンテキストメニューを実装する
  • 8.4.2 コンテキストメニューの作り方はオプションメニューとほぼ同じ
  • 8.4.3 コンテキストメニュー選択時の処理を実装する
  • 8.4.4 コンテキストメニューでも処理の分岐はidのR値とwhen文
  • 第9章 フラグメント
  • 9.1 フラグメント
  • 9.1.1 前章までのサンプルをタブレットで使うと
  • 9.1.2 フラグメントによる画面構成
  • 9.2 スマホサイズのメニューリスト画面のフラグメント化
  • 9.2.1 メニューリスト画面をフラグメントで実現する
  • 9.2.2 フラグメントはアクティビティ同様にXMLとKotlinクラス
  • 9.2.3 表示画面の指定はコンストラクタを利用
  • 9.2.4 フラグメントのライフサイクル
  • 9.2.5 onViewCreated()の記述方法
  • 9.2.6 フラグメントでのコンテキストの扱い
  • 9.2.7 フラグメントのアクティビティへの埋め込み
  • 9.3 スマホサイズの注文完了画面のフラグメント化
  • 9.3.1 注文完了画面をフラグメントで実現する
  • 9.3.2 フラグメントを利用した画面遷移
  • 9.3.3 フラグメントを利用した遷移のキモはFragmentManager
  • 9.3.4 フラグメントトランザクション
  • 9.3.5 フラグメント間のデータ引き継ぎはBundle
  • 9.3.6 バックスタックへの追加
  • 9.3.7 バックスタックからポップ
  • 9.4 タブレットサイズ画面を作成する
  • 9.4.1 メニューリスト画面を10インチに対応する
  • 9.4.2 画面サイズごとに自動でレイアウトファイルを切り替えてくれるlayout-##
  • 9.4.3 10インチの画面構成
  • 9.5 タブレットに対応した処理コードの記述
  • 9.5.1 スマホサイズとタブレットサイズの処理の違い
  • 9.5.2 フラグメント内のコードをタブレットに対応させる
  • 9.5.3 処理分岐はフラグメントコンテナの有無がキモ
  • 9.5.4 タブレットサイズでの注文完了表示もreplace()
  • 9.5.5 タブレットサイズでの戻るボタンは自分自身の削除
  • 第10章 データベースアクセス
  • 10.1 Androidのデータ保存
  • 10.2 Androidのデータベース利用手順
  • 10.2.1 カクテルのメモアプリを作成する
  • 10.2.2 Androidのデータベースの核となるヘルパークラス
  • 10.2.3 データベース処理を追加する
  • 10.2.4 データベースヘルパークラスの作り方
  • 10.2.5 ヘルパーオブジェクトの生成、解放処理
  • 10.2.6 データ更新処理
  • 10.2.7 データ取得処理
  • 第11章 非同期処理とWeb API連携
  • 11.1 AndroidのWeb連携
  • 11.1.1 AndroidのWeb連携の仕組み
  • 11.1.2 OpenWeatherの利用準備
  • 11.1.3 OpenWeatherのWeb API仕様
  • 11.2 非同期処理
  • 11.2.1 Java言語のメソッド連携は同期処理
  • 11.2.2 非同期処理の必要性
  • 11.3 サンプルアプリの基本部分の作成
  • 11.3.1 お天気情報アプリを作成する
  • 11.3.2 リスト11.2のポイント
  • 11.4 Androidの非同期処理
  • 11.4.1 非同期処理の基本コードを記述する
  • 11.4.2 非同期処理の中心であるExecutor
  • 11.4.3 非同期処理の実態はrun()かcall()メソッド内の処理
  • 11.4.4 Callableではcall()の戻り値の型を指定
  • 11.4.5 Callableを実行したsubmitの戻り値はFutureオブジェクト
  • 11.4.6 アノテーションの追記
  • 11.4.7 UIスレッドとワーカースレッドを保証してくれるアノテーション
  • 11.5 HTTP接続
  • 11.5.1 天気情報の取得処理を記述する
  • 11.5.2 Androidのインターネット接続はHTTP接続
  • 11.5.3 HTTP接続の許可
  • 11.5.4 HttpURLConnectionクラスのその他のプロパティ
  • 11.6 JSONデータの扱い
  • 11.6.1 JSONデータの解析処理の追記
  • 11.6.2 JSON解析の最終目標はgetString()
  • 11.7 ワーカースレッドからの通知
  • 11.7.1 ワーカースレッドからUIスレッドに通知を行うHandler
  • 11.7.2 サンプルプロジェクトの作成
  • 11.7.3 Handlerを利用したコードを追記する
  • 11.7.4 スレッド間通信を行うにはHandlerのpost()メソッドを利用
  • 11.7.5 Handlerオブジェクトの用意にはLooperが必要
  • 11.7.6 JSON処理に関するコードを追記する
  • 11.7.7 HandlerとCallableの相性は悪い
  • 11.8 Kotlinコルーチンによる非同期処理
  • 11.8.1 コルーチンとは
  • 11.8.2 コルーチンとコルーチンスコープ
  • 11.8.3 サンプルプロジェクトの作成
  • 11.8.4 weatherInfoBackgroundRunner()メソッドのポイント
  • 11.8.5 コルーチンに関するコードを記述する
  • 11.8.6 Kotlinコルーチンには追加ライブラリが必要
  • 11.8.7 ライフサイクルと一致したコルーチンスコープ
  • 11.8.8 処理を中断させるにはsuspendを記述する
  • 11.8.9 メソッド内の処理スレッドを分けるwithContext()関数
  • 11.8.10 suspendの真の意味
  • 11.8.11 Kotlinコルーチンのコードパターン
  • 第12章 メディア再生
  • 12.1 音声ファイルの再生
  • 12.1.1 メディア再生アプリを作成する
  • 12.1.2 メディア再生のコードを記述する
  • 12.1.3 音声ファイルの再生はMediaPlayerクラスを使う
  • 12.1.4 メディアの再生と一時停止
  • 12.1.5 MediaPlayerの破棄
  • 12.1.6 MediaPlayerの状態遷移
  • 12.2 戻る・進むボタン
  • 12.2.1 戻る・進む処理のコードを記述する
  • 12.2.2 再生位置を指定できるseekTo()
  • 12.3 リピート再生
  • 12.3.1 リピート再生のコードを記述する
  • 12.3.2 スイッチ変更検出用リスナはOnCheckedChangeListenerインターフェース
  • 12.3.3 メディアのループ設定はisLoopingプロパティ
  • 第13章 バックグラウンド処理と通知機能
  • 13.1 サービス
  • 13.1.1 サービスサンプルアプリを作成する
  • 13.1.2 サービスに関するコードを記述する
  • 13.1.3 サービスはServiceクラスを継承したクラスとして作成
  • 13.1.4 サービスのライフサイクル
  • 13.2 通知
  • 13.2.1 通知とは
  • 13.2.2 通知を実装する
  • 13.2.3 通知を扱うにはまずチャネルを生成する
  • 13.2.4 通知を出すにはビルダーとマネージャーが必要
  • 13.3 通知からアクティビティを起動する
  • 13.3.1 通知からアクティビティを起動する処理を実装する
  • 13.3.2 通知からアクティビティの起動はPendingIntentを使う
  • 13.3.3 通知と連携させるためにサービスをフォアグラウンドで実行する
  • 第14章 地図アプリとの連携と位置情報機能の利用
  • 14.1 暗黙的インテント
  • 14.1.1 2種のインテント
  • 14.1.2 暗黙的インテントサンプルアプリを作成する
  • 14.1.3 地図アプリとの連携に関するコードを記述する
  • 14.1.4 暗黙的インテントの利用はアクションとURI
  • 14.2 緯度と経度の指定で地図アプリを起動するURI
  • 14.2.1 緯度と経度で地図アプリと連携するコードを記述する
  • 14.3 位置情報機能の利用
  • 14.3.1 位置情報取得のライブラリ
  • 14.3.2 FusedLocationProviderClientの利用準備
  • 14.3.3 位置情報機能利用コードの追記
  • 14.3.4 位置情報利用の中心はFusedLocationProviderClient
  • 14.3.5 第2引数のコールバッククラスの作り方
  • 14.3.6 第3引数はコールバック処理を実行させるスレッドのLooperオブジェクト
  • 14.3.7 第1引数は位置情報更新に関する設定を表すLocationRequestオブジェクト
  • 14.4 位置情報利用の許可設定
  • 14.4.1 位置情報機能利用の許可とパーミッションチェックのコードを記述する
  • 14.4.2 アプリの許可はパーミッションチェックが必要
  • 14.4.3 パーミッションダイアログに対する処理はonRequestPermissionsResult()メソッド
  • 第15章 カメラアプリとの連携
  • 15.1 カメラ機能の利用
  • 15.1.1 カメラ機能を利用する2種類の方法
  • 15.1.2 カメラ連携サンプルアプリを作成する
  • 15.1.3 カメラアプリを起動する暗黙的インテント
  • 15.1.4 アプリに戻ってきたときに処理をさせる
  • 15.2 ストレージ経由での連携
  • 15.2.1 ストレージ経由でカメラアプリと連携するように改造する
  • 15.2.2 Androidストレージ内部のファイルはURIで指定する
  • 15.2.3 URI指定でカメラを起動する
  • 第16章 マテリアルデザイン
  • 16.1 マテリアルデザイン
  • 16.1.1 マテリアルデザインとは
  • 16.1.2 Androidのマテリアルデザイン
  • 16.1.3 Androidのマテリアルテーマの確認
  • 16.1.4 マテリアルデザインの4色
  • 16.2 ScrollView
  • 16.2.1 ツールバーサンプルアプリを作成する
  • 16.2.2 画面をスクロールさせたい場合にはScrollViewを使う
  • 16.3 アクションバーより柔軟なツールバー
  • 16.3.1 ツールバーを導入する
  • 16.3.2 ツールバーを使うにはアクションバーを非表示に
  • 16.3.3 テーマの設定値の適用は?attr/で
  • 16.3.4 ツールバーの各種設定はアクティビティに記述する
  • 16.4 ツールバーのスクロール連動
  • 16.4.1 スクロール連動サンプルアプリを作成する
  • 16.4.2 スクロール連動のキモはCoordinatorLayout
  • 16.4.3 アクションバー部分を連動させるAppBarLayout
  • 16.4.4 CoordinatorLayout配下でスクロールするにはNestedScrollViewを使う
  • 16.4.5 enterAlwaysモードでのスクロール連動のまとめ
  • 16.5 CollapsingToolbarLayoutの導入
  • 16.5.1 CollapsingToolbarLayoutを導入する
  • 16.5.2 AppBarLayoutのサイズを変更するにはCollapsingToolbarLayoutを使う
  • 16.6 CollapsingToolbarLayoutにタイトルを設定する
  • 16.6.1 CollapsingToolbarLayoutにタイトルを設定する
  • 16.6.2 CollapsingToolbarLayoutは通常サイズと縮小サイズで文字色を変えられる
  • 16.7 FloatingActionButton(FAB)
  • 16.7.1 FABを追加する
  • 16.7.2 FABは浮いたボタン
  • 16.8 Scrolling Activity
  • 第17章 リサイクラービュー
  • 17.1 リストビューの限界
  • 17.2 リサイクラービューの使い方
  • 17.2.1 リサイクラービューサンプルアプリを作成する
  • 17.2.2 リサイクラービューに関するソースコードを記述する
  • 17.2.3 リサイクラービューにはレイアウトマネージャーとアダプタが必要
  • 17.2.4 リストデータの見え方を決めるレイアウトマネージャー
  • 17.2.5 リサイクラービューのアダプタは自作する
  • 17.2.6 ビューホルダはアイテムのレイアウトに合わせて作成する
  • 17.2.7 アダプタにはアイテムの生成とデータ割り当て処理を記述する
  • 17.3 区切り線とリスナ設定
  • 17.3.1 区切り線とリスナ設定のコードを記述する
  • 17.3.2 区切り線は手動で設定する
  • 17.3.3 リスナはインフレートした画面部品に対して設定する
  • Note
  • Android Studioの動作環境
  • 漢字表記のユーザー名に注意
  • HAXMのインストール
  • Android Studioの日本語化
  • Javaクラスの一意性
  • AVDのツールバーとジェスチャーナビゲーション
  • AVDの終了
  • Androidビューのファイル構成にならない場合
  • プロジェクトの閉じ方
  • プロジェクトの削除
  • 単位
  • 警告について
  • 左右余白について
  • オーバーライド
  • AppCompatActivityクラス
  • Android Studioでクラスのインポートを行う
  • リスナインターフェース
  • インナークラスとオブジェクト式
  • onItemClick()の第2引数viewの利用例
  • コンテキスト
  • プロパティのセッタか通常のメソッドか
  • AndroidXライブラリのDialogFragment
  • AlertDialogのインポート
  • etCommentのテキスト位置
  • データを加工しながらListViewを生成するには
  • 警告について
  • Intentのコンストラクタ引数
  • apply関数
  • ログレベル
  • xmlns:app属性のインポート
  • app:showAsActionとandroid:showAsAction
  • メニューの入れ子
  • トランザクション
  • DialogFragmentはフラグメント
  • フラグメントでオプションメニューを使うには
  • 開発中はアプリをアンインストールする
  • Android内データベースの主キーは_id
  • 非同期でデータベース接続オブジェクトの取得
  • rawQuery()でバインド変数を使う方法
  • SQL文を使わない方法
  • Room
  • UIスレッドとワーカースレッド
  • AsyncTask
  • HTTP接続がPOSTの場合
  • スレッドセーフ
  • ViewModel
  • WebView
  • 音声ファイルはなぜURI指定か?
  • onPrepared()とonCompletion()の引数
  • 通知設定
  • PagingIntentとバックスタック
  • URLエンコーディング
  • カメラアプリの起動
  • リスト15.3でコンパイルエラー
  • アプリのテーマ指定
  • elevationの値
  • アクションバーサイズのアプリバーのサブタイトルは非推奨
  • コラム
  • Android Studioの設定ファイルの格納先
  • ソフトウェアキーボードの選択
  • ビルド失敗とBuildツールウィンドウ
  • Welcome画面でのアップデートの表示
  • Structureツールウィンドウ
  • プロジェクトのzipファイルを作成する
  • Android公式ドキュメント
  • タイムゾーンの設定

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.33 表2.1 Phone and Tableのテンプレート 上から4つ目 2刷
Button Navigation Activity Bottom Navigation Activity 2023/04/28
p.179 Buttonの配置表内のtext属性 2刷
bt_next @string/bt_next 2023/10/24
p.180 Buttonの配置表内のtext属性 2刷
bt_previous @string/bt_previous 2023/10/24
p.238 手順[5] 本文1行目 2刷
手順2と同様に、 手順4と同様に、 2024/01/18
p.242 図9.23 矢印の根元部分 -
id が fragmentMainContainer id が fragmentListContainer 2025/04/05
p.278 リスト11.2 下から2行目 2刷
// アクセスするための // アクセスするための 2024/01/18
p.289 リスト11.7 2刷
val reader = BufferedReader(InputStreamReader(stream, StandardChatsets.UTF_8)) val reader = BufferedReader(InputStreamReader(stream, StandardCharsets.UTF_8)) 2023/07/15
p.308 11.8.2項 本文 1行目 2刷
図11.13では 図11.19では 2023/07/09
p.310 [6]の見出し 2刷
JSON解析コードが記述されたweatherInfoPostRunner()メソッドを追記する JSON解析コードが記述されたshowWeatherInfo()メソッドを追記する 2023/07/09
p.315 11.8.9項 本文1行目 2刷
図11.13を見てください 図11.19を見てください 2023/07/09

FAQ

本書サンプルへの影響について、配布サンプルの「はじめにお読みください.pdf」にまとめておりますので、ご覧ください。

主な変更点は以下の通りです。

・テンプレートの変更
Empty Activity → Empty Views Activity

・デフォルトのテーマが NoActionBar に変更
伴い8.2 節「オプションメニュー」のサンプルを動作させるためには、テーマの変更が必要

・ マテリアル 3 の採用
16.1 節は、マテリアル 2 を前提に解説しています

・R 値判定の switch 利用不可
switch の利用ができなくなったので、代わりに if を利用

更新日: 2023.05.11

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』