基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3対応 (「黒帯エンジニア」シリーズ)

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

気軽に技術を身につけられる

Android/Javaを知らない方でも理解できるよう書かれており、既にプログラミング言語を理解した人にちょうど良い一冊です。大変読みやすく、発見もあり楽しんで読み進めることができます。

 

はじめに

■Androidをはじめよう
Androidはスマートフォン用のプラットフォームとしてGoogleによって開発さ れ、今や世界のスマートフォン市場の86%ほどを占めるまでに成長してきました。 その活躍の場はスマートフォンやタブレットだけにとどまらず、腕時計やテレビ、 さらには自動車へと広がってきています。このようなAndroidの躍進を支えている のは、Googleのみならず、端末ベンダーやオープンソースソフトウェアコミュニ ティ、そしてもちろん、世界中のアプリデベロッパーによって構成される、多様性のあるエコシステムと、そこから生みだされる良質なアプリたちです。

Androidをはじめとするスマートフォンの世界では、たとえ個人であっても、と ても簡単に世界中の人々に開発したアプリを届けることができます。そしてこの特 徴こそが、これまでスマートフォンが人々のライフスタイルを劇的に変化させてき た原動力でもあります。
読者のみなさまも、ぜひAndroidの世界へと足を踏み入れ、世界を変えるような アプリを作ってみてください。本書がそのきっかけとなることを願っています。

■本書の特色
本書は、プログラミングの基本は知っていても、Android向けのアプリを作った ことがなく、これからアプリ作りをはじめようとしている人や、アプリ開発をこれ から仕事としてはじめる人に向けて書いています。また、JavaでのAndroidアプリ 開発経験はあっても、Kotlinで開発したことがない人のために、Kotlinの基本的な文法についても解説しています。

Androidアプリ開発の世界はとても広大です。Googleが公開しているAndroid開発 者向けのガイドだけに絞っても、それを1冊の本でまとめあげるには、非常に多くの ページ数が必要となるでしょう。そのため、本書では特に業務でのアプリ開発でまず押さえておかなければならな いポイントに絞って解説を行っています。具体的にはAndroidアプリの開発言語で あるKotlinの基本的な文法、Androidアプリを構成する各コンポーネントとそのライ フサイクル、Androidアプリのリソースと単位系、データベースを使ったデータの 永続化、非同期処理、HTTP通信、そして通知に関する記述を厚くしています。

そしてそのうえで、開発の幅をより広げるために、位置情報や地図についても触 れています。注意すべきポイントや踏み込んだ知識についても、各所に散りばめました。本書を読み進めることで、業務の中である程度の開発が行えるようになれることを考えて執筆しました。Androidの世界は広がり続けています。Androidデベロッパーの需要は、これからも高まっていくでしょう。

本書が、読者のみなさまのお役に立つことを願っています。

2018年5月
森洋之

Contents

Chapter1 アプリ開発の準備
1-1 Androidアプリの現在
Androidアプリの概要

1-2 アプリ開発の流れ
企画
制作
開発
テスト
リリース
サポート

1-3 アプリ開発環境の準備
Windowsでの開発環境の準備
Macでの開発環境の準備
Android Studioの起動

1-4 Android Studioの概要
Android Studioのメイン画面
メニューバー・ツールバー・ナビゲーションバー
プロジェクトビュー
編集エリア
ツールウィンドウ・ステータスバー
プロジェクトの基本設定

1-5 エミュレータでの実行とAVDの設定
AVD ManagerでAVDの追加・設定を行う
エミュレータでHello World!を実行する
エミュレータの操作方法
AVDを日本語化する

1-6 実機の接続と設定
Android端末の開発者モードを有効化する
PCにUSBドライバを導入する
実機でアプリを実行する

Chapter2 Kotlinプログラミングの基本
2-1 KotlinとREPL
Kotlinの登場
Kotlin REPL
はじめてのKotlinプログラム

2-2 Kotlinの基本
変数と基本のデータ型
オブジェクトの集合
条件式
繰り返し

2-3 関数
関数
第一級オブジェクトとしての関数
例外処理

2-4 クラス
クラス
継承
null許容型

2-5 その他のトピック
スコープ関数
コレクションの便利なAPI
拡張関数
インライン関数
objectキーワード

Chapter3 Androidアプリを構成する要素
3-1 Androidアプリのコンポーネント
Androidアプリのエントリーポイント
アクティビティ
フラグメント
サービス
コンテントプロバイダー
ブロードキャストレシーバ

3-2 コンポーネントのライフサイクル
アクティビティのライフサイクル
フラグメントのライフサイクル
サービスのライフサイクル
コンテントプロバイダのライフサイクル
ブロードキャストレシーバのライフサイクル

3-3 静的リソースと単位
Android Studioでのリソースファイルの場所
文字列や数値
レイアウト
画像データ
その他の画像リソース
Androidの単位系

3-4 セキュリティデザインとパーミッション
Androidのアーキテクチャー
Androidのセキュリティデザイン
パーミッション
パーミッションの取得方法

