Android/Component

    [Android] onBackPressedDispatcher 사용해 뒤로가기 동작 설정하기: 뒤로가기 두 번 눌러 종료하기 예제

    onBackPressedDispatcher이란? 안드로이드에서 애플리케이션을 개발하다보면, 종종 Activity 혹은 Fragment에서 뒤로 가기 버튼에 대한 동작을 커스텀하게 정의해야 할 상황이 발생한다. 이렇게 뒤로 가기 버튼에 대한 동작을 커스텀하게 정의해야 할 때, Activity 혹은 Fragment에서 접근할 수 있는 onBackPressedDispatcher를 사용할 수 있다. *onBackPressedDispatcher 변수는 OnBackPressedDispatcher 객체를 가리킨다. onBackPressedDispatcher 사용해 뒤로가기 동작 설정하기 onBackPressedDispatcher를 사용해 뒤로 가기 동작을 정의하기 위해서는 두가지가 필요하다. onBackPressed..

    Fragment의 생성자 오버로드는 왜 금지되는가

    목표 생성자가 무엇이고, 생성자 오버로드가 무엇인지 이해한다. Fragment의 생성자 오버로드를 하지 말아야 하는 이유에 대해 이해한다. 생성자란? 생성자란 객체의 인스턴스를 생성할 때 호출되어 객체의 인스턴스를 반환하는 메서드를 뜻한다. 예를 들어 아래와 같은 클래스가 있다고 해보자 class GalaxyTab(name: String, size: Int) GalaxyTab 객체의 인스턴스는 다음의 방식으로 만들어낼 수 있다. val tabS7 = GalaxyTab("S7", 11) 우리는 GalaxyTab(name : String, size: Int)을 생성자라고 부른다. 생성자 오버로드란? 생성자 오버로드란 class의 생성자를 두 개 이상 가지는 것을 뜻한다. Kotlin에서는 constructo..

    [Bundle] Android Bundle 이란 무엇인가? Bundle을 이용해 데이터 전달하기

    목표 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,..

    [Bundle] Android Parcel과 Parcelable 알아보기 + kotlin-parcelize plugin 활용하기

    목표 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란 무엇인지 이해한다. ApplicationContext와 ActivityContext의 차이에 대해 이해한다. 적절한 곳에 context를 사용할 수 있도록 한다. Context Context란 추상 클래스로, Application environment의 global한 정보에 접근하기 위한 인터페이스이다. Application environment의 global한 정보란 Application의 resource(getPackage(), getResource())나 Android 시스템에서 제공하는 API(startActivity(), startService(), getSystemService())에 대한 정보를 뜻한다. 구현은 안드로이드 시스템에 의해 제공되며, 앱 개발자가 직접 구현할..