Open6
「作って学ぶ Androidアプリ開発」で躓きメモ

Android Studioのテンプレートが書籍内と実機で違うため、躓く箇所がいくつかあったのでメモしていく

始めに選ぶテンプレートが「Empty Activity」とあるが、2023/10/08現在同名のテンプレートを選ぶとbuild.gradelファイルはbuild.gradle.ktsとなっておりKotlin Scriptで書くようになっている。
せっかくなのでkts形式で書いていく。
変換は適宜ドキュメント読んで理解しながらChatGPTくんに放り込んでいく。

Chap6
ツールバーの表示
明示されていないが、AndroidManifest.xmlのapplication
タグのtheme
属性を下記のようにすると表示される。
android:theme="@style/Theme.AppCompat.Light"

Chap6
Parcelableインターフェースの自動実装Parcelize
アノテーションはプラグインとして読み込む必要あり。
plugins {
id("kotlin-parcelize")
}

Chap7
スタイルの変更箇所がstyle.xmlからtheme.xmlに変更になっている。

Chap8
Non-NullableなMutableLiveData<ArrayList<Toot>>
にnullableなtootListSnapshot
を入れようとしてエラーが出るのでnullチェックしnon-nullable assertを入れる。
nullチェックしてもnon-nullable assert入れないとエラーでちゃうのね…。
val tootList = MutableLiveData<ArrayList<Toot>>()
...
fun delete(toot: Toot){
coroutineScope.launch {
tootRepository.delete(toot.id)
if (tootList == null) return@launch // new
val tootListSnapshot = tootList.value
tootListSnapshot?.remove(toot)
tootList.postValue(tootListSnapshot!!) // add non-nullable assert
}
}