[Android] View Binding 사용하기

    오늘은 Android Jetpack 중 View Binding을 사용하는 방법에 대해 알아보자. View Binding의 필요성 기존에 Android에서 XMl에서 작성한 View의 요소를 불러오기 위해서는 findViewById를 사용했다. View의 요소가 많아지면 그만큼 findViewById 메서드를 호출해야 하므로 굉장히 번거로웠다. 이후에 Kotlin-android-extensions를 사용하면 findViewById를 생략하고 간편하게 뷰에 접근할 수 있게 되었지만 문제는 서로 다른 레이아웃 XML 파일에서 id를 동일하게 사용할 수 있기 때문에 코드가 헷갈릴 가능성이 있었다. 이러한 문제들 때문에 Android에서는 Kotlin-android-extensions의 지원을 중단하고 View ..

    [Android] SharedPreferences 쉽게 사용하기

    오늘은 Android에서 SharedPreferences를 비교적 쉽게 사용하는 방법을 공유하려고 한다. SharedPreferences란? 데이터를 영속적으로 저장해야 할 때 비교적 데이터 양이 작은 경우 간단한 방식으로 Key-Value 형태로 데이터를 저장할 수 있는 안드로이드 API이다. 실제 데이터들은 앱 내의 data/data/(package_name)/shared_prefs/SharedPreference 위치에 파일로 저장된다. SharedPreferences 사용하기 SharedPreferences를 사용하여 데이터를 읽고 쓰는 방법은 다음과 같다. SharedPreferences 객체 생성 SharedPreferences 객체를 생성하기 위해서는 getSharedPreferences() ..

    [Android] Jetpack Compose란?

    Jetpack Compose란? Jetpack Compose란 네이티브 Android UI를 빌드하기 위한 최신 UI Toolkit이다. 기존 XML로 작성하던 UI보다 더 적은 수의 코드, 여러 가지 강력한 도구, 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화하여 앱에 생동감을 더해주며 Android UI를 더 빠르고 쉽게 빌드할 수 있다. 선언형(Declarative) UI Jetapck Compose는 선언형 UI 패러다임을 적용한 UI Toollkit이다. 기존 안드로이드에서의 UI는 명령형 UI로, UI를 작성하기 위해서는 XML로 레이아웃을 작성하고, Kotlin 코드로 XML 레이아웃을 inflate 한 뒤 findViewById와 같은 함수를 사용하여 위젯..

    [Android] 리사이클러뷰(RecyclerView) 사용하기 (with ViewBinding)

    오늘은 안드로이드 앱 개발을 하면서 가장 많이 사용하게 되는 View 중 하나인 리사이클러뷰(RecyclerView)에 대해 알아보자. 리사이클 러뷰(RecyclerView) 란? RecyclerView란 한 화면에 표시할 수 없는 많은 데이터를 스크롤 가능한 리스트로 표시해주는 위젯이다. RecyclerView 사용하면 대량의 데이터 셋을 효율적으로 표시할 수 있다. 개발자가 데이터를 제공하고(데이터 셋), 각 항목의 모양(아이템 뷰)을 정의하면 RecyclerView 라이브러리가 필요할 때 요소들을 동적으로 생성한다. 이름에 Recycler가 들어가 있듯이 RecyclerView는 ViewHolder를 사용하여 뷰를 재활용하므로 앱 성능과 메모리 관리 측면에서도 매우 유용하다. 이와 비슷한 위젯으로 ..

    [Android] RxJava 프로그래밍(1) - RxJava란?

    프로젝트를 진행하면서 서버와의 통신을 구현하던 중 비동기 처리에 무엇을 사용할까 고민 중에 RxJava를 사용하기로 하였다. 그 이유는 다음과 같다. 1. 비동기 이벤트를 매우 쉽게 처리 가능 2. REST API 통신 라이브러리인 Retrofit과의 뛰어난 호환성 3. 간결한 코드 및 콜백 지옥 탈출 위 세가지 이유 외에도 많은 IT 기업에서 안드로이드 개발자 채용 시 RxJava 사용 경험이 있는 개발자를 우대하고 있으며, 새로운 기술을 습득하고자 하는 욕구에서 RxJava를 공부해보기로 했다. 본 포스팅은 옥수환님이 저자인 책 '아키텍처를 알아야 앱 개발이 보인다'에서 RxJava 파트를 공부하여 정리한 것이다. 1. RxJava란? RxJava란 Reactive X (Reactive Extensi..

    [Android] 투명 상태 바 만들기 (Transparent Status Bar)

    프로젝트를 진행하면서 투명 상태 바(transparent status bar)를 적용해야 하는 화면이 있었습니다. 구글링을 해봐도 코드가 deprecated 돼있거나, 적용한 결과물이 생각한 것과 다른 부분이 있어서 삽질을 반복하다가 겨우 알아낸 방법을 공유해 드리고자 합니다! 제가 원하는 것은 위 화면 처럼 지도나 사진이 있는 화면에서 투명한 상태 바를 가지는 것이었습니다. 이를 위해서는 Style XML 파일과 Activity 혹은 Fragment에서 코드를 추가해야 합니다. 프로젝트 생성 Empty Acticity로 프로젝트를 생성 한 뒤 Navigation Component를 이용해 Fragment 두 개를 추가하였습니다. 첫 번째 Fragment에는 두 번째 Fragment로 이동하는 버튼을 추..