jetpack compose(30)
-
Jetpack Compose - WorkManager Practice
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/65896f3d01c677285ad87d69dc078f62e2d0527d/WaterMe 특정 시간 후 작업의 실행 설정. override fun scheduleReminder(duration: Long, unit: TimeUnit, plantName: String) { val data = workDataOf(WaterReminderWorker.nameKey to plantName) val workRequest = OneTimeWorkRequestBuilder() .setInitialDelay(duration, unit) .setInputData(data) .build() workManager.e..
2024.04.03 -
Jetpack Compose - WorkManager
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/53dd1fbda2856ec99bcd855bff0100b1a5b892d5/Blur WorkManager - 작업이 실행되는 조건과 작업의 실행이 보장되어야 하는 경우에 사용될 수 있는 도구로, 예를 들어 WiFi 연결 시에만 업로드를 실행하며 업로드가 완료될 때까지 앱이 종료되지 않고 백그라운드에서 완료되어야 한다면 사용을 고려할 수 있다. WorkManager 이점 일회성 작업, 주기적인 작업을 비동기식으로 실행할 수 있다. 작업을 실행하기 전, 배터리 상태나 저장 공간과 같은 제약 조건을 설정할 수 있다. 작업들을 하나의 체인으로 묶어 순서를 보장할 수 있다. 작업의 출력을 다음 작업의 입력..
2024.04.03 -
Jetpack Compose - Room, DataStore Practice
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/b127e7b047e34e1373e4a144b2cb3470915ac2af/FlightSearch Flow.collect() - 값이 변경될 때마다 수집하고 방출한다. Flow.single() - 가장 첫 번째 값을 수집하고 방출하지만, 비어 있거나 두 개 이상의 값을 수집하면 예외를 발생시킨다. Flow.first() - 가장 첫 번째 값만 수집하고 방출하는데 이후의 값은 무시하고 비어 있는 경우 예외를 발생시킨다. 위의 프로그램에선 DataStore를 사용하여 텍스트 필드의 값을 저장하고 프로그램이 시작할 때 초기화 함수로 단 한번만 수집하여 출력하면 되기 때문에 Flow.first()를 사용..
2024.03.29 -
Jetpack Compose - DataStore<Preferences>
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/85a03144de512562d0e2807e1d78e9867ff28aac/Dessert%20Release DataStore - 관계형 데이터를 저장할 필요가 없는 경우 사용할 수 있는 경량 데이터 저장 솔루션으로, 두 가지 주요 구현체를 제공한다. 1. Preference DataStore: 키-값 쌍의 데이터를 저장하고 일반적으로 사용자 정의 타입이 아닌 Kotlin 기본 데이터 타입을 갖는다. 레이아웃, 다크 모드와 같은 간단한 앱의 사용자 환경 설정 값을 기기에 저장할 때 고려할 수 있다. 2. Proto DataStore: 맞춤 데이터 유형을 저장하고 proto 정의를 객체 구조로 매핑하..
2024.03.20 -
Jetpack Compose - Room Practice
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/bf5a22726ebd1d3532dc47b8681d05e49fd22b6f/BusSchedule 기존의 파일을(*.db) 데이터베이스 객체에 적용하여 생성하는 방법. fun getDatabase(context: Context): BusScheduleDatabase { return Instance ?: synchronized(this) { Room.databaseBuilder(context, BusScheduleDatabase::class.java, "bus_schedule") .createFromAsset("database/bus_schedule.db") .fallbackToDestructiveM..
2024.03.19 -
Jetpack Compose - Room
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/55d7150808ee8865620aa189a7857daf3e76b29e/Inventory SQLite - 관계형 데이터 베이스로 C언어로 작성되어 빠르고 효율적으로 동작한다. 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 조작할 수 있다. 관계형 데이터 베이스 - 테이블을 여러 개 포함하고 테이블 간의 관계를 정의하는 데이터 베이스를 의미한다. 모든 테이블 행에는 기본키라는 고유 식별자가 포함되고, 만약 다른 테이블의 기본 키를 참조한다면 이는 외래키라 부른다. 추가로 데이터 베이스의 테이블 이름은 단수형으로 짓는 것이 좋다. 데이터 베이스 용어 테이블 : Student, Professor같..
2024.03.19