깨알 개념 122

[Android] Dagger2 - 매개변수 동적 할당

#1 이전 글 [Android] Dagger2 - @Provides#1 이전 글 [Android] Dagger2 - 기초#1 이전 글 의존성 주입 (Dependency Injection)#1 의존성 주입(Dependency Injection)이란?#1-1 Dependent와 Dependencyfun main() { val car = Car() car.startCar() } class Car { private val engine = Enginekenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, @Provides 또는 @Module이 매개변수를 가지게 만들어본다.  Dagger 라이브러리를 쓰는 프로젝트에서 @Provides 또는 @Module에 인수를 전달하기 위해서는 먼저 dagger..

[Android] Dagger2 - @Provides

#1 이전 글 [Android] Dagger2 - 기초#1 이전 글 의존성 주입 (Dependency Injection)#1 의존성 주입(Dependency Injection)이란?#1-1 Dependent와 Dependencyfun main() { val car = Car() car.startCar() } class Car { private val engine = Engine() private val airbag = Airbag() privatekenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, @Inject를 사용할 수 없는 경우의 의존성 주입을 해결해본다. #2 @Provides이전 글에선 생성자에 @Inject를 붙였고, 그것은 dagger가 의존성 주입을 하는 명시적인 표시로..

[Android] Dagger2 - 기초

#1 이전 글 의존성 주입 (Dependency Injection)#1 의존성 주입(Dependency Injection)이란?#1-1 Dependent와 Dependencyfun main() { val car = Car() car.startCar() } class Car { private val engine = Engine() private val airbag = Airbag() private val battery = Battery() fun startCar() { engine.startEkenel.tistory.com본 게시글을 이해하려면 먼저, 의존성 주입에 대해 쓴 이전 게시글을 읽어야 한다. 또, 이전 게시글의 코드를 안드로이드 프로젝트로 Migration해서 본 게시글의 코드를 작성했다. #2..

의존성 주입 (Dependency Injection)

#1 의존성 주입(Dependency Injection)이란?#1-1 Dependent와 Dependencyfun main() {    val car = Car()    car.startCar()}class Car {    private val engine = Engine()    private val airbag = Airbag()    private val battery = Battery()    fun startCar() {        engine.startEngine()        airbag.startAirbag()        battery.startBattery()        println("${this::class.simpleName} is ready")    }}Car 클래스는 En..

[Android] WorkManager - 병렬 Chaining

#1 이전 글 [Android] WorkManager - 작업 연쇄하기(Chaining)#1 이전 글 [Android] WorkManager - 기초#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는kenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, Worker의 Chaining을 병렬로 구성해본다. #2 Parallel Chaining이전 게시글의 Work Chaining의 심화판이다. 파란 네모끼리는 실행 순서가 보장되지만, 파란 네모 안의 Worker들끼리는 실행 순서가 보장되지 않는다...

[Android] WorkManager - 작업 연쇄하기(Chaining)

#1 이전 글 [Android] WorkManager - 기초#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는 보장된 백그라운드 작업을 위한 다kenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, 복수의 Worker가 순서를 지키며 실행되게 만들어본다. #2 Work Chaining서버에 이미지를 전송하는 경우를 예로 들면, 먼저 해당 이미지를 filtering하고, compress하고, upload해야 한다. 이 일련의 작업들은 List 자료구조처럼 순서가 존재하며, 이렇게 순서가 부여된 작..

[Android] WorkManager - 제약 조건 (Constraints)

#1 이전 글 [Android] WorkManager - 기초#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는 보장된 백그라운드 작업을 위한 다kenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, WorkRequest의 실행에 필요한 조건을 설정해본다. 작업마다 서로 다른 환경에서 수행되기를 바랄 수 있다. 해당 환경을 나타내는 제약 조건(constraint)를 프로그래머가 명시적인 객체로서 정의할 수 있다. 예를 들어 대용량 파일을 서버에 전송하는 경우, 인터넷 연결과 배터리가 충전되고 있는..

[Android] WorkManager - 인자 전달 및 데이터 반환

#1 이전 글 [Android] WorkManager - 기초#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는 보장된 백그라운드 작업을 위한 다kenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, Worker에 인자를 전달하고 Worker로부터 데이터를 반환받아 본다. #2 코드 수정#2-1 MainActivity - setOneTimeWorkRequest()...class MainActivity : AppCompatActivity() { companion object { c..

[Android] WorkManager - enqueueUniqueWork()

#1 이전 글 [Android] WorkManager - 기초#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는 보장된 백그라운드 작업을 위한 다kenel.tistory.com위 게시글의 완성된 앱을 일부 수정해서, WorkRequest에 이름을 붙이고, 작업을 관리해본다. #2 코드 수정 - MainActivity.kt...class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { ..

[Android] WorkManager - 기초

#1 이전 글 [Android] WorkManager - 개요#1 WorkManager는 '지연 가능한 백그라운드 작업'의 관리자 WorkManager를 사용한 백그라운드 작업 - Kotlin | Android DevelopersAndroid에는 보장된 백그라운드 작업을 위한 다수의 옵션이 있으며, 이러한 옵션kenel.tistory.com개념 설명에 그쳤던 이전 글에 이어 본 게시글에선 실제로 WorkManager를 구현해본다. #2 WorkManager 사용하기#2-1 모듈 수준 build.gradle 수정plugins { ...}android { ...}dependencies { ... // WorkManager val work_version = "2.9.0" imp..