Chapter4 はじめてのアプリ
割引計算機アプリで学ぶレイアウトと動作の基本
4-1 アプリ開発の概要とプロジェクトの作成
画面遷移について
アプリ開発の流れ
プロジェクトの作成

4-2 入力画面のレイアウト作成
編集エリアに「activity_main.xml」を開く
デザインエディターで編集する方法
テキストビューを配置する
ConstraintLayoutに接続する
エディットテキストを配置する
割引率入力欄を追加する
ボタンを配置する

4-3 さまざまな端末に対応する
さまざまな画面でのレイアウト確認
文字列リソースの定義

4-4 入力画面の実装
起動画面用のMainActivity
クリックイベントのハンドリング
画面の追加
画面の遷移

4-5 計算結果画面の実装
計算結果画面のレイアウト作成
計算結果画面の実装

4-6 アプリの動作確認とデバッグ
まずはエミュレータで実行してみる
デバッグ実行

4-7 さまざまなユーザー環境に対応する
リソースを管理して英語環境と日本語環境に対応する
さまざまな環境に合わせるリソースについて

Chapter5 データの永続化とリスト表示
世界時計アプリで学ぶデータの扱いとリスト表示
5-1 データの永続化とSharedPreferences
Androidでのデータ永続化
SharedPreferencesの仕組み
SharedPreferences用ミニアプリ

5-2 リストビューでリスト表示を行う
ビューをリスト表示する
リストビュー用ミニアプリ

5-3 世界時計アプリの作成
時刻表示画面の作成
時刻表示画面の実装(その1)
アダプターの作成
タイムゾーン選択画面の作成
時刻表示画面の実装(その2)

Chapter6 通信とバックグラウンド処理
RSSリーダーアプリで学ぶ非同期通信処理
6-1 非同期処理とローダー
非同期処理やスレッド間通信のための方法

6-2 リサイクラービューを使う
リサイクラービューについて
各画面項目の並べ方を決めるレイアウトマネージャー
リサイクラービューのアダプター
リサイクラービュー用ミニアプリ

6-3 RSSリーダーアプリのレイアウト
レイアウトの作成

6-4 RSSリーダーアプリの通信とデータ表示
ネットワーク通信処理
XMLデータを解析する
RSS用データクラスの作成
RSS用パーサーの作成
ローダーの作成
アダプターの作成
アクティビティの作成

6-5 アプリにWebページを表示する
Webページをアプリで表示する3つの方法
記事をタップしたときの処理の実装

6-6 定期ジョブ機能の追加
Androidの通知について
通知を送る手順
アクションの設定
スタイルの設定
RSSリーダーアプリの通知用関数
バックグラウンドで動作するサービス
定期実行とジョブサービス
RSSリーダーアプリのジョブサービス

Chapter7 ファイル入出力とフラグメントの利用
メモ帳アプリで学ぶファイルとフラグメント
7-1 ファイルの入出力とストレージ
Androidのストレージ
File API用ミニアプリ

7-2 アクティビティとフラグメント
フラグメントの利用方法
フラグメントの使い方をミニアプリで学ぶ

7-3 メモ帳アプリの作成
フラグメントのレイアウト作成
ファイルを扱うための関数を作成する
メモ入力用のフラグメントを作成する
ファイル一覧表示用のフラグメントを作成する

7-4 アップバーとナビゲーションドロワー
メモアプリのフラグメントの表示方法
アクティビティのレイアウトを作成する
タブレット用のレイアウトを作成する
アクティビティを修正する

Chapter8 ユーザーの位置と行動の記録
行動記録アプリで学ぶ位置情報の処理と地図
8-1 Google Maps Android APIについて
Google Maps Android APIについて
Google APIキーの取得
Google Maps用ミニアプリについて

8-2 データベースを使用する
SQLiteデータベースについて
SQLiteOpenHelperクラスを実装する
SQLiteデータベースオブジェクトの取得とデータ操作
SQLiteデータベース用ミニアプリについて

8-3 行動記録アプリの作成
プロジェクトの設定
データベースの作成
位置情報を受け取るサービスの作成
位置情報の取得をリクエストするフラグメントの作成

8-4 行動記録アプリを完成させる
レイアウトファイルの編集
地図の表示とマーカーの設置
スイッチフラグメントにonActivityResult()を伝える
日付を選択可能にする
アクティビティの再生成に対応する

Chapter9 アプリの公開
9-1 デジタル署名されたapkファイルを作成する
アプリケーションIDについて
Key storeの生成とapkファイルの署名

9-2 Google Playでの公開
デベロッパー登録を行う
アプリを公開する

Index

Column
初期の設計を大切に
Android Studioのアップデートとツール追加のメッセージ
Instant Run機能について
GradleとGroovy
エミュレータを高速化するIntel HAXMの起動に関する注意
ライフサイクルの可視化
パッケージとアプリケーションID
リサイクラービューとサポートライブラリー
ライブラリとbuild.gradle