본문 바로가기

Android개발12

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.
DI : Dependency Injection '아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다 어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다 DI 개념을 훑어보면 간단해보이지만, 변경의 전이/제어의 역전 같은 단어는 정말 머리에 안들어온다,, 아 인터페이스 기반으로 주입하면 되는구나 싶지만 실제로 이미 많이 구현되어있는 프로젝트에 적용하려고 하면 이미 구조가 잘 잡혀있는데 변화를 준다는게 쉽지 않은 것 같다. (오히려 프로젝트 초기 단계부터 시작한다면 구조 잡기가 훨씬 수월할듯) 어쨋든 dagger2 를 사용하기 전 간단하게 DI 개념을 읽고 간다! 1. 의존성 주입 (DI : Dependency Injection) : 하나의 객체에 다른 객체의 의존성.. 2020. 5. 25.
Elevation 1. elevation뷰 간의 거리로 z 축을 따라 dp 로 측정하며 그림자로 표현이 된다.z 값에 따라 그림자의 시각적인 모양이 결정되며, z 값이 증가할수록 더 크고 부드러운 그림자가 나타난다. 2. 기본 사용 방법Android API 21 부터 사용 가능하며, 해당 뷰의 background 가 불투명이어야 elevation 이 적용된다.- xml : android:elevation- code : View.setElevation(float) 3. 컬러 변경#000000(black) 베이스로, theme 에 아래 두 가지 속성으로 alpha 조정이 가능하다.Android API 28 부터는 argb 값으로 컬러 변경 가능하다. - API 21~27 : 위 예제에서 각 alpha 값을 0.0~1.0 사이.. 2020. 3. 18.