Android

목표 LiveData가 무엇인지 안다. LiveData의 setValue와 postValue의 차이점에 대해 안다. 개요 LiveData는 수명주기를 인식하는 데이터 발행자(Observable)이다. 발행자(Observable, Publisher) 리액티브 프로그래밍에서 발행자는 자신에게 붙은 구독자(subscriber)에게 데이터를 발행해주는 역할을 한다. LiveData는 수명주기를 인식하여 옵저버(observer)에게 데이터를 발행한다. 즉, LiveData는 발행자이며, 옵저버(observer)라 불리는 구독자(subscriber)을 붙일 수 있다. LiveData의 데이터가 바뀔 때 LiveData에 붙은 구독자들에게 데이터가 발행된다. 하지만, 기존 리액티브 프로그래밍과 다르게 LiveData..
목표 Bundle이 가진 특성을 이해한다. Bundle에 어떤 객체가 들어가고 나올 수 있는지 안다. Bundle Bundle이란 Map형태로 구현된 데이터의 묶음(Bundle)이다. Map형태라 key 값이 String이며, value값에는 Int, String과 같은 간단한 타입부터 Serializable, Parcelable 같은 복잡한 타입이 들어올 수 있다. Android에서는 객체를 전달할 때 보통 Parcelable을 구현한 객체를 전달한다. *Parcelable에 대해 모른다면 [Bundle] Parcel과 Parcelable 글을 참조 Bundle의 사용 Android에서는 Bundle을 다음의 활동에 사용한다. Activity의 상태 저장 및 복구(onSavedInstanceState,..
목표 Parcel의 특징을 이해한다. Parcelable의 특징을 이해한다. Parcel이란? Parcel이란 무엇일까? 먼저 번역을 해보는 것이 이해에 도움이 될 것이다. Parcel은 한국어로 '꾸러미'라는 뜻이다. 짐을 싸듯이 객체를 싸는 클래스가 바로 Parcel 클래스이다. Parcel 클래스는 직렬화시 Container역할을 하는 클래스로 말 그대로 꾸러미이다. Parcel이 필요한 이유 안드로이드에서는 프로세스간 통신(IPC)을 위해 Bundle 클래스를 사용하는데, 이러한 Bundle Class는 Map으로 Key와 Value가 있는 형태의 클래스이다. 이러한 Bundle에서 Int나 String 같은 간단한 데이터는 그대로 Value 값으로 넣을 수 있지만, Java의 POJO나 Bean..
목표 Context란 무엇인지 이해한다. ApplicationContext와 ActivityContext의 차이에 대해 이해한다. 적절한 곳에 context를 사용할 수 있도록 한다. Context Context란 추상 클래스로, Application environment의 global한 정보에 접근하기 위한 인터페이스이다. Application environment의 global한 정보란 Application의 resource(getPackage(), getResource())나 Android 시스템에서 제공하는 API(startActivity(), startService(), getSystemService())에 대한 정보를 뜻한다. 구현은 안드로이드 시스템에 의해 제공되며, 앱 개발자가 직접 구현할..
개요 AndroidManifest.xml은 앱의 필수 구성요소이다. AndroidManifest.xml에서는 아래 3가지가 정의되며, 정의되지 않은 권한이나 구성요소를 앱 구동 시 사용할 수 없다. 앱의 고유한 식별자인 패키지명, 안드로이드 앱에서 필요한 권한, 안드로이드 구성요소(Activity, Service, Broadcast Recevicer, ContentProvider) AndroidManifest.xml 파일에서 정의되지 않으면 앱의 구성요소로 인식이 되지 않아 사용할 수 없게 된다. 이미 눈치 챘겠지만 안드로이드의 모든 핵심 구성요소가 AndroidManifest.xml에서 정의되며, 따라서 AndroidManifest.xml을 사용하는 방법을 아는 것은 매우 중요하다. 패키지명 선언 An..
Dev.Cho
'Android' 태그의 글 목록 (15 Page)