깨알 개념 85

[Android] Dagger2 - Application 활용하기

#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위 게시글의 완성된 앱을 일부 수정해서, Application을 활용하게 만든다. 이를 통해, @Component 클래스 인스턴스의 중복 호출을 제거한다. #2 Application의 활용성 Application  |  Androi..

[Android] Dagger2 - Activity에 Dependency 주입

#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위 게시글의 완성된 앱을 일부 수정해서, 'Activity에 의존성을 주입'해본다. 이 말의 의미는 #3-1에 나온다.  #2 @Component 인터페이스 속 getter의 불편함// package com.example.activ..

[Android] Dagger2 - 인터페이스 구현체 주입 (@Binds)

#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위 게시글의 완성된 앱을 일부 수정해서, Interface를 Dependency로 주입해본다. #2 코드 수정 - 직관적인 버전#2-1 개요 [Android] Dagger2 - 매개변수#1 이전 글 [Android] Dagger2 ..

[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 dagger GitH..

의존성 주입 (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)를 프로그래머가 명시적인 객체로서 정의할 수 있다. 예를 들어 대용량 파일을 서버에 전송하는 경우, 인터넷 연결과 배터리가 충전되고 있는..