Android

목표 ViewModel이 만들어진 이유를 이해한다. ViewModel이 필요한 이유 Android는 모바일 OS 특성상 리소스에 대한 제약이 많은 OS이다. 모바일 OS에서는 리소스를 제거해야만 하게 만드는 제어될 수 없는 이벤트가 발생하게 되는데, Android 프레임워크는 이러한 이벤트가 발생했을 때 Activity와 Fragment 같은 UI 컨트롤러에 대한 제거와 복구를 수행한다. 예를 들어 화면 회전이 이루어진다고 하자. 화면 회전이 이루어지게 되면 Activity가 파괴(onDestroy)된 다음 다시 화면이 만들어지면서(onStart) 복구 로직이(onRestoreInstanceState) 수행된다. Lifecycle에 관한 내용을 모른다면 아래(kotlinworld.com/46) 글을 참조..
목표 string.xml 을 사용해 다국어 문자열을 만드는 방법을 안다. 개요 세계에는 한국어, 영어, 일본어, 중국어, 스페인어 등 다양한 언어가 있다. 사용자에 따라 자신에게 편한 언어가 다를 수 있다. 앱을 사용할 경우에도 마찬가지이다. 사용자 별로 자신이 편한 언어가 다를 수 있는데, 이는 주로 자신이 속한 국가에 영향을 받는다. 안드로이드에서는 국가에 따라 다르게 문자열을 표현할 수 있는 방법을 제공한다. 우리는 이를 다국어 문자열을 지원한다고 한다. 그렇다면 어떻게 지원을 할까? 바로 res(리소스) 폴더 내에 있는 values 폴더 내부의 strings.xml 파일을 통해 다국어 문자열을 지원한다. strings.xml 이란? 여기서 strings.xml 파일 내부에서 string은 key-..
목표 의존성 주입이 무엇인지 이해한다. 의존성 주입이 왜 필요한지 이해한다. 의존성 주입이란? 의존성 주입이란 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻한다. 의존성 주입 그 자체는 클래스간 의존성을 외부에서 주입하는 것을 뜻하지만, 일반적으로 우리가 사용하는 의존성 주입은 클래스에 대한 의존성의 인터페이스화를 통한 코드 유연성 증대 + 클래스의 인스턴스를 외부에서 생성하여 주입 을 동시에 하는 방향으로 진행된다. 아래에서 의존성이 무엇인지 왜 인터페이스화를 하는 것이 필요한지부터 살펴보자. 의존성이란 무엇이며 어떻게 유연하게 만들 수 있는가? 객체 지향 프로그래밍에서 클래스간에 의존성이 있다는 것은 클래스간에 의존 관계가 있다는 것을 뜻한다. 즉, 클래스 간에 의존(Dependency) 관계가..
목표 Activity의 Lifecycle에 대해 이해한다. 각 수명주기에 해당하는 메서드가 언제 호출되는지 알아야 한다. 개요 안드로이드의 리소스 제한으로 인해 Activity는 항상 살아있지 못한다. Activity는 Activity가 보여주는 화면(View)이 화면 상에서 뒤로 가거나, 화면 상에서 사라지게 될 경우 특정한 메서드를 호출하게 되는데, Activity의 Lifecycle은 Activity가 각 상황에서 어떤 메서드를 호출하는지를 알려준다. Activity Lifecycle onCreate() Activity가 시작될 때 불림 onStart() Activity가 보이기 전에 불림 Broadcast Receiver은 여기서 등록한다. onResume() Activity 일부가 보일 때 불림..
목적 MVVM 아키텍처의 각 부분이 어떤 역할을 하는지 안다. MVVM 아키텍처의 의의를 이해한다. MVVM 아키텍처 개요 MVVM 아키텍처는 View, View Model, Model 세가지로 나뉜다. 1. View : UI 클래스 - Activity와 Fragment View는 말 그대로 보이는 것이다. View의 가장 대표적 class인 Activity는 UI를 포함한 화면 하나를 가지고 있다. Activity나 Fragment와 같은 요소에서는 사용자에게 UI를 보여주며, 사용자와 소통하는 채널이 된다. View에서는 아래 ViewModel의 데이터를 관찰(Observe)하여 데이터 변경이 있을 시, View를 업데이트 시킨다. 보통 View를 업데이트 시킬 때 Data Binding Librar..
Dev.Cho
'Android' 태그의 글 목록 (14 Page)