이 게시글은 아래의 문서를 보고 작성했습니다. 앱 아키텍처: 데이터 영역 - WorkManager로 작업 예약 - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 지속적인 작업 유형과 기능 등을 알아보세요. developer.android.com WorkManager WorkManager는 Android Jetpack 라이브러리의 일부로, 백그라운드에서 주기적인 또는 일회성 작업을 처리하고 관리하는 데 도움이 되는 강력한 도구입니다. 게임을 다운로드하고 실행했을 때 추가적인 다운로드가 필요한 경우가 있습니다. 추가적인 다운로드를 진행하던 중 사용자가 앱을 종료하거나 백그라운드로 보내면 추가적인 다운로드는 종료되게 됩니다. 이런 상황에..
이 게시글은 아래의 공식 문서를 보고 작성했습니다. 앱 아키텍처: 데이터 영역 - Datastore - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 Preferences DataStore 및 Proto DataStore, 설정 등을 알아보세요. developer.android.com SharedPreferences DataStore를 이야기하기 전에 SharedPreferences를 이야기하는 것은 당연할 것입니다. 왜냐면 2개의 개념 다 안드로이드 애플리케이션에서 데이터를 저장하고 관리하는 방법이고 DataStore가 SharedPreferencesd을 개선한 버전이기 때문입니다. SharedPreferences는 간단한 키-값..
이 글에서는 Android의 4대 컴포넌트인 BroadCast receiver에 대해 더 자세하게 알아보고자 합니다. BroadCast Android 앱은 Android 시스템 및 기타 Android 앱에서 브로드캐스트 메시지를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생할 때 이러한 브로드캐스트 메시지가 전송됩니다. 예를 들어 Android 시스템은 시스템 부팅 또는 기기 충전 시작, 배터리 부족과 같은 다양한 시스템 이벤트가 발생할 때 브로드캐스트 메시지를 전송합니다. 이런 브로드캐스트를 시스템 브로드캐스트 메시지라 합니다. 또한 앱은 맞춤 브로드캐스트 메시지를 전송하여 관련 앱에 알릴 수 있습니다. 앱 내에서 정의하고 발송해, 다른 앱이나 시스템에서 이를 수신하여 특정 작업을 수행하도록 유도..
클래스 관계 클래스 간의 관계는 아래와 같습니다. 상속관계(is a): 클래스를 상속해서 하나의 클래스처럼 사용 연관관계(has a): 클래스를 상속하지 않고 내부적인 속성에 객체를 만들어서 사용 결합관계(약한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계 없이 단순하게 사용하는 관계 조합관계(강한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계가 있어서 분리할 수 없는 관계 의존관계(사용 has a): 필요한 클래스를 매개변수로 받아 필요한 시점에 사용하는 관계 상속관계 (is-a) open class Animal(val name: String) class Dog(name: String) : Animal(name) class Cat(name: String) : An..
이 글에서는 Android의 4대 컴포넌트인 Service에 대해 더 자세하게 알아보고자 합니다. Service란? Service의 주된 목적은 오래 걸리는 작업을 백그라운드에서 처리하는 것입니다. 주로 큰 파일을 다운로드하는 것과 같은 작업을 서비스로 처리합니다. 사용자에게 다운로드 진행률을 지속적으로 표시해 사용자를 귀찮게 하고 싶지는 않기 때문에 서비스는 UI가 없이 실행됩니다. Service의 종류 서비스의 종류는 크게 3가지로 나눌 수 있습니다. 1. Foreground 2. Background 3. Bound Foreground와 Background는 Started Service라 불리고 Bound는BoundService라 불립니다. 포그라운드(Foreground) 서비스: 포그라운드 서비스는..
이 게시글은 아래의 글을 참고해서 작성했습니다. Android CPU, Compilers, D8 & R8 Imagine you have an important space mission ahead. You need a spacecraft that won’t get you into much trouble on the way. You may opt in a… proandroiddev.com JVM 자바로 작성한 코드를 컴퓨터에 이해시키리면 컴퓨터가 이해할 수 있는 언어로 컴파일해야 합니다. 다만 세상에는 다양한 운영체제가 있고, 각 운영체제에 맞는 언어로 컴파일하는 것은 자바가 말하는 WORA("Write Once Run Anywhere" - 한 번 작성하면 모든 곳에서 돌릴 수 있다)가 아닙니다. 이때 나타..
Gradle Android Studio의 빌드 시스템은 Gradle이라는 툴체인 프레임워크를 기반으로 하며 Android Gradle Plugin(AGP)는 안드로이드 앱을 빌드하는 과정을 내부적으로 처리해줍니다. Gradle과 Android Gradle 플러그인은 Android 스튜디오와 독립적으로 실행됩니다. 즉, Android 스튜디오 내에서, 컴퓨터의 명령줄에서, 또는 Android 스튜디오가 설치되지 않은 컴퓨터(예: 지속적 통합 서버)에서 Android 앱을 빌드할 수 있습니다. 툴체인 프레임워크란? 툴체인(toolchain) 프레임워크는 소프트웨어 개발 및 컴파일링 과정을 관리하고 자동화하기 위한 도구의 모음입니다. 주로 하드웨어 아키텍처에 따라 코드를 컴파일하고 빌드하여 실행 가능한 바이너..
이 게시글은 아래의 공식 문서를 보고 작성했습니다. 페이징 라이브러리 개요 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Paging 라이브러리 개요 Android Jetpack의 구성요소 Paging 라이브러리를 사용하면 로컬 저장소에서나 네트워크 developer.android.com Android Paging 고급 Codelab | Android Developers 이 Codelab에서는 Paging 라이브러리를 포함하도록 샘플 앱을 수정하여 앱의 메모리 공간을 줄입니다. developer.android.com Paging 라이브러리를 사용하는 이유 Android Paging 라이브러리는 안드로이드 앱에서..