
이 게시글은 아래의 공식 문서를 보고 작성했습니다. LiveData 개요 | Android 개발자 | Android Developers LiveData를 사용하여 수명 주기를 인식하는 방식으로 데이터를 처리합니다. developer.android.com LiveData란? `LiveData` 는 관찰 가능한 데이터 홀더 클래스입니다. 데이터의 변경 사항을 관찰하고 이에 대응하는 UI 업데이트를 수행하기 위해 사용됩니다. `LiveData` 는 `LifeCycle`이 정의한 안드로이드 앱의 라이브사이클에 반응합니다. `LiveData` 는 `Observer` 클래스로 표현되는 Observer의 수명 주기가 `STARTED` 또는 `RESUMED` 상태이면 `LiveData` 는 활성 상태가 됩니다. `Li..

이 게시글은 아래의 공식 문서들을 보고 작성했습니다. UI 상태 저장 | Android 개발자 | Android Developers 구성 변경 시 UI 상태를 유지하는 방법을 알아봅니다. developer.android.com 활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers 활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페 developer.android.com UI 상태를 왜 저장해야 하는가? 이 게시글에서는 UI 상태를 저장하는 방법과 ViewModel로 상태를 저장하는 방법을 자세히 배웁니다. 시스템에서 액티비티가 페기되..

이 게시글은 아래의 문서를 보고 작성했습니다. 작업 및 백 스택 이해 | Android 개발자 | Android Developers 일반적으로 앱에는 여러 활동이 포함됩니다. 각 활동은 사용자가 실행할 수 있는 특정 종류의 작업을 중심으로 설계되어야 하며 다른 활동을 시작할 수 있어야 합니다. 예를 들어 이메일 앱에는 developer.android.com 안드로이드는 모바일 운영체제로서 다양한 애플리케이션을 실행하고 관리하는 기능을 제공합니다. 이를 위해 안드로이드는 작업(Task)와 백 스택(BackStack) 개념을 사용합니다. 작업 작업은 사용자가 특정 작업을 할 때 상호작용하는 액티비티의 컬렉션입니다. 액티비티는 스택(백 스택)에 각 액티비티가 열린 순서대로 정렬됩니다. 예를 들어 이메일 앱에는..

이 게시글은 아래의 공식 문서를 보고 작성했습니다. 수명 주기 인식 구성요소로 수명 주기 처리 | Android 개발자 | Android Developers새 Lifecycle 클래스를 사용하여 활동 및 프래그먼트 수명 주기를 관리합니다.developer.android.com Lifecycle지금껏 안드로이드의 액티비티나 프래그먼트에서 생명주기 함수를 이용하여 생명 주기 상태 변화를 처리했습니다. 하지만 이 방법을 사용하면 UI 컨트롤러에 부담을 주게 됩니다. 이 문제를 해결하기 위해 안드로이드에서는 관찰자 패턴을 이용하여 다른 구성 요소 객체의 수명 주기를 관찰할 수 있는 Lifecycle 클래스를 만들었습니다. Android Architecture Components(AAC)의 Lifecy..

인텐트란?인텐트는 안드로이드 애플리케이션에서 4대 컴포넌트 구성 요소들 간에 통신하는 데 사용되는 객체입니다. 인텐트는 Activity를 실행하는 데 가장 많이 사용되지만 다른 용도도 있습니다. 인텐트 유형에는 암시적 인텐트와 명시적 인텐트가 있습니다.명시적 인텐트(Explicity Intent): 특정 컴포넌트를 명시하여 실행하는 인텐트암시적 인텐트(Implicit Intent): 추상적이며 목적지를 명시적으로 지정하지 않고, 수신자가 필터를 통해 처리할 수 있는 인텐트 명시적 인텐트 예시 - Activity 이동binding.button.setOnClickListener { val intent = Intent(this, SecondActivity::class.java).apply { ..

Context란? Context는 애플리케이션의 환경에 대한 전역정보가 컨텍스트로 연결됩니다. Context는 Android 시스템에 의해 제공되는 추상 클래스로 애플리케이션 별로 리소스 및 클래스에 대한 접근은 물론 Activity의 실행, 브로드 캐스팅 및 Intent 수신과 같은 애플리케이션 레벨에 대한 호출을 허용합니다. 말이 조금 어려운데 간단하게 말하자면 Context는 안드로이드 앱의 실행 환경에 대한 정보를 제공하는 클래스입니다. 안드로이드 앱은 Context를 사용해 다양한 작업을 수행하고, 시스템 서비스에 접근하며, 리소스에 액세스할 수 있습니다. 안드로이드에서는 앱의 실행 환경이 다양한 상황과 조건에 따라 변경될 수 있습니다. 이러한 실행 환경을 표현하고 조작하기 위해 Context ..

안드로이드 4대 컴포넌트 안드로이드 앱은 필수적인 기본 구성 요소가 4가지 존재한다. 이를 안드로이드 4대 컴포넌트라고 부른다. 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점이 된다. 구성 요소는 다음과 같다. 1. Activity (액티비티) 2. Service (서비스) 3. Broadcast Receiver (브로드캐스트 수신자) 4. Content Provider (콘텐츠 제공자) 액티비티 액티비티는 사용자 인터페이스를 포함한 화면 하나를 나타낸다. 예를 들어 이메일 앱이라면 목록을 표시하는 액티비티가 하나 있고, 이메일을 작성하는 액티비티가 또 하나가 존재한다. 이렇듯 액티비티는 시스템과 앱의 주요 상호작용을 돕는다. 서비스 서비스는 백그라운드에서 실행되는 구성 요소로, 오랫동..

📚 범위 지정 함수란? Kotlin의 표준 라이브러리에는 개체의 컨텍스트 내에서 코드 블록을 실행하는 것이 목적인 여러 범위 지정 함수들이 있다. 람다 식이 있는 개체에서 이러한 함수를 호출하면 임시 범위가 형성되고 이런 범위에서는 이름 없이 객체에 액세스할 수 있다. 이러한 범위 함수의 종류로는 let, run, with, apply, also의 다섯 가지가 있다. 기본적으로 범위 함수들은 동일한 목적을 가지고 작업을 수행한다. 다른 점은 이 개체가 블록 내에서 사용 가능하게 되는 방식이 전체 표현식의 결과이다. 이런 이유로 하나의 범위 함수를 고르는 것은 힘든 일이다. 이제부터 범위 기능과 해당 규칙의 차이점에 대한 자세한 설명을 제공하겠다. 범위 함수 요약 위의 테이블은 범위 함수의 차이점들을 나타..