Android-jetpack Compose 20

room db 실행 시 compile은 잘되나 튕김 발생

room database 구성 시 애러... 개고생함 gradle 설정 이 문제임 project gradle 설정 buildscript { ext { compose_ui_version = '1.3.3' hilt_version = '2.44.2' } plugins { id 'com.android.application' version '8.0.0' apply false id 'com.android.library' version '8.0.0' apply false id 'org.jetbrains.kotlin.android' version '1.7.20' apply false id 'org.jetbrains.kotlin.jvm' version '1.8.10' apply false id "org.jetbrains..

jetpack compose : (Step 2) ☞ ViewModle(NoteApp)

기존 NoteApp을 ViewModel을 사용해서 변경 app gradle에 implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1" 추가 1. viewModel 생성 : ./screen/NoteViewModel class NoteViewModel : ViewModel() { private var noteList = mutableStateListOf() init { noteList.addAll(NoteDataSource().loadNoteData()) } fun addNote(note: Note) { noteList.add(note) } fun removeNote(note: Note) { noteList.remove(note) } fun..

jetpack compose : (Step 1) Without ViewModle(NoteApp)

screen(component), model, data 패키지 생성 1. NoteScreen 생성 여러번 사용되는 TextField는 component에 InputTextField를 만들어서 재사용 InputTextField.kt(stateless) @Composable fun InputTextField( modifier: Modifier = Modifier, text: String, label: String, onChange: (String) -> Unit ) { TextField( value = text, onValueChange = onChange, label = { Text(label)}, modifier = modifier.fillMaxWidth().padding(10.dp) .backgroun..

jetpack compose : (Step 3) ViewModel ☞ DI(Hilt), Room(NoteApp)

Hilt Project 생성을 위한 gradle 구성 project => gradle buildscript { ext { compose_ui_version = '1.3.3' hilt_version = '2.44' } } plugins { .... // hilt-android-gradle-plugin id 'com.google.dagger.hilt.android' version '2.44' apply false } app => gradle plugins { .... // hilt-android-gradle-plugin id 'kotlin-kapt' id 'com.google.dagger.hilt.android' } android { ... } dependencies { ....... // Hilt-dagg..

jetpack compose - dependency injection, Room 참고 자료-사이트

============== 참고 자료... ====================== https://dunchi.tistory.com/94 [Android] 안드로이드 Room으로 로컬 데이터베이스 이용하기 1. Room 이란? 안드로이드에서 데이터를 로컬에 저장하는 방법에는 File, SharedPreference, SQLite 등이 있다. 각각의 특징을 간략하게 알아보자면 File - 텍스트 파일 등의 파일을 생성하여 파일 입출력으 dunchi.tistory.com 안드로이드에서 데이터를 로컬에 저장하는 방법에는 File, SharedPreference, SQLite 등이 있다. 각각의 특징을 간략하게 알아보자면 File - 텍스트 파일 등의 파일을 생성하여 파일 입출력으로 관리한다. SharedPre..

Android Coroutine

https://wooooooak.github.io/kotlin/2019/08/25/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4-%EA%B0%9C%EB%85%90-%EC%9D%B5%ED%9E%88%EA%B8%B0/ 코틀린 코루틴(coroutine) 개념 익히기 · 쾌락코딩 코틀린 코루틴(coroutine) 개념 익히기 25 Aug 2019 | coroutine study 앞서 코루틴을 이해하기 위한 두 번의 발악이 있었지만, 이번에는 더 원론적인 코루틴에 대해서 알아보려 한다. 코루틴의 개념이 정확 wooooooak.github.io 코틀린 코루틴(coroutine) 개념 익히기 25 Aug 2019 | coroutine study 앞서 코루틴을 이해..

Android - Dependency Injection(Hilt)/Room 기본 개념 설정

developer.android.com 참고 Hilt 란 ? Hilt는 dependency Injection을 관리(Annotation을 통한 관리) 할 수있게 해주는 library로 spring에서 수행하는 bean 관리를 해주는 역활과 같은 것임 https://developer.android.com/training/dependency-injection/hilt-android?hl=ko Hilt를 사용한 종속 항목 삽입 | Android 개발자 | Android Developers Hilt를 사용한 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Hilt는 프로젝트에서 종속 항목 수동 삽입을 실행하는 상용구를 줄이는 Android용 developer.and..

jackpack compose - Navigation : 정의, 개발 절차 샘플

1. Nav.Controller - (Central API) navigation이 수행할 내용을 정의 navigation.navigate(route) 2. Nav.Host - 개별 navigation graph item을 host 함 사용자가 새로운 화면으로 navigate 할 때 navHost는 개별 destination(composable)을 교체 함 3. Navigation Graph - destination, screen, composable 관련 정보를 보관함 NavGraph는 destination, screen, composable 와 관련 정보 모두를 map out 한다. 프로젝트에 우선 navigation, screen package를 만들고 작업 =======================..

jackpack compose - Stateful vs Stateless 비교

stateless : 내부에 state, remember 같은 자체적을 정보를 저장할 수있는 변수를 저장할 수 있는 변수를 갖지 않는 함수@Composablefun StatelessFun( text: String, myVar2: Int, onClickHoisting : (myVar) -> Unit ) { ... TextField( value : text, onValueChange= onClickHoisting ) // OR onClick = { onClickHoisting.invoke() } statefull : 자체적으로 상태를 저장할 수 있는 변수를 갖는 함수@Composablefun StatefullFun ( text: String onClickHandling : (String) -> Unit ) ..