ISBN: 978-4-7981-6044-3
基礎&応用力をしっかり育成!Androidアプリ開発の教科書 Kotlin対応
サポート終了
| 著者 | WINGSプロジェクト 齊藤 新三 |
|---|---|
| 監修 | 山田祥寛 |
| 出版社 | 翔泳社 |
| 価格 | 2,850円(税別) |
| 判型 | B5変判・2色 |
| ページ数 | 416ページ |
| 発売日 | 2019年7月10日 |
| 対象レベル | 初中級 |
「Androidアプリ開発の基礎力」を習得しよう!
本書は、Kotlin言語の学習者を対象として、ハンズオン形式でサンプルプログラムを作りながら、Androidアプリ開発に必要な基礎知識やSDKの機能、プログラミングテクニックを学ぶことができる書籍です。また、既刊のJava版と同じ構成のまま、Kotlinに対応させているので、JavaとKotlinを読み比べながら学んでいくことも可能です。
更新履歴
- FAQ情報:2020年10月5日 更新
- 正誤訂正:2020年12月28日 更新
目次
- 第1章 Androidアプリ開発環境の作成
- 1.1 Androidのキソ知識
- 1.2 Android Studioのインストール
- 第2章 はじめてのAndroidアプリ作成
- 2.1 はじめてのAndroidプロジェクト
- 2.2 AVDの準備
- 2.3 アプリの起動
- 2.4 Android Studioの画面構成とプロジェクトのファイル構成
- 2.5 Androidアプリ開発の基本手順
- 第3章 ビューとアクティビティ
- 3.1 ビューの基礎知識
- 3.2 画面部品をもう1つ追加する
- 3.3 レイアウトエディタのデザインモード
- 3.4 デザインモードで部品を追加してみる
- 3.5 LinearLayoutで部品を整列する
- 3.6 他のビュー部品─ラジオボタン/選択ボックス/リスト
- 第4章 イベントとリスナ
- 4.1 アプリ起動時に実行されるメソッド
- 4.2 イベントリスナ
- 4.3 ボタンをもう1つ追加してみる
- 第5章 リストビューとダイアログ
- 5.1 リストタップのイベントリスナ
- 5.2 アクティビティ中でリストデータを生成する
- 5.3 ダイアログを表示する
- 第6章 ConstraintLayout
- 6.1 ConstraintLayout
- 6.2 制約の設定には制約ハンドルを使う
- 6.3 ConstraintLayoutにおける3種類のlayout_width/height
- 6.4 横並びとベースライン
- 6.5 ガイドラインを利用する
- 6.6 チェイン機能を使ってみる
- 第7章 画面遷移とIntentクラス
- 7.1 2行のリストとSimpleAdapter
- 7.2 Androidの画面遷移
- 7.3 アクティビティのライフサイクル
- 第8章 オプションメニューとコンテキストメニュー
- 8.1 リストビューのカスタマイズ
- 8.2 オプションメニュー
- 8.3 戻るメニュー
- 8.4 コンテキストメニュー
- 第9章 フラグメント
- 9.1 フラグメント
- 9.2 スマホサイズのメニューリスト画面のフラグメント化
- 9.3 スマホサイズの注文完了画面のフラグメント化
- 9.4 タブレットサイズ画面を作成する
- 9.5 注文完了フラグメントのタブレット対応
- 第10章 データベースアクセス
- 10.1 Androidのデータ保存
- 10.2 Androidのデータベース利用手順
- 第11章 非同期処理とWeb API連携
- 11.1 AndroidのWeb連携
- 11.2 非同期処理
- 11.3 AsyncTask
- 11.4 HTTP接続
- 第12章 メディア再生
- 12.1 音声ファイルの再生
- 12.2 戻る・進むボタン
- 12.3 リピート再生
- 第13章 バックグラウンド処理と通知機能
- 13.1 サービス
- 13.2 通知
- 13.3 通知からアクティビティを起動する
- 第14章 地図アプリとの連携とGPS機能の利用
- 14.1 暗黙的インテント
- 14.2 緯度と経度指定で地図アプリを起動するURI
- 14.3 GPS機能の利用
- 14.4 GPS利用の許可設定
- 第15章 カメラアプリとの連携
- 15.1 カメラ機能の利用
- 15.2 ストレージ経由での連携
- 第16章 マテリアルデザイン
- 16.1 マテリアルデザイン
- 16.2 ScrollView
- 16.3 アクションバーより柔軟なツールバー
- 16.4 ツールバーのスクロール連動
- 16.5 CollapsingToolbarLayoutの導入
- 16.6 CollapsingToolbarLayoutにタイトルを設定する
- 16.7 FloatingActionButton(FAB)
- 16.8 Scrolling.Activity
- 第17章 リサイクラービュー
- 17.1 リストビューの限界
- 17.2 リサイクラービューの使い方
- 17.3 区切り線とリスナ設定
- Note
- Android Studioの動作環境
- 漢字表記のユーザー名に注意
- HAXMのインストール
- 不足ライブラリの自動ダウンロード
- ビルド中にさらに不足ライブラリがある場合
- Javaクラスの一意性
- 日本語入力でのIME強制終了
- プロジェクトの閉じ方
- プロジェクトの削除
- 単位
- オーバーライド
- AppCompatActivityクラス
- Android Studioでクラスのインポートを行う
- インナークラスとオブジェクト式
- プロジェクトのzipファイルを作成する
- onItemClick()の第2引数viewの利用例
- プロパティのセッタか通常のメソッドか
- android.R
- サポートライブラリのDialogFragment
- Welcome画面でのアップデートの表示
- etCommentのテキスト位置
- データを加工しながらListViewを生成するには
- Intentのコンストラクタ引数
- ログレベル
- xmlns:app属性のインポート
- app:showAsActionとandroid:showAsAction
- メニューの入れ子
- フラグメントでオプションメニューを使うには
- FrameLayout
- layout-weightの小数
- トランザクション
- DialogFragmentはフラグメント
- 開発中はアプリをアンインストールする
- 非同期でデータベース接続オブジェクトの取得
- rawQuery()でバインド変数を使う方法
- SQL文を使わない方法
- UIスレッド
- 可変長引数
- HTTP接続がPOSTの場合
- アップデートによる設定ファイルの引継ぎ
- 音声ファイルはなぜURI指定か?
- onPrepared()とonCompletion()の引数
- URLエンコーディング
- FusedLocationProviderClient
- Android公式ドキュメント
- カメラアプリの起動
- アプリのテーマ指定
- elevationの値
- なぜv7ライブラリはあらかじめ設定されているのか
正誤表
| 該当頁 | 該当箇所 | 修正刷 |
|---|---|---|
| 訂正箇所 | 訂正事項 | 更新日 |
| p.151 | リスト7.3 1行目 | - |
| public class MenuListActivity extends AppCompatActivity { | class MainActivity : AppCompatActivity() { | 2020/12/28 |
| p.244 | リスト106、リスト10.7 | 2刷 |
| helper.writableDatabase | _helper.writableDatabase | 2019/07/19 |
| p.314 | リスト14.3 | 2刷 |
| public void onMapSearchButtonClick(View view) { | fun onMapSearchButtonClick(view: View) { | 2019/07/27 |
FAQ
2020年7月31日(金)に、「livedoor 天気」のサービス提供が終了しました。
そのため11章のサンプルは、動作できなくなっております。
そのため11章のサンプルは、動作できなくなっております。
更新日: 2020.08.20
Instant Run関係のパッケージが不足している場合に起こるエラーのようです。
解決策については、以下の動画を参考にしてみてください。
https://www.youtube.com/watch?v=NlfgYV1DWPo
解決策については、以下の動画を参考にしてみてください。
https://www.youtube.com/watch?v=NlfgYV1DWPo
更新日: 2019.08.20
本書刊行後にKotlin言語の仕様変更があったようです。
以下のように修正してください。
var menu = mutableMapOf("name" to "から揚げ定食", …)
menuList.add(menu)
menu = mutableMapOf("name" to "ハンバーグ定食", …)
↓
var menu = mutableMapOf<String, Any>("name" to "から揚げ定食", …)
menuList.add(menu)
menu = mutableMapOf("name" to "ハンバーグ定食", …)
以下のように修正してください。
var menu = mutableMapOf("name" to "から揚げ定食", …)
menuList.add(menu)
menu = mutableMapOf("name" to "ハンバーグ定食", …)
↓
var menu = mutableMapOf<String, Any>("name" to "から揚げ定食", …)
menuList.add(menu)
menu = mutableMapOf("name" to "ハンバーグ定食", …)
更新日: 2020.10.05
ダウンロード
お問い合わせ
書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。
お問い合わせの前にFAQ・正誤表をご確認ください。すでに掲載済みの内容については個別回答が難しい場合があります。