🦔

Android Kotlin Fundamentalsで学ぶ その1

2020/10/18に公開

はじめに

この記事はGoogleが提供しているCodelabの中のAndroidを作りながら学ぶAndroid Kotlin Fundamentalsコースで学習した内容を自分用に残していくものです。間違っていることなどあればコメントをいただけるとありがたいです!
また、このコースを作成いただいたGoogleDevelopersTrainingチームのみなさま本当に感謝します!

この記事について

その1では、Android Kotlin Fundamentalsで学べるコース概要と、Lesson1について残していきます。

コース概要

コースは10レッスンからなっており、それぞれ以下のコースを提供しています。

Lesson1: Build your first app

このレッスンではKotlinを使用するためのAndroidStudioの設定とアプリの作成方法について説明しています。「HelloWorld」から初めて、Imageとクリックハンドラを追加します。また、Androidの構造、ビューの使用・変更方法、アプリの後方互換性について説明します。加えて、APIレベルとAndroidJetpackライブラリについても学びます。

Lesson2: Layouts

このレッスンでは、LinearLayoutConstraintLayoutを用いてレイアウトを作成する方法を学びます。また、findViewByIdメソッドとdatabindingによる呼び出しの方法も説明しています。

Lesson3: Navigation

このレッスンでは、アプリ内のナビゲーションを作成する方法を説明しています。Fragmentを作成し、ナビゲーションを追加する流れで説明されています。ナビゲーションでは戻る操作(バックスタック)の宛先の変更や、外部アクティビティの呼び出し方法も学びます。

Lesson4: Activity and fragment lifecycles

このレッスンでは、アクティビティフラグメントのライフサイクルと、複雑な状況の管理方法について説明しています。ライフサイクルイベントの確認のため、アプリにログを追加し、バグを修正、拡張機能の追加を行います。また、AndroidJetpackのライフサイクルライブラリによる簡単な保守・管理方法についても学びます。

Lesson5: Architecture components

このレッスンでは、ViewModelLiveDataの使い方について学びます。ViewModelオブジェクトを使って、画面の回転などの構成の変更にデータを耐えられるようにします。またUIデータをカプセル化されたLiveDataに変換し、変更があった際に通知されるObserverについても学びます。
また、ViewModelLiveDataDataBindingと統合してアプリのFragmentを使わず直接レイアウトとViewModelオブジェクトが通信できることで、コードの簡素化やUIを単純化することができます。

Lesson6: Room database and coroutines

このレッスンでは、Roomと言われるデータベースライブラリについて説明します。また、kotlinの子ルーチンを使ってデータベースの操作を行う方法を学びます。

Lesson7: RecyclerView

このレッスンでは、RecyclerViewを使ってリストやグリッドを効率的に表示する方法を学びます。RecyclerViewでコードの保守・拡張を簡単に行う方法も学びます。

Lesson8: Connectiong to the internet

このレッスンでは、Retrofitというライブラリを使ってデータを取得、表示する方法を学びます。また、ネットワークエラーハンドリングの処理やGlideというライブラリを使ってインターネットから画像を表示する方法、RecyclerViewで画像を表示する方法を学びます。

Lesson9: Repository

このレッスンでは、データを抽象化してクリーンなAPIを提供する方法を学びます。また、WorkManagerを使用して効率的かつ最適化された方法でバックグラウンドタスクをスケジュール方法も学びます。

Lesson10: Designing for everyone

このレッスンでは、Androidアプリの設計の基本について学びます。マテリアルデザインによって使いやすいアプリを作る方法を学びます。

Lesson1: Build your first app

  • 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