Android Kotlin Fundamentalsで学ぶ その1
はじめに
この記事はGoogleが提供しているCodelabの中のAndroidを作りながら学ぶAndroid Kotlin Fundamentalsコースで学習した内容を自分用に残していくものです。間違っていることなどあればコメントをいただけるとありがたいです!
また、このコースを作成いただいたGoogleDevelopersTrainingチームのみなさま本当に感謝します!
この記事について
その1では、Android Kotlin Fundamentalsで学べるコース概要と、Lesson1について残していきます。
コース概要
コースは10レッスンからなっており、それぞれ以下のコースを提供しています。
Build your first app
Lesson1:このレッスンではKotlinを使用するためのAndroidStudioの設定とアプリの作成方法について説明しています。「HelloWorld」から初めて、Imageとクリックハンドラを追加します。また、Androidの構造、ビューの使用・変更方法、アプリの後方互換性について説明します。加えて、APIレベルとAndroidJetpackライブラリについても学びます。
Layouts
Lesson2:このレッスンでは、LinearLayout
とConstraintLayout
を用いてレイアウトを作成する方法を学びます。また、findViewById
メソッドとdatabinding
による呼び出しの方法も説明しています。
Navigation
Lesson3:このレッスンでは、アプリ内のナビゲーションを作成する方法を説明しています。Fragment
を作成し、ナビゲーションを追加する流れで説明されています。ナビゲーションでは戻る操作(バックスタック)の宛先の変更や、外部アクティビティの呼び出し方法も学びます。
Activity and fragment lifecycles
Lesson4:このレッスンでは、アクティビティ
とフラグメント
のライフサイクルと、複雑な状況の管理方法について説明しています。ライフサイクルイベントの確認のため、アプリにログを追加し、バグを修正、拡張機能の追加を行います。また、AndroidJetpackのライフサイクルライブラリによる簡単な保守・管理方法についても学びます。
Architecture components
Lesson5:このレッスンでは、ViewModel
とLiveData
の使い方について学びます。ViewModel
オブジェクトを使って、画面の回転などの構成の変更にデータを耐えられるようにします。またUIデータをカプセル化されたLiveData
に変換し、変更があった際に通知されるObserver
についても学びます。
また、ViewModel
とLiveData
をDataBinding
と統合してアプリのFragment
を使わず直接レイアウトとViewModel
オブジェクトが通信できることで、コードの簡素化やUIを単純化することができます。
Room database and coroutines
Lesson6:このレッスンでは、Room
と言われるデータベースライブラリについて説明します。また、kotlinの子ルーチンを使ってデータベースの操作を行う方法を学びます。
RecyclerView
Lesson7:このレッスンでは、RecyclerView
を使ってリストやグリッドを効率的に表示する方法を学びます。RecyclerView
でコードの保守・拡張を簡単に行う方法も学びます。
Connectiong to the internet
Lesson8:このレッスンでは、Retrofit
というライブラリを使ってデータを取得、表示する方法を学びます。また、ネットワークエラーハンドリングの処理やGlide
というライブラリを使ってインターネットから画像を表示する方法、RecyclerViewで画像を表示する方法を学びます。
Repository
Lesson9:このレッスンでは、データを抽象化してクリーンなAPIを提供する方法を学びます。また、WorkManager
を使用して効率的かつ最適化された方法でバックグラウンドタスクをスケジュール方法も学びます。
Designing for everyone
Lesson10:このレッスンでは、Androidアプリの設計の基本について学びます。マテリアルデザインによって使いやすいアプリを作る方法を学びます。
Build your first app
Lesson1:-
AppCompatActivity
: Androidの後方互換性を提供しながら、最新のAndroid機能を全てサポートするサブクラス。
決まり文句みたいなもの - xmlファイル内で、
tools
属性を使用することで、プレビュー内での参照ができる。 - 互換性の管理: アプリレベルのbuild.radleで、
-
compileSdkVersion X
: Gradleがアプリのコンパイルに使用するAndroidAPIレベルの指定。つまり、アプリがサポートできる最新のバージョンのこと。 -
targetSdkVersion X
: アプリをテストした最新のAPI。大抵compileSdkVersion
と同じ値。 -
minSdkVersion Y
: アプリが実行されるAndroidの最も古いバージョンを決定するためのもの。このAPIレベルより古いAndroidOSはアプリの実行ができない。指定するバージョンが適切でないと新機能が使えなかったり、使えるデバイスが限られてしまうことがある。
-
-
Android Jetpack
ライブラリ: 後方互換性のあるクラスと便利な機能を提供するライブラリ。androidx.appcompat.app
パッケージからインポートされる。
まとめ
今回はLesson1についての記事を残しました。普段決まり文句のように扱っていたパッケージやライブラリなどの正しい解釈をすることができてよかったです。ゆっくり更新していきたいと思ってるので気長に読んでいただけたらと思います。
Discussion