Androidアプリを作成するのに公式ドキュメントを参照しますが、どこにどんなことが書いてあるのかや、初心者が知っておくと良いかもしれないことについて書きます。
場合により記事公開後にも修正や加筆するかもしれません。
公式サイト
公式サイトは以下です。
基本的にすべてのリンクは日本語(向け)ページになっています。
Android デベロッパー
画面上部(PCの場合)にプラットフォーム、Android Studio、Google Play、Jetpack、Kotlin、ドキュメント、ニュースとあります。
よく見ることになるのはドキュメントだと思います。
ドキュメント
では、さっそく見ていきましょう。
勉強の中心になるのは「ドキュメント」の中でも、「ガイド」というところです。
ガイド
ここには「アプリの基本」から始まり、多様な内容について説明があります。
初心者が見て理解できるかはさておき、理解しておくべき概念から実際のコードまで一通り記載されていると思います。
「アプリの基本」と「主要トピック」を見るとなんとなくアプリの全体像がわかってくるんじゃないかと思います。
ちなみにアプリを公開しようという段階になるとここの説明だけだと足りずほかのところも見ることになると思います。
また、ここにないライブラリを使おうと思ったりすると別のところを見る必要が出てきます。
GoogleのライブラリのGoogle Map SDKとかFirebaseとか。ほかにも色々。
アプリの基本
アプリの基本
Hello World的な感じでなんとなくの全体像をつかめれば良いと思います。
色々わかってくると後で戻って読むことになるとも思いますが、まずはなんとなくわかれば十分かと思います。
主要トピック
主要トピックは、アクティビティの概要から始まります。
ここは重要な概念の説明が多く説明されているので理解すべきですが、最初は理解できないと思います。
なんとなくの用語がわかるようになればまずは良いような気がします。
フラグメント
とても重要な用語、概念のフラグメントは、「アクティビティの概要」の中の一節となっているのでフラグメントを探すときはアクティビティのところを探しましょう。
ちなみになぜか日本語化されていないドキュメントが多いです。重要なのに。
Android アーキテクチャ コンポーネント
Android アーキテクチャ コンポーネント
これはJetpackの一部ということになっています。
Android デベロッパーのトップレベルに「Jetpack」というのがありましたが、それです。
比較的新しいライブラリ群のことです。基本的にこれを使いましょう。
以下の項目はここにありますが、これらがアーキテクチャ コンポーネントだと知らないとわからないので難しいです。
- DataStore
- ビューバインディング
- データバインディング
- ライフサイクル(Lifecycleライブラリ、クラス)
- LiveData
- ViewModel
- Work Manager
- ページングライブラリ
など
Navigation コンポーネント
これも比較的新しいライブラリです。
フラグメントのところでFragment Managerの使い方が紹介されていますが、これをラップしてくれるライブラリなのでこちらを使いましょう。
フラグメントのところのFragment Managerの使い方はどんなことができるのかの概念として知っておくと良いと思いますが、こちらを使う場合は直接使うことはないか少ないでしょう。
インテント
インテントとインテントフィルタ
ここにインテントについて説明がありますが、アクティビティの中の以下でも言及があります。両方見ましょう。
Parcelable と Bundle
ユーザー インターフェース
ユーザー インターフェース
レイアウトの話やアプリバー(画面上部や下部のメニュー等)があります。Toastもここです。
見た目の話と直接紐づかないのが設定の話です。
利用者が設定変更できるようにする話は以下にあります。
設定
サービス、バックグラウンド タスク
サービスというのは音楽プレイヤーのように別のアプリケーションを利用中も継続して動作し続けるための仕組みで、これとは別にバックグラウンドでファイルのダウンロードやアップロード(バックアップ等)をしたいというときのための仕組みある。そうした処理をどのような仕組みを使って実現すべきかというような話から説明がある。
サービスから見ていくと良いと思う。
バックグラウンド タスクは、バックグラウンド(利用者に見えない)でやるとなったときの説明。
権限
権限
利用者に求めるアプリの権限の話。
アプリケーション(全体)、アクティビティ、マニフェストに関連する。
アプリデータとファイル
アプリデータとファイル
ファイルやデータベースの説明が記載されている。
利用者が設定した設定データについては上で述べた「設定」のところに記載があるので要注意。
Jetpackの一部でもあるRoomの説明はこの中のローカルデータベースにデータを保存するに説明がある。
アーキテクチャ コンポーネントのところには記載が無いので要注意。
接続
接続
ネットワーク関連です。
VolleyとCronetというHTTPクライアントライブラリの説明があります。
他にBluetooth等もここです。
おすすめの方法
おすすめの方法には以下のことが書いてあります。
- 依存性注入(DI)
- テスト
- パフォーマンス
- ユーザー補助
- プライバシー
- セキュリティ
など
Kotlin
コードの表示をKotlinとしていると説明と合わないことが多々あります。
Kotlinの方が記述を省略できるケースが多く、文章の説明と一致せず理解できないことがありますがそういう場合はJavaのコードを表示してみましょう。