일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 테마
- 개발자
- kotlin
- 안드로이드
- Android
- electron
- Binding Adapter
- 주석
- themes.xml
- room
- Jetpack Compose
- recyclerview
- hilt
- Navigation Component
- nav_graph
- Gradle
- Datastore
- 면접
- 스플래시
- ViewModel
- BottomNavigationView
- imageview
- 일렉트론
- 취업
- android studio
- fragment
- asLiveData()
- Safe Args
- TypeConverter
- Livedata
- Today
- Total
목록전체 글 (48)
나만 보는 일기장
Settings → Build, Execution, Deployment → Build Tools → Gradle에서 Gradle JDK를 변경해준다 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' } Gradle도 이렇게 바꿔줘야 하는듯 마지막으로 Clean Project & Rebuild Project
0. 프로젝트 설정 앱 단위 Gradle plugins { ... id 'androidx.navigation.safeargs.kotlin' } ... dependencies { ... def nav_version = "2.4.0-alpha06" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_versi..
.launch는 Job 객체를 반환 → Job을 통해 작업 컨트롤 가능 .async는 Defferd 객체를 반환 → .await() 통해 Defferd에 값이 들어옴. coroutineScope {}: 값 반환 전에 모든 자식 코루틴들이 완료됨을 보장해줌 structured concurrency를 위해 사용 structured concurrency → 여러 코루틴을 한번에 실행할 때 모든 작업이 완료됨을 보장받기 위해 사용 구조: 메인 쓰레드에서 여러 작업을 하는 suspend 함수를 호출 → 함수는 coroutineScope 안에서 여러 작업들을 시작한다. 그러면 coroutineScope가 하위 작업들이 모두 완료된 후 값을 반환 장점: 예외 처리가 가능하고, 작업 취소도 쉽다 viewModelSco..
현재 안드로이드에서 쓰는 DI Framework는 Dagger2, Hilt, Koin이 있는데, 내가 이해한 이 셋은 이렇다. Dagger2 | 자바 + 코틀린 사용 가능, 컴파일 할 때 오류 검출, 어렵다 Hilt | Dagger 기반, Dagger보다 쉽지만 큰 프로젝트에 쓰기엔 아직 이른듯 Koin | 자바 사용 불가, 런타임에 오류 검출 이 셋에 대한 자세한 정보는 아래 글을 읽으면 될 것 같다. https://velog.io/@sysout-achieve/Android-DI-Framework-%EC%84%A0%ED%83%9D%EC%A7%80Dagger2-Koin-Hilt Gradle 설정 https://github.com/google/dagger - Dagger 깃허브 페이지 // Add Dagg..
fun main() { makePC() } fun makePC(): PC { // ??? } class PC() { // ... } class CPU { // ... } class GPU { // ... } class RAM { // ... } class Power { // ... } PC라는 클래스를 만들기 위해 CPU, GPU, RAM, Power이라는 클래스들이 필요하다고 할 때, PC는 해당 클래스들에 대해 의존성을 가지고 있는 Dependent라고 하고, PC를 만들 때 필요한 클래스들은 Dependency라고 한다. 그리고 이 부품들을 PC에 전달하는 것을 의존성 주입이라 하는데, 의존성 주입의 방법에는 크게 3가지가 있다. 1. Constructor Injection fun makePC():..
보호되어 있는 글입니다.