TECHNICAL MASTER はじめてのAndroidアプリ開発 第3版 AndroidStudio3対応

【最新 – Androidアプリ開発を学ぶおすすめ本 – 入門・独学勉強法】も確認する

Androidアプリ開発がはじめてでもよくわかる

現場で使われているAndroid-JAVAのUI等の使い方が丁寧に詳しく載っています。HTTP通信のサンプルはもちろん、アプリ公開手順まで載っているため、はじめてのアプリ公開もスムーズに行うことができます。内容も濃く、初学者にうってつけの一冊です。

山田 祥寛 (著)
秀和システム; 第3版 (2019/8/10)、出典:出版社HP

はじめに

本書は、Android環境でのプログラミングを初めて学ぶ人のための書籍です。Androidプログラミングの学習書ということで、そのコーディングに利用するJava言語については、最低限理解していることを前提としています。本書でもできるだけ細かな解説を心がけていますが、Javaそのものについてより詳しく学びたいという方は、拙著「独習Java新版」(翔泳社)などの専門書を合わせてご覧頂くことをお勧めします。本書の構成と各章の目的を、以下にまとめます。

導入編(第1章:イントロダクション~第2章:はじめてのAndroidアプリ)
そもそもAndroidとはなんぞやというところから始まり、Androidプログラミングのための環境を準備します。また、実際にプロジェクトを作成し、簡単なアプリケーションを作成していく過程で、Androidにおける基本的な開発の流れ、アプリの構造を理解します。

基本編(第3~7章:ビュー開発)
導入編で大まかな開発の流れを理解できたところで、ウィジェットやレイアウトを利用してアプリの見た目(ビュー)を開発する方法を理解します。ここでは、単に見た目だけでなく、画面から入力されたデータをどのように受け取り、どのように結果に反映させるかという点についても学びます。

応用編(第8章:インテント〜第11章:サービス開発&アプリの公開)
画面同士を連携させるためのインテント、SQLiteデータベース、センサー/GPSなどのハードウェアとの連携、そして、裏方の処理を担うサービスの開発など、より実践的なアプリを開発していくためのさまざまなテーマについて学びます。これらを理解する過程で、Android習得の更なるステップアップの手がかりとしてください。

本書が、Android開発に興味を持ったあなたにとって、はじめの一歩として役立つことを心から祈っています。
なお、本書に関するサポートサイトを以下のURLで公開しています。Q&A掲示板はじめ、サンプルのダウンロードサービス、本書に関するFAQ情報、オンライン公開記事などの情報を掲載していますので、あわせてご利用ください。
https://wings.msn.to/

最後にはなりましたが、タイトなスケジュールの中で筆者の無理を調整いただいた秀和システムの編集諸氏、そして、傍らで原稿管理/校正作業などの制作をアシストしてくれた妻の奈美、両親、関係者ご一同に心から感謝いたします。

2019年7月吉日 山田祥寛

山田 祥寛 (著)
秀和システム; 第3版 (2019/8/10)、出典:出版社HP

目次

本書の読み方

01→イントロダクション

01-01 Android の概要を理解する [Android・ART・バージョン]
●Androidとは?
●Androidのアーキテクチャ
●Androidランタイムとは?
●Androidのバージョン

01-02 Android の開発環境を整える [JDK・Andoid Studio・Android SDK・AVD]
●Androidプログラミングに必要なソフトウェア
●Android Studioのインストール方法
●AVDの作成

01-03 Android Studioの画面構成を理解する [ツールウィンドウ]
●プロジェクトウィンドウ・エディター
●構造 (Structure)
●Logcat_
●Inspection
●ターミナル
●TODO

02→はじめてのAndroidアプリ

02-01 Android アプリのプロジェクトを理解する [プロジェクトの構造]
●プロジェクトの作成
●実機での起動

02-02 サンプルアプリの内容を確認する [アプリの構造]
●サンプルアプリの基本的な構造
●アプリの「ウィンドウ」を定義する – Activity クラス
●補足:サポートライブラリ
●補足:Rクラスとは?
●アプリの見栄えを定義する – レイアウトファイル
●文字列リソースを管理する – strings.xml
●アプリの基本情報を定義する – マニフェストファイル

02-03 アプリ開発の基本キーワードを理解する [レイアウト・イベント・ログ・デバッグ]
●画面をデザインする – レイアウトエディター
●ボタンクリック時の処理を定義する-イベントハンドラー
●ボタンクリック時の処理を定義する イベントリスナー
●補足:匿名クラス
●補足:ラムダ式
●端末の回転時に画面の状態を維持する
●文字列をトースト表示する
●ログを出力する – Logcat ビュー
●アプリをデバッグする

03→ビュー開発(基本ウィジェット)

