안드로이드

    BroadcastReceiver :: 앱 구성 요소 4대 컴포넌트 [ Deep in the AOS ]

    Android Developer에선 Broadcast를 다음과 같이 설명합니다. Android 앱은 Android 시스템 및 기타 Android 앱에서 게시 - 구독 디자인 패턴과 유사한 Broadcast Message를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생할 때 Broadcast가 전송됩니다. 예를 들어, 시스템 부팅 또는 기기 충전 시작과 같은 다양한 시스템 이벤트가 발생할 때 Broadcast를 전송합니다. 앱은 특정 Broadcast를 수신하도록 등록할 수 있습니다. Broadcast가 전송되면 시스템은 특정 유형의 Broadcast를 수신하도록 신청한 앱에 Broadcast를 자동으로 라우팅합니다. 이런 Broadcast는 앱 전체, 일반 사용자 플로우 외부에서 메시징 시스템으로 ..

    Service :: 앱 구성 요소 4대 컴포넌트 [ Deep in the AOS ]

    Android Develop에서는 Service를 이렇게 설명합니다. 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션의 구성 요소이며 사용자 인터페이스를 제공하지 않습니다. 다른 애플리케이션 구성 요소가 서비스를 시작할 수 있으며, 사용자가 다른 애플리케이션으로 전환하더라도 백그라운드에서 계속 실행됩니다. 구성 요소를 서비스에 바인딩해 서비스와 상호작용할 수 있으며, 심지어는 프로세스 간 통신(IPC)도 수행할 수 있습니다. 한 서비스는 네트워크 트랜잭션 처리, 음악을 재생 그리고 파일 I/O를 수행하거나 콘텐츠 제공자와 상호작용할 수 있으며 이 모든 것을 백그라운드에서 수행할 수 있습니다. 이런 서비스에는 세 가지 유형이 있습니다. 1. 포그라운드 포그라운드 서비스는 사용자에게 잘 보이..

    Activity :: 앱 구성 요소 4대 컴포넌트 [ Deep in the AOS ]

    Activity Service Broadcast Receiver Content Provider 각 유형은 뚜렷한 목적을 수행하고 각자 나름의 수명 주기가 있어서 구성 요소의 생성 및 소멸 방식을 정의합니다. 액티비티는 사용자와 상호작용하기 위한 진입점 사용자 인터페이스를 포함한 화면 하나를 나타냅니다. Android Develop에선 이메일 앱을 예시로 설명했습니다. 1. 이메일 목록을 표시하는 액티비티 2. 이메일을 작성하는 액티비티 3. 이메일을 읽기 위한 액티비티 우리는 이메일 앱을 사용하게 되면 [1. 이메일 목록을 표시하는 액티비티]가 화면에 표시될 것입니다. 이 목록 중에 읽고 싶은 메일을 누르면 [3. 이메일을 읽기 위한 액티비티]가 화면에 표시됩니다. 이메일을 작성하는 버튼을 누른다면 [2..

    Kotlin MVVM Coroutine을 활용해 Api call 하기

    우선, API를 콜했을 때 Resource를 알기 위해 클래스를 생성합니다. data class Resource(val status: Status, val data: T?, val message: ErrorMessage?) { companion object { fun success(data: T?): Resource { return Resource(Status.SUCCESS, data, null) } fun error(msg: ErrorMessage, data: T?): Resource { return Resource(Status.ERROR, data, msg) } fun loading(data: T?): Resource { return Resource(Status.LOADING, data, null) ..

    [ Kotlin ] Coroutines을 확실하게

    코루틴의 포인트는 이전에 자신의 실행이 마지막으로 중단되었던 지점에서 다음의 장소에서 실행을 재개할 수 있다는 것이다. 코루틴은 협력 작업, 예외, 이벤트 루프, 반복자, 무한 리스트, 비동기 처리에 적합하다. 코루틴은 비동기처리를 간단한 코드로 만들어준다. (콜백, 캔슬, 리소스관리 등...) 코루틴은 메인쓰레드가 블라킹되는 부분에 지원을 해준다. 코루틴은 비동기 콜백 처리를 순차적인 코드로 바꿀 수 있다. (콜백지옥으로 되어있는 것을 순차적으로 짤 수 있다.) fun main() { GlobalScope.launch { delay(1000L) println("World") } print("Hello, ") Thread.sleep(2000L) println("Hi, ") } // Hello, (1초뒤)..