スタートダッシュAndroid 〜アプリエンジニアの必須ノウハウをサクっと押さえる
- 山本尚紀,亀井栄利,浜田瑛樹,橋本早樹 著
- 定価
- 2,948円(本体2,680円+税10%)
- 発売日
- 2020.8.31
- 判型
- A5
- 頁数
- 272ページ
- ISBN
- 978-4-297-11611-8 978-4-297-11612-5
サポート情報
概要
「Androidアプリ開発に必要なものは?」
「Kotlinはどうやって書くのか?」
「アプリのデザインはどうなっている?」
「開発現場で使われているOSSは?」
Androidアプリエンジニアとして業務をこなすには、ただAndroidアプリが開発できるだけでは足りません。現場で使われている技術や知識を学ぶ必要があります。
本書では、「これからAndroidアプリ開発を始める = スタートダッシュする」ことを目的に、開発環境の知識からKotlinの基本はもちろん、UIデザイン、現場でデファクトとも言えるOSSの使い方、テストの基礎まで、スタートダッシュするために本当に必要な情報を濃縮。現場のエンジニアが、チームに入る新人に「とりあえずコレだけは押さえておいて」という生きたノウハウを伝授します。アプリエンジニアを目指す方はもちろん、これからアプリ開発にも業務の幅を広げたいエンジニアにとっても必携の1冊です。
こんな方にオススメ
- Androidアプリ開発のエンジニアをこれから目指す人、開発チームにこれから参加する人
- 現場の生きたノウハウを知って、新たに参加するチームの開発に活かしたいエンジニア
目次
- はじめに
第0章 Androidアプリエンジニアの現場の世界
0-1 Androidアプリエンジニアとは
0-2 今後のAndroidアプリ業界を学ぶために
- Google I/O
- Android Dev Summit
- DroidKaigi
第1章 これだけは知っておきたいAndroidアプリ開発のはじめ方
1-1 Androidアプリ開発に必要なもの
- PCを用意する
- Googleアカウントを用意する
- Android Studioを用意する
- Android端末を用意する
1-2 Androidと開発環境を知る
- Androidとは何か
- 開発環境
- Android SDK
1-3 アプリのリリースとGoogle Play
- アプリのリリースと配布方法
- Google Playでアプリを配信する
- Google Playで配信の申請をおこなう
1-4 Android Studioの基礎知識
- Android Studioのインストール
- セットアップ
- プロジェクトの作成
- Android Studioの画面の基本構成
1-5 Androidアプリを実行する
- エミュレータの作成と起動
- ビルドを実行する
- アプリのデバッグ
第2章 Android開発の新言語Kotlinを学ぼう
2-1 Kotlinをはじめる
- Kotlinとは
- REPLを起動する
- Kotlinを実行する
2-2 変数とコメント
- コメント
- 変数
2-3 Kotlinにおける型を理解する
- 数値型(整数)
- 数値型(浮動小数点)
- 数値演算子
- 文字列(String型、Char型)
- 文字列演算子
- 数値と文字列の連結
- 文字列から文字を取得する
- 論理値Boolean型
- 代入演算子
- 範囲
- null許容型
2-4 条件分岐(if文とwhen文)
- if文
- if else文
- when文
2-5 コレクションとくり返し(for文)
- List
- Set
- Map
- 配列
- for in(コレクションのくり返し)
2-6 クラスと継承
- クラスとオブジェクトの関係
- クラスを定義する
- コンストラクターでプロパティを定義する
- メソッドを定義する
- コンパニオンオブジェクト
- クラスを継承する
- メソッドのオーバーライド
- プロパティのオーバーライド
- スーパークラス実装の呼び出し
- インターフェースを宣言する
- インターフェースを実装する
- インターフェースのプロパティ
- パッケージ
- 可視性修飾子
- インポート
- データクラス
2-7 高階関数とラムダ
- sortBy()でラムダ式を指定する
2-8 スコープ関数と拡張関数
- スコープ関数
- 拡張関数
2-9 コルーチンとKotlin Coroutines Flow
- プロジェクトの設定
- コルーチンとは
- 中断関数
- コルーチンディスパッチャー
- スコープのキャンセル
- コルーチンの並列処理
- Kotlin Coroutines Flow
第3章 Androidアプリを作ってみる
3-1 基本的なAndroidアプリの作り方を押さえる
- Android SDKフレームワークでアプリを開発する
- サポートライブラリとJetpack
- 10秒連打アプリを作ろう
3-2 タイトル画面を作る
- 新規プロジェクトを用意する
- タイトルを変更する
- 文字列リソースを管理する
- Androidの画面レイアウト方法
- ConstraintLayoutで縦横いっぱいに設定する
- ゲーム画面に遷移するボタンを追加する
3-3 ゲーム画面への遷移を実装する
- Androidでの画面遷移を押さえる
- 画面用のFragmentを作る
- Navigation Graphで画面のページ遷移を設定する
- 管理するActivityでFragmentを表示する
- タイトル画面のボタンにクリックリスナーを設定する
- Activity/Fragmentのライフサイクルを押さえる
- イベント処理
- ゲーム画面に遷移させる
3-4 ゲーム画面を作る
- ボタン連打をDataBindingで実装する
- ボタンカウント用のViewModelを作る
- ボタンにViewModelを設定して双方向バインディングを実現する
- 連打回数「数字+単位(回)」をBindingAdapterで表示する
- ViewModelでタイマーを作る
- タイマーを起動して表示する
- 10秒後に結果画面に遷移させる
3-5 結果を表示する
- 結果画面で連打回数を表示する
3-6 ゲームレコードを管理する
- JetpackのViewModelでデータを共有する
- RecylerViewを使ってListを表示する
- 結果画面を作る
- レコードに更新があったら一覧を更新する
第4章 OSSを駆使した現場の実践TIPS
4-1 Androidアプリ開発とOSS
- AOSPとは
- AOSPのソースコード
- Android StudioでOSSのソースコードを参照する
- ライセンス
- OSSを使用するメリットとデメリット
- OSSを使用するかの判断
4-2 GradleでOSSを管理する
- build.gradle
- サンプルプロジェクトの作成
- ライブラリの追加
- ライブラリの更新
- ライブラリの削除
4-3 Timberを使用してログ出力を実装する
- サンプルプロジェクトを作成する
- ライブラリを追加する
- アプリのエントリーポイントを用意する
- Timberの初期化処理を実装する
- ログ出力を実装する
- Timberを使用するメリット
4-4 Retrofitを使用して通信処理を実装する
- サンプルプロジェクトを作成する
- ネットワーク通信に必要なパーミッションを設定する
- ライブラリを追加する
- GitHub APIの仕様
- JSONの変換
- APIのモデルを定義する
- APIのインターフェースを定義する
- Retrofitを使用してインターフェースの実装を生成する
- Web APIの呼び出しを実装する
- 動作確認
4-5 Glideを使用してWeb上の画像を表示する
- サンプルプロジェクトを作成する
- ネットワーク通信に必要なパーミッションを設定する
- ライブラリを追加する
- 画像を表示するためのImageViewを用意する
- AppGlideModuleを実装する
- 画像のダウンロード表示を実装する
- 動作確認
- プレースホルダーを設定する
- 角丸を設定する
- 表示アニメーションを設定する
4-6 oss-licensesを使用してライセンス表記画面を用意する
- サンプルプロジェクトを作成する
- Gradleプラグインを追加する
- ライブラリを追加する
- ライセンス表記画面の表示機能を実装する
- ライセンス表記画面の内容
第5章 Android開発テストの超入門
5-1 Androidのテストとは
- 手動テストと自動テスト
- テストの規模を押さえる
- Android Studioによる2つの自動テスト
- Android Studioで自動テストをはじめる
5-2 ローカル単体テスト
- テスト対象のクラスを作成する
- 新しいテストクラスを追加する
- テストクラスの基本構成
- テストケースを作成する
- アサーションを作成する
- AndroidX Testライブラリのサポート
5-3 UIテスト
- ライブラリを追加する
- UIテスト対象のアプリを作成
- UIテストを作成
- UIテストの実行
- スクリーンショットを撮る
5-4 CI/CD超入門
- CI/CDとは
- GitHub ActionsでCIを実施する
- 索引
プロフィール
山本尚紀
クラスメソッド株式会社所属のAndroidアプリエンジニア。2010年に発売された初代Xperia入手を機にWebアプリ開発業務と並行して個人でAndroid開発に取り組み始める。個人での実績が評価され業務でさまざまなAndroidアプリ開発を担当。現在はAndroid開発を専門としている。
亀井栄利
クラスメソッド株式会社所属のAndroidアプリエンジニア。PHP5時代でSynmfony2をやっていたが、気がついたらAndroidアプリをやっていた。今はReact Native、React Native for Webを使ったアプリに挑戦している。ボードゲームが大好き。
浜田瑛樹
クラスメソッド株式会社所属のAndroidアプリエンジニア。サーバーサイドの技術を独学し、異業種からソフトウェアエンジニアに転職。前職の社長の「これからはAndroidの時代だ!」の声に引っ張られAndroidアプリ開発に取り組むように。最近は猫2匹と在宅勤務が続いている。
橋本早樹
クラスメソッド株式会社所属のAndroidアプリエンジニア。ネットワーク、インフラ系のシステムエンジニアとして働いていたが、スマートフォンが普及してきたときにAndroidに興味を持ち始めた。そこからアプリの開発手法を勉強し、アプリエンジニアとして転職。
著者の一言
この本は、これからAndroidアプリ開発を始める人に向けた入門書です。
まず、「Androidアプリ開発を始める」とはどういうことかを少し考えてみます。Androidが誕生してからすでに10年以上になり、いくつものアプリが世の中にリリースされています。Androidアプリが少なかった時は、基本的な機能しか持たないアプリや少し動作が不安定なアプリでも、ある一定のダウンロードがされていました。しかし、アプリがあふれる現在ではより高い品質が求められています。
また、電話やメール、タスク管理といった一般的な用途以外に、Androidは業務用の端末にも広く普及しています。たとえば、飲食店のレジや注文端末としてAndroid端末が使用されています。そうした業務用のアプリを開発するには、その業界の知識も必要です。
開発側の視点でも考えてみましょう。Android SDKやAndroid StudioといったAndroidアプリ開発に欠かせないツールやサービスは、日に日に進化を遂げています。しかし、進化の中で追加された機能と古く使えなくなった機能が積み重なり、Androidアプリ開発を始めるうえで必要な知識やノウハウは、かなり膨大な量となりました。
こうした状況から、これからAndroidアプリ開発を始めることは、非常にハードルが高くなっています。
本書では「これからAndroidアプリ開発を始める=スタートダッシュする」ことを目的に、数多くのAndroidアプリ開発の知識やノウハウから「スタートダッシュするために本当に必要な情報」を濃縮して構成しています。
本書は、読者のみなさんがAndroidアプリ開発をするデスクの脇に置いてもらい、何度も見返しながら開発を頑張る姿をイメージしながら執筆しました。執筆者一同、同じようにしてスタートダッシュを切ってきました。その時を思い返しながら「開発を始める時にはどのような情報があると理解できるのか」をポイントに、掲載する内容を吟味しました。
開発のスタートダッシュに寄り添う本として活用いただけたら幸いです。
(本書「はじめに」より)