03-01 基本的な入力/出力を理解する [TextView ImageView. EditText]
●テキストを表示する – TextView
●画像を表示する – ImageView
●自由テキストを入力する – EditText

03-02 入力ウィジェットを理解する
[CheckBox.ToggleButton・RadioButton・SeekBar・Spinner]
●オン/オフのボタンを作成する – CheckBox
●オン/オフを作成する(2) – ToggleButton
●単一選択のボタンを作成する – RadioButton
●シークバーを作成する – SeekBar
●スピナーを作成する – Spinner

03-03 便利ウィジェットを活用する [RatingBar・WebView]
●評価を★印で表示/入力する – RatingBar
●アプリにWebページを埋め込む – WebView

04→ビュー開発(ListView / RecyclerView)

04-01 リスト作成の基本を理解する [ListView]
●配列リソースをリストに整形する
●Javaコードからリストを生成する

04-02 ListView のイベント処理を理解する
[Onltem ClickLstener. OnScrollListener. OnQueryTextListener]
●クリック可能なリストを作成する単一選択可能なリストを生成する
●複数選択可能なリストを生成する
●専用の選択画面を持ったリストを準備する
●リストのスクロールを検知する
●検索機能付きのリストを作成する – SearchView

04-03 リストのレイアウトをカスタマイズする [SimpleAdapter. BaseAdapter]
●SimpleAdapter で ListViewをカスタマイズする
●自作のアダプターを利用する

04-04 より柔軟性のあるリストを作成する [RecyclerView Card LView]
●レイアウトファイルを作成する
●アダプタークラスを作成する
●アクティビティを準備する

05→ビュー開発(レイアウト&複合ウィジェット)

05-01 ウィジェットの配置方法を理解する [レイアウト]
●ウィジェットを縦/横一列に配置する – LinearLayout
●ウィジェットを格子状に配置する – TableLayout
●相対的な位置関係でウィジェットの配置を決める – ConstraintLayout

05-02 タブパネルやフリップ可能なビューを作成する
[ViewPager・TabLayout・ScrollView]
●タブパネルを作成する – TabLayout
●フリップ可能なパネルを生成する – ViewPager
●画面のスクロールを有効にする – ScrollView

06→ビュー開発(ダイアログ&メニュー)
06-01 さまざまなダイアログを作成する
[AlertDialog・DatePickerDialog・TimePickerDialog]
●シンプルなダイアログを表示する
●[はい][いいえ][キャンセル]ボタンを表示する
●アクティビティからダイアログに値を引き渡す
●リスト選択型のダイアログを作成する
●リスト選択型のダイアログを作成する – ラジオボタン
●リスト選択型のダイアログを作成する – チェックボックス
●日付ダイアログを作成する
●時刻入力ダイアログを作成する
●自作のダイアログボックスを作成する

06-02 オプションメニューやコンテキストメニューを作成する [メニュー]
●オプションメニューを作成する
●コンテキストメニューを表示する
●メニューを動的に作成する

07→ビュー開発 (応用)

07-01 ビュー描画の基本をおさえる [View Canvas Paint]
●ビューの正体
●カスタムビューの基本
●さまざまな図形を描画する

07-02ビュー描画の理解を深める [Path・SurfaceView]
●簡易な落書き帳アプリを作成する
●高速描画に対応したSurfaceViewクラス

