WINGS(Www INtegrated Guide on Server-architecture)
Www INtegrated Guide on Server-architecture :
   ホーム お問い合わせ サーバーサイド環境構築設定 つぶやき ブックマーク レンタルサーバー 総合FAQ/訂正&ダウンロード このエントリーをはてなブックマークに追加        
  • 刊行書籍情報  [書籍マップ
  • オンライン公開 技術記事
  • シリーズ別書籍リスト
  • 「WINGS News」登録/解除
  • WINGSプロジェクト紹介
  • WINGSプロジェクトメンバ募集





【カテゴリ】 モバイル開発


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

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

WINGSプロジェクト 齊藤 新三/著
山田祥寛/監修
株式会社 翔泳社/発行
定価 3,135円
B5変版・ 472ページ・ 2色
ISBN 978-4-7981-7613-0
発刊日: 2023年1月24日

[Amazon.co.jpからオンライン購入する]

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

   FAQ 本書訂正 アンケート ダウンロード

本書の特徴

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

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

まとめて読んで 更にスキルアップのこんな書籍

・JavaでのAndroid開発を学びたいなら
基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Java対応」(翔泳社)
・Javaを使いこなすリファレンス
改訂3版Javaポケットリファレンス」(技術評論社)
・Javaを基礎から学ぶなら
独習Java 新版」(翔泳社)
・Kotlinの基礎をサクッと学ぶなら
速習 Kotlin」(WINGSプロジェクト)
分野・レベル別マップ

  Contents


第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公式ドキュメント
 タイムゾーンの設定

本ページへのリンクには、このロゴをご利用ください。


著作権情報個人情報保護について広告掲載についてRSSフィードについて
出版社の方々へ会社概要スタッフ紹介サイトマップ  
書籍/記事に関するご質問/お問い合わせは「WINGSお問い合わせフォーム」をご利用ください。
Copyright(c) 1998-2024,Yamada Yoshihiro.  All Right Reserved.