Developing Myself Everyday
article thumbnail
[AAC] LifeCycle
Android/AAC 2023. 8. 3. 19:44

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

article thumbnail
Intent (인텐트)
Android 2023. 7. 23. 17:48

인텐트란? 인텐트는 안드로이드 애플리케이션에서 4대 컴포넌트 구성 요소들 간에 통신하는 데 사용되는 객체입니다. 인텐트는 Activity를 실행하는 데 가장 많이 사용되지만 다른 용도도 있습니다. 인텐트 유형에는 암시적 인텐트와 명시적 인텐트가 있습니다. 명시적 인텐트(Explicity Intent): 특정 컴포넌트를 명시하여 실행하는 인텐트 암시적 인텐트(Implicit Intent): 추상적이며 목적지를 명시적으로 지정하지 않고, 수신자가 필터를 통해 처리할 수 있는 인텐트 일반적으로 앱에서 Activity를 표시할 때 명시적 인텐트를 사용합니다. 다만 현재 앱과 관련이 없는 작업의 경우, 예를 들어 다른 애플리케이션과 상호작용하거나, 시스템 기본 앱을 사용하여 특정 작업을 수행할 때 사용됩니다. 명..

article thumbnail
안드로이드의 Context
Android 2023. 7. 11. 12:41

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

article thumbnail
안드로이드의 앱 구성요소 (4대 컴포넌트)
Android 2023. 7. 11. 11:36

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

article thumbnail
Scope Function (범위 지정 함수) with let, run, with, apply, also
Android/Kotlin 2023. 6. 30. 12:59

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

article thumbnail
Generics (제네릭)
Android/Kotlin 2023. 6. 29. 11:26

제네릭이란? 제네릭은 클래스, 인터페이스, 메서드에서 사용될 수 있으며, 타입 매개변수를 통해 일반적인 데이터 타입 대신 실제 타입을 지정할 수 있다. 이를 통해 코드를 보다 일반화할 수 있고, 재사용성을 높일 수 있다. T 일반적으로 사용되는 타입 매개변수 E 요소(Element)의 타입을 나타내는 매개변수. 주로 컬렉션(Collection)에서 사용 K 맵(Map)에서 키(Key)의 타입을 나타내는 매개변수 V 맵(Map)에서 값(Value)의 타입을 나타내는 매개변수 N 숫자(Number) 타입을 나타내는 매개변수 R 반환(Return) 타입을 나타내는 매개변수입 S, U, V 등 여러 개의 타입 매개변수가 필요한 경우, 추가적으로 사용될 수 있는 일반적인 알파벳 제네릭을 사용하지 않았을 경우 우리..

article thumbnail
JVM과 커널의 동작
Android/Java 2023. 6. 26. 15:31

🏴 커널이란? 운영체제에 공부를 하다보면 커널이라는 것을 접하게 된다 커널을 간단하게 설명하자면 운영체제의 메모리에 상주해 있는 프로그램이라고 할 수 있다. 커널은 응응 프로그램들이 자원에 접근할 때 사용되는데, 이 때 위의 그림과 같은 과정을 거치게 된다. 쉘이란 이런 프로그램들이 메모리에 로딩되고 언제 메모리에서 해제되는지 관리해주는 프로그램이다. 다만 쉘이 직접 메모리에 관여한다면 여러 프로그램들이 꼬이게 되어 엉뚱한 곳에 데이터를 읽거나 쓰는 상황이 발생할 수 있다. 그래서 쉘은 I/O를 할 때 커널에게 요청을 하고 커널은 이를 받아드려 해당하는 I/O를 대신 진행해준다. 이런 요청을 System Call (시스템 콜)이라고 한다. 이 때 사용되는 것이 위의 그램에 존재하는 mode bit 이다...

[2] MVVM Repository에 Room과 Hilt 사용하기
Android/Kotlin 2023. 6. 19. 12:02

이 게시글은 아래의 게시글에서 이어진 내용입니다. [1] MVVM Repository에 Room과 Hilt 사용하기 만약 MVVM Repository 패턴에 대한 이해가 부족하다면 아래의 게시글을 갔다가 오기 바란다. MVVM Pattern with Repository Pattern(저장소 패턴) by Kotlin MVVM에 대한 설명은 아래의 게시글에서 확인하길 바란다. everyday-develop-myself.tistory.com Hilt & Dagger2 Hilt는 Dagger2를 기반으로 한 안드로이드용 의존성 주입 라이브러리이다. 안드로이드 애플리케이션의 구성 요소 간의 의존성을 관리하고 의존성을 주입하는 기능을 제공한다. Dagger2 ❔ Dagger2는 Google에서 개발한 Java 및 ..