GW:全力でTODOアプリを作ってみる(1日目)
背景
- GWなのでアウトプットに専念してみる
- 一旦基本のTODOアプリを作ったらどんな風になるのか試してみる
- 子供が寝た隙に毎日1時間程度の稼働でどこまでいけるか
Roomを使ってDB作成
@Dao interface TodoDao { @Query("SELECT * from todo") fun getAllWords(): List<TodoEntity> @Insert fun insert(todoEntity: TodoEntity) }
@Entity(tableName = "todo") data class TodoEntity( @PrimaryKey val taskNo: Int, val title: String, val detail: String, val expireTime: String? )
@Database(entities = [TodoEntity::class], version = 1) abstract class TodoDatabase : RoomDatabase() { abstract fun todoDao(): TodoDao companion object { @Volatile private var INSTANCE: TodoDatabase? = null fun getDatabase(context: Context): TodoDatabase { val tempInstance = INSTANCE if (tempInstance != null) { return tempInstance } synchronized(this) { val instance = Room.databaseBuilder( context.applicationContext, TodoDatabase::class.java, "todo" // テーブル名 ).build() INSTANCE = instance return instance } } } }
一旦ここまでは最近もやったので比較的スムーズ。
buildsrcを用いたdependencies管理
Navigation導入しようと思ったけど先にdependenciesを整理しておく。 前やったしスムーズでしょ、と思ったらどハマりして1時間かかった。。。
buildSrcフォルダにすべきところをbuildsrcにしていた。
ひどいハマり方をしてしまった。。でも最初のパッケージ名入力大文字指定できなかったよね。。?
build.gradle.ktsの中身にrepository指定が必要
バージョンが変わったからなのかリポジトリ指定が必要になっていた。
plugins { `kotlin-dsl` } repositories { jcenter() google() }
Gradle sync failed: No such propertyが発生していた
Depファイル(dependenciesを書いているobjectクラス)にパッケージ名が記載されていなかった。。。 パッケージ名を設定して、appのbuild.gradleにimportしたら動作した。
import dependencies.Dep
今日はここまで。
明日やること。
Navigationを使って画面を作る