Hilt란? 프로젝트에서 종속 항목 수동 삽입을 실행하는 상용구를 줄이는 Andorid용 종속 항목 삽입 라이브러리이다. 종속 항목 삽입(DI)를 실행하려면 모든 클래스와 종속 항목을 수동으로 구성하고 컨테이너를 사용하여 종속 항목을 재사용 및 관리해야 한다. Hilt는 프로젝트의 모든 Android 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써 애플리케이션에서 DI를 사용하는 표준 방법을 제공한다. Google의 Dagger를 기반으로 빌드되었기 때문에 Dagger가 누리는 이점인 컴파일 시간 정확성, 런타임 성능, 확장성 및 Android Studio 지원을 누릴 수 있다. Hilt의 등장 배경Hilt 이전에는 개인이나 회사별로 수동으로 별도의 DI 솔루션을 만들어서 사용했다. 널리 ..
이전에도 종속 항목 삽입에 대해 이야기를 하며 개념과 예제를 다루고, Hilt에 대해 다뤄보며 이야기를 해봤지만, 솔직히 혼자 이해하기에는 아직 어려운 관계로 강의를 통해 공부하며 좀 더 자세히 알아보고 프로젝트를 진행해보고자 한다. 이전에 다뤘던 의존성 주입, 종속 항목 삽입에 대한 포스팅은 다음과 같다.https://small-stepping.tistory.com/957 종속 항목 삽입이전글에서 이어지는 내용입니다.https://small-stepping.tistory.com/956 UI 레이어와 데이터 레이어 분리레이어를 분리하는 이유코드를 여러 레이어로 분리하면 앱의 확장성이 높아지며 앱이 더 견고해small-stepping.tistory.comhttps://small-stepping.tistor..
https://developer.android.com/codelabs/basic-android-kotlin-compose-practice-bus-schedule-app?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-6-pathway-2%3Fhl%3Dko%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-practice-bus-schedule-app#0 연습: Bus Schedule 앱 빌드 | Android DevelopersRoom을 사용하여 데이터 유지 Co..
the following options were not recognized by any processor: '[dagger.fastinit, kapt.kotlin.generated]' Hilt를 kapt로 적용시키다 발생한 오류다.아니 오류까진 아니고 경고창에 해당한다. https://stackoverflow.com/questions/70550883/warning-the-following-options-were-not-recognized-by-any-processor-dagger-f warning : The following options were not recognized by any processor: '[dagger.fastInit, kapt.kotlin.generated]'I get this w..
Hilt 라이브러리를 적용하다 생긴 오류. 1번째 시도 : build.gradle.kts의 android {} 블록 내부에 META-INF 추가StackOverFlow에서 답변을 찾아본 결과 build.gradle.kts의 android {} 블록 내부에 있는 packaging {} 블록에 annotation.processors 관련한 META-INF를 추가하라는 내용이 존재했다. 이를 보고 작성한 것인지 한 한글로 된 블로그에도 다음과 같은 해결법이 적혀있었다.packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" // ▽ Add this one. excludes += "/META-INF/gradle..
Fragment란?Activity가 가진 문제를 해결하기 위해 등장했다.1. Activity 안의 코드가 길어질 경우, 유지보수가 어려워짐.2. 안드로이드 디바이스의 화면 크기 다양성에 따른 UI 디자인의 어려움. Fragment의 주요 특징 앱의 전체 UI의 어딘가에서 반복적으로 사용 가능한 부분에 사용 가능.자체 생명 주기를 가지고 있고, 자체 입력 이벤트를 받아 처리할 수 있음.독립적인 존재가 불가능하며 반드시 Activity나 다른 Fragment에 호스팅되어야 함.Android Jetpack 라이브러리 중 Navigation, BottomNavigationView, ViewPager2 등 fragment와 호환되도록 설계되어 있어 자주 사용됨.Activity와 Fragment의 목적성이 다름..
기본적으로 액티비티 생명주기는 다음과 같다.onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestory() 메소드설명다음 메소드onCreate()액티비티 생성시 호출, 사용자 인터페이스 초기화에 사용onStart()onRestart()액티비티가 멈춘후 다시 시작되기 직전에 호출onStart()onStart()액티비티가 사용자에게 보여지기 직전에 호출onResume() / onStop()onResume()액티비티가 사용자와 상호작용하기 직전에 호출onPause()onPause()다른 액티비티가 보여질때 호출데이터 저장, 스레드 중지 등의 처리를 하기 좋은 메소드onResume() / onStop()onStop()액티비티가 더이상 사..
안드로이드 스튜디오에서는 Thread는 크게 2가지로 구분된다. Main Thread(UI Thread)와 Worker Thread Main Thread는 액티비티와 컴포넌트들의 사용을 담당하고 연동하는 역할로, UI 컴포넌트들과 밀접한 연관이 있는 Thread이기에 UI Thread라고도 불린다. System Call Back Method와 Android Life Cycle 관련된 Method들은 전부 Main Thread에거 관리되어야 한다. 위에 해당하는 글들에서 계속 다루듯, 복잡한 연산, 지연되는 작업들의 경우 Main Thread에서 이뤄질 경우 ANR(Application Not Responding, UI 관련 작업이 일정기간 이상 반응되지 못하면 발생)이 발생하여 애플리케이션이 강제로 ..
Thread와 Process의 차이모두 프로그램의 실행과 관련된 단어로Thread는 어떠한 프로그램 내, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.Process는 컴퓨터에서 연속적으로 실행되고 있는 프로그램을 의미한다. 이 둘의 차이로는 Process는 실행의 단위, Thread는 Process 내에서 실행되는 흐름의 단위로 볼 수 있다.Process는 독립적으로 실행되지만 Thread는 Process 내의 Thread 끼리는 Heap, Data 등을 공유한다. 멀티 프로세스와 멀티 스레드의 차이멀티 프로세싱은 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽고..
안드로이드에서 백그라운드 작업이란?안드로이드에서 백그라운드 작업이란, 애플리케이션이 화면에서 보이지 않는 상태에서도 동작하는 작업들을 말한다. 음악 재생, 파일 다운로드, 위치 정보 수집 등등. https://small-stepping.tistory.com/1034 안드로이드 4대 컴포넌트잡설:면접때 받은 질문인 안드로이드 4대 컴포넌트.아니 정확히는 안드로이드에 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더에 대해 설명해보라고 들었다.맨 처음에 이 대답을small-stepping.tistory.com https://small-stepping.tistory.com/1005 WorkManager로 백그라운드 작업WorkManager란?WorkManager는 상황별 실행과 보장된 실행을 조합하여..