[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] 안드로이드 스튜디오에서 에뮬레이터(AVD) 분리하기

    안드로이드 스튜디오 최신 버전을 설치하면 기본 값으로 위와 같이 window 안에 에뮬레이터가 박혀있다. 개인적으로는 코드 작성할 화면이 줄어들고, 로그를 보기도 불편해서 에뮬레이터를 분리해서 사용한다. 에뮬레이터를 분리하는 방법은 다음과 같다. 에뮬레이터 분리하기 File -> Settings 를 클릭한다. Tools 그룹의 Emulator 탭을 클릭한 뒤 Launch in a tool window 체크를 해제하고 OK 버튼을 누르면 끝이다. 바로 적용이 안된다면 안드로이드 스튜디오를 재부팅하면 적용된다.

    [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로 이동하는 버튼을 추..

    [Android] 안드로이드 스튜디오 SDK 경로, AVD 경로 변경해서 C드라이브 용량 확보하기 (Android Studio)

    안드로이드 스튜디오로 개발을 하다 보면 업데이트되는 API 버전과 여러 라이브러리들로 인해서 SDK 용량이 늘어나게 되는데요, 만약 SDK 경로가 C드라이브에 있다면 넉넉한 용량이 아닌 이상 부담이 될 수 있는 상황입니다. AVD도 마찬가지로 여러 기기를 사용한다면 기기 하나하나가 크게는 10GB 가까이 하기 때문에 C드라이브에 저장해놓기는 부담이 됩니다. 이번 포스팅에서는 SDK와 AVD의 경로를 변경하여 C드라이브의 용량을 확보하는 방법을 알아보겠습니다! SDK 경로 변경 먼저 현재 SDK 경로를 확인합니다. 안드로이드 스튜디오에서 프로젝트를 오픈한 뒤 우측 상단에 큐브 모양 아이콘(SDK Manager)을 눌러줍니다. 상단에 Android SDK Location을 살펴보면 C:\Users\HANSA..

    [Android] 안드로이드 스튜디오 JDK, SDK, AVD 설치

    오늘은 저번 포스팅 '안드로이드 스튜디오 설치하기' 에 이어서 개발을 시작하기 위해 JDK, SDK, AVD 를 설치하여 개발환경을 구축해보겠습니다!🐱‍🏍 JDK 설치 예전에는 자바 JDK를 설치하여 설정을 해주어야 했지만, Android Studio 2.2 버전 이상부터는 Android Studio에 최신 버전의 OpenJDK를 내장하고 있으므로 따로 JDK를 설치하지 않아도 안드로이드 앱을 개발하는데 문제가 없습니다. 프로젝트를 생성 후 앱 수준의 build.gradle 파일에 들어가 보면 위와 같이 JDK가 설정되어 있습니다. SDK 설치 SDK를 설치하기 위해서 우선 새 프로젝트를 생성해 줍니다. 안드로이드 스튜디오를 실행하고 Projects 탭에서 New Project 버튼을 눌러줍니다. Emp..

    [Android] 안드로이드 스튜디오 설치하기 (Android Studio Installation)

    오늘은 안드로이드 앱 개발을 시작하기 위해 안드로이드 스튜디오를 설치하고 개발환경을 구축해보겠습니다!😎 🤔안드로이드란? 안드로이드(Android)는 구글에서 만든 모바일 운영 체제입니다. 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터베이스 그리고 표준 응용프로그램(웹 브라우저, 이메일, SMS 등)을 포함하고 있는 소프트웨어 스택입니다. 안드로이드는 리눅스 커널 위에서 동작하며, 자바와 코틀린으로 앱을 만들어 동작합니다. 💻안드로이드 스튜디오란? 안드로이드 스튜디오(Android Studio)는 안드로이드 앱(Android App) 개발을 위한 공식 통합 개발 환경(IDE)이며 인텔리제이(IntelliJ) IDEA를 기반으로 합니다. IntelliJ의 편리하고 강력한 코드 편집기..