목록Android (4)
블로그명..?
WorkManager? WorkManager는 앱이 종료되거나 재시작되어도 신뢰가능한 비동기 작업을 쉽게 예약할 수 있게 도와주는 API이다. FirebaseJobDispatcher, GcmNetworkManager, Job Scheduler 등의 이전 스케줄링 API들의 대안으로 적합하다. WorkManager는 API 버전 14와 역호환 되는 이전 스케줄링 API들의 특징들을 통합하고 배터리 수명의 지속에도 도움을 줄 수 있다. 특징 작업 제약 조건 네트워크 상태에 따라 작업 제약 조건을 선언할 수 있다. (예를 들어, Wi-fi 상태일 경우 또는 Device가 대기 상태일 경우 또는 어느정도의 저장 공간을 가지고 있는지. 등등) 강력한 작업 예약 WorkManager는 유연한 스케줄링 작업창을 통해..
Dagger란? 수동적으로 의존성 주입을 가진 프로젝트를 구성하려고 하면 프로젝트의 사이즈가 커지고 복잡성이 올라가는 문제가 발생할 수 있는데, 대거를 사용함으로써 코드 복잡성과 프로젝트의 스케일을 획기적으로 제한하는 것이 가능하다. 대거는 클래스에 어노테이션을 붙여주는 것만으로 사용자가 직접 손으로 썼어야할 코드들을 컴파일 타임에 자동으로 생성해준다. Dagger의 이점 다음과 같은 요소들로 보일러플레이트 코드를 줄여준다 수동 DI 섹션에서 수동으로 구현한 AppContainer 코드를 생성한다. application graph에서 사용가능한 클래스의는 Factory를 생성한다. 이를 통해 내부적으로 의존성을 충족해준다. Scope를 설정하여 재사용할 것인지 새로 생성할 것인지 지정해줄 수 있다. Da..
DI 란? Dependency Injection의 약자. 의존성 주입을 뜻함. 특정 객체의 인스턴스를 외부에서 생성하여 전달하는 기법. DI의 장점 재사용성을 높여준다. 테스트에 용이함 코드 가독성 증대 코드 단순화 결합도는 줄이고, 확장성과 유연성을 확보 가능 의존성이란? class AClass { private val b = BClass() fun test(){ b.action() } } class BClass { fun action(){ print("Action B") } } 위 처럼 A 클래스에서 내부에 B클래스의 변수를 사용하게 됨으로써, A클래스는 B클래스에 대해 의존성을 가지게 된다. -> B클래스가 변경되는 경우에 A클래스가 영향을 받게 된다. 주입이란? 클래스 내부가 아닌 외부에서 객체를..
Gradle 세팅 후 리빌드 할 때 다음과 같은 오류가 발생하면서 빌드 실패가 발생 Could not GET 'https://jcenter.bintray.com/com/github/jnr/jffi/maven-metadata.xml'. Received status code 502 from server: Bad Gateway 찾아 보니 원인은 jcenter Bintray 다운로드 서버 다운이었다 https://status.bintray.com/ Bintray Status All Systems Operational Website Operational REST API Operational Downloads Operational Operational Degraded Performance Partial Outage..