Android

목적 MVVM 아키텍처가 등장하게 된 배경을 이해한다. MVVM 아키텍처의 필요성을 이해한다. MVVM 아키텍처의 등장 배경 안드로이드의 아키텍처는 크게 MVC, MVP, MVVM 3가지로 나뉜다. 아키텍처는 MVC, MVP, MVVM 순서로 나왔는데 각각은 이전 아키텍처를 개선하여 나온 것이다. 어떤 점에서 한계점이 있었고, 어떤점이 개선되었는지 아래에서 각각의 특징을 살펴보자. MVC : View와 Controller를 Activity, Fragment 클래스에서 담당 각 클래스가 강하게 결합되어 있을 경우, 한 클래스가 변경되면 다른 클래스 또한 같이 변경되어야 하기 때문에 유지보수 하기가 어렵다. 웹에서 널리 사용되었던 MVC 아키텍처에서는 안드로이드에서 사용하기 위해서 View단과 Control..
목표 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())에 대한 정보를 뜻한다. 구현은 안드로이드 시스템에 의해 제공되며, 앱 개발자가 직접 구현할..
Dev.Cho
'Android' 태그의 글 목록 (15 Page)