본문 바로가기

분류 전체보기56

RxJava - What's different in 3.0 RxJava 란 비동기 및 이벤트 기반 프로그래밍을 가능하게 해주는 라이브러리 이제 2.x 버전은 유지보수 모드로 버그 픽스만 적용될 뿐 새로운 기능 업데이트는 없으며, 2021년 3월부터는 모든 개발 중단! 참고) https://github.com/ReactiveX/RxJava/wiki/What's-different-in-3.0 1. Gradle import dependencies { implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' // https://github.com/ReactiveX/RxAndroid implementation 'io.reactivex.rxjava3:rxjava:3.0.0' // https://github.com/ReactiveX/R.. 2020. 6. 23.
Dagger2 기본 #5 - Binding '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 1. @Binds Module 내 추상 메소드에 지정할 수 있다 하나의 파라미터만 가져야 한다 파라미터를 리턴 타입으로 바인드할 수 있으며, @Provides 메소드 대신 효율적으로 사용할 수 있다 ex) @Binds abstract fun bindRandom(secureRandom: SecureRandom) : Random 이미 바인드된 SecureRandom 을 Random 타입으로 한 번 더 바인드 할 수 있다 2. @BindsOptionalOf Module 내 추상 메소드에 지정할 수 있다 파라미터를 가질 .. 2020. 5. 29.
Dagger2 기본 #4 - Component 의존 관계 '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 여러개의 Component 를 생성하고 서로 의존 관계를 맺을 수 있으며, SubComponent 와 Component 상속 두 가지 방법이 있다. 1. SubComponent 상위 Component 란 Component/SubComponent 둘 다 될 수 있으며, SubComponent 는 상위 Component 내에 구현된다 또한 SubComponent 내에 또 다른 SubComponent 를 구성할 수도 있다 SubComponent 는 상위 Component 에 바인딩된 모든 의존성을 제공 받는다 반대로 상.. 2020. 5. 29.
Dagger2 기본 #3 - Component '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 바인딩된 Module 로부터 Object graph (또는 Container) 를 생성하는 역할을 한다 @Component 어노테이션을 사용하여 interface 와 abstract 클래스에만 붙일 수 있다. 컴파일 타임에 어노테이션 프로세서에 의해 생성된 클래스에는 prefix 로 'Dagger' 가 붙는다 ex) 컴포넌트명 = HelloComponent -> DaggerHelloComponent @Component 속성으로는 modules, dependencies 가 있다. modules : Component .. 2020. 5. 29.
Dagger2 기본 #2 - Module '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 Component 에 의존성을 제공하는 역할로 클래스에 @Module 어노테이션을 붙이면된다. 1. @Provides 메소드 Module 클래스에서 선언되는 메소드에는 @Provides 어노테이션을 붙이며, 컴파일 타임에 의존성을 제공하는 바인드된 Provider 를 생성한다 리턴 타입으로 Component 내에서 의존성이 관리되기 때문에 하나의 Component 에는 리턴 타입이 중복되면 안된다 (중복 시 컴파일 타임에 에러 발생) 메소드는 null 을 리턴해야 할 경우 @Nullable 을 추가해야하며, 코틀린.. 2020. 5. 28.
Dagger2 기본 #1 - 시작 '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 1. Dagger2 란? JAVA 와 Android 를 위한 DI 프레임워크 Reflection 을 사용하지 않는다 런타임 시 바이트 코드를 생성하지 않는다 컴파일 타임에 Annotation processor 에 의해 DI 와 관련된 코드를 분석하고 자바 코드를 생성한다 2. Dagger 진입장벽 Annotation 기반 코드 생성이 익숙치 않으면 내부 동작을 유추하기 힘들다 Component, Subcomponent, Module 등 Dagger 에서만 사용하는 용어로 인해 혼란스럽다 3. Dagger 장점 자원.. 2020. 5. 27.