07-03 アプリにアニメーション機能を実装する
[Tweenアニメーション・Propertyアニメーション・Frameアニメーション」
●Tweenアニメーションの基本
●さまざまなTweenアニメーション
●Tweenアニメーションをプログラムだけで実装する。
●アニメーションの過程をカスタマイズする – インターポレーター
●Frameアニメーションの基本
●Frameアニメーションをプログラムだけで実装する
●Propertyアニメーションの基本
●Propertyアニメーションをプログラムだけで実装する

07-04 アプリのデザインを一元管理する [テーマ・スタイル]
●スタイルの基本
●テーマの基本

08→インテント

08-01 インテントの基本を理解する [Intent・ライフサイクル]
●インテントの種類
●アプリ内でアクティビティを切り替える
●アクティビティの表示方式とライフサイクル

08-02 画面間でデータを授受する [Intent.startActivityForResult]
●アクティビティ起動時にデータを引き渡す
●呼び出し先のアクティビティから結果を受け取る

08-03 「やりたいこと」からアプリを起動する [暗黙的インテント]
●暗黙的インテントの基本
●さまざまなアクションの指定方法
●暗黙的インテントを受け取る

08-04 画面サイズの異なるデバイスに対応する [フラグメント]
●一覧/詳細画面を持ったアプリを実装する
●一覧/詳細画面をスマホ環境に対応する

08-15 画面遷移を伴うアプリを視覚的に設計する [ナビゲーションエディター]
●ナビゲーションエディターの基本
●デスティネーション間で値を引き渡す
●ページタイトルをツールバーに反映させる

09→データ管理

09-01 ファイルにデータを保存する [openFileInput open FileOutput]
●データをファイルに保存する
●データをファイルから読み込む
●ファイル名を指定して保存する
●指定されたファイルを読み込む

9-02 データベースにデータを保存する [SQLite]
●データベース概論
●SQLiteデータベース利用の流れ
●SQLiteデータベースを開く – SQLiteOpenHelper
●補足:複数件のデータを効率よく登録する方法
●SQLiteデータベースの内容を確認する
●書籍管理アプリを作成する
●更新処理を実装する

09-03 アプリの設定情報を管理する [Preference]
●基本的な設定画面を作成する
●さまざまなPreference

10→ハードウェアの活用

10-01 位置情報を取得する [Googleマップ . Fused Location ProviderApi]
●Googleマップを利用するための準備&設定
●地図表示の基本を理解する
●表示切替ボタン/ズームボタンを設置する
●現在位置を監視&表示する

10-02 HTTPでサーバーと通信する
[Http URL Connection. AsyncTask. AsyncTaskLoader]
●HTTPの基本
●ネットワーク通信の基本
●AsyncTaskクラスを利用した非同期処理の実装
●進捗状況をプログレスバーに表示する
●HTTP POSTでサーバーにデータを送信する
●ネットワーク経由で構造化データを取得する
●AsyncTaskLoaderクラスによる非同期処理

10-03 音声ファイルを再生/録音する [MediaPlayer・MediaRecorder]
●音声ファイルを再生する
●音量を調整する
●音声を録音する

10-04 ハードウェアのその他の機能 [Sensor・GesutureDetector・Vibrator]
●Androidの各種センサーを利用する
●加速度センサーでシェイクを検出する
●複雑なタッチイベントを処理する – GestureDetectorクラス
●バイブレーション動作を実装する

11→サービス開発&アプリの公開

11-01 サービスを開発する [ServiceIntentService BroadcastReceiver.Notification]
●サービスの基本
●サービスで定期的なタスクを実行する
●別スレッドで動作するサービスを定義する
●プロードキャストでアクティビティにデータを引き渡す
●サービスの状態をステータスバーに通知する

11-02 自作のアプリを公開する [Google Play]
●Googleアカウント&デベロッパーアカウントの作成
●デジタル署名したパッケージファイルの作成
●Google Playへのアプリ登録&公開

索引

コラム
Androidの歴史
プロジェクトを.zipファイル化する
Android Studioの日本語化
新たなAndroidアプリ開発言語「Kotlin」
Androidをもっと学びたい人のための関連書籍
日本語化したAndroid Studioを元に戻すには?

山田 祥寛 (著)
秀和システム; 第3版 (2019/8/10)、出典:出版社HP

本書の読み方

■動作確認環境
本書内の解説/サンプルプログラムは次の環境で開発&動作確認しています。
・Windows 10 Pro (64bit)
・Android Studio 3.4
・Android仮想デバイス(Android 9.0)
・実機 (Android 8.0)

■配布サンプルについて
・本書のサンプルプログラムは、著者が運営するサポートサイト「サーバサイド技術の学び舎 – WINGS」(https://wings.msn.to/) – [総合 FAQ/訂正&ダウンロード]からダウンロードできます。
・ダウンロードサンプルは、以下のようなフォルダー構造となっています。

■サンプルプロジェクトの利用方法
サンプルプロジェクトをAndroid Studio環境で利用するには、セクション 02-02の手順を終えた上で、以下のような手順でサンプルを起動してください。

[1] サンプルプロジェクトを解凍する
サンプルプロジェクトは、ダウンロードサンプルに /samples/chapXX/<プロジェクト名>.zip(XXは章番号)というファイル名で保存されています。インポートしたいプロジェクトを、適当なフォルダーにあらかじめ解凍しておいてください。/<プロジェクト名>という名前のフォルダーができたことを確認します。

[2] サンプルプロジェクトを開く
[Welcome to Android Studio]ウィンドウから[Open an existing Android Studio project]をクリックします。既にAndroid Studioの開発画面を開いている場合は、メニューバーの[File] – [Open]をクリックします。
[Open File or Project]ダイアログが開くので、起動したいプロジェクトを選択して、 [OK]ボタンをクリックします。

[3] プロジェクトの内容を確認する
プロジェクトを開けたら、プロジェクトウィンドウに以下のようにサンプルプロジェクトの内容が表示されていることを確認してください。

本書の構成

山田 祥寛 (著)
秀和システム; 第3版 (2019/8/10)、出典:出版社HP