본문 바로가기

Android

(140)
[Android] Compose Sample Project에서 겪은 Version 문제 해결 방법과 순서 오랜만에 블로그 글을 작성하기 앞서, 기존에 작성했던 프로젝트들을 한번 둘러보았다. 둘러보던 도중, Compose Sample Project가 정상적으로 Build 되지 않았고, 해당 문제는 다양한 Version이 낮아 발생하는 이슈로 빌드가 되지 않았다. 따라서, 해당 프로젝트가 정상적으로 빌드되기까지 진행했던 작업들에 대해 기록해두고자 한다. Compose의 버전을 올림으로서 발생하는 Compose syntax Error를 제외하고, 일반적으로 IDE 환경에서 발생할 수 있는 이슈들이라고 생각이 되었고, 필자와 마찬가지로 낮은 버전에서 버전을 올릴 경우 최소 아래 기술한 내용들을 모두 체크하고 작업해야 하므로 이후 작업에도 도움이 될 것이라고 판단하였다. Sample Project를 가져와서 다시 빌..
[Android] SDK31 외부 Library Export 설정 변경하기 올해 11월부터 TargetSDK를 31로 올리지 않으면 업데이트를 할 수 없다는 공지가 나왔고, 11월로 명시되어 있지만 유예 기간으로 한 달을 준 것 인지 필자는 12월 업데이트부터 해당 항목이 적용되어 TargetSDK 버전을 올리는 작업을 진행하게 되었다. 기존 회사에서 사용하던 레거시 라이브러리를 건들지 못하고 방치하고 있었는데, 이번에 버전을 올리면서 관련한 이슈가 발생하여 해결하는 방법을 짧게나마 남겨두려고 한다. TargetSDK 버전을 31로 지정함에 따라 가장 많이 수정되는 부분이 Export 설정과 PendingIntent에 대한 Flag 설정인 것 같다. 여기서 PendingIntent의 경우 관련된 코드에 Flag를 추가/수정해주며, PendingIntent를 사용 중인 라이브러리..
[Android] RecyclerView Drag and Drop 회사에서 개발 업무를 진행하다, 요구사항에 맞춰서 아이템의 순서를 Drag & Drop으로 변경할 수 있도록 개발해야 했다. iOS의 경우에는 이런 이벤트를 쉽게 moveRow라는 것을 통해서 구현할 수 있다고 하는데, 안드로이드에서는 이벤트를 직접 구현하여 적용시켜야 했다. 구글링을 통해 방법을 찾아서 기능 구현을 진행했고, 그 방법에 대하여 작성해보고자 한다. 구현의 순서는 다음과 같다. 1. ItemMoveEvent Class를 만든다. 2. Activity에서 적용할 RecyclerView에 Event를 적용시킨다. 3. Adapter에서 아이템이 이동될 때의 처리를 해준다. 아주 간단하게 Drag & Drop에 대한 이벤트를 구현할 수 있어 보이지만, 관련된 정보를 찾는 것에 시간이 생각보다 오..
[Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -3. other layout 본 게시글은 이전 글에 이어서 작성된 부분입니다. 2022.09.01 - [Android/Utility] - [Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -1. 기본 2022.09.05 - [Android/Utility] - [Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -2. DataBinding 이전 게시글에 이어서, 이번엔 Epoxy를 사용하여 흔히 사용하는 layout을 만들어보고자 한다. 이전 게시글에서는 가장 기본적으로 LinearLayout을 사용하여 recyclerView를 구현했었다. val linearlayoutManager = LinearLayoutManager(this) binding.epoxyRecyclerVie..
[Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -2. DataBinding 본 게시글은 이전 글에 이어서 작성된 부분입니다. 2022.09.01 - [Android/Utility] - [Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -1. 기본 이전 게시글에 이어서, Epoxy에 DataBinding을 적용하여 사용하는 방법에 대하여 알아보도록 하겠다. 우선, Epoxy에 Databinding을 사용하기 위해서는 Module 범위의 Gradle에 dependency를 추가해주어야 한다. implementation "com.airbnb.android:epoxy-databinding:$epoxy_version" 물론, android 블록에 dataBinding에 대한 사용 설정도 해주어야 한다. dataBinding { enabled = true }..
[Android] Epoxy를 사용하여 RecyclerView를 쉽게 사용해보자 -1. 기본 기술 블로그를 확인하다, Epoxy라는 유용해 보이는 라이브러리를 발견하였다. RecyclerView를 보다 사용하기 쉽게 도와주는 라이브러리라고 해서 찾아보고, 간단하게 적용해보았다. 해당 라이브러리를 사용하고, 가이드 한 글은 외국 블로그에서 많이 찾아볼 수 있었는데, 생각보다 따라서 구현했을 때 정상적으로 한 번에 실행되는 경우가 없었던 것 같다. 따라서, 해당 라이브러리의 Github를 토대로 필자가 적용한 순서대로 정리하여 글을 작성해 보았다. 우선, Epoxy가 무엇인가 ? Airbnb 사에서 만든 라이브러리로, RecyclerView에서 복잡한 화면을 쉽게 구현하는 것을 도와주는 라이브러리. 이다. RecyclerView를 사용하고 화면에 보여주기 위해서는 Adapter와 ViewHolder..
[Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. -2. DI 본 게시글은 이전 글에 이어서 작성된 부분입니다. 2022.08.12 - [Android/Network] - [Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. 지난 글에 이어서, 이번에는 Hilt와 Koin을 사용하여 Ktor을 적용해보도록 하였다. 우선, Hilt를 사용하기 위해 Gradle에 추가해주도록 한다. plugins { ... id 'com.google.dagger.hilt.android' version '2.41' apply false } Project 범위의 Gradle에 Hilt 플러그인을 추가해주고, plugins { ... id 'dagger.hilt.android.plugin' } dependencies { ... // hilt def hilt_versio..
[Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. -1. 기본 최근 안드로이드 관련 블로그를 보다가 Ktor이라는 것을 알게 되었다. Retrofit 대신해서 사용할 수 있는 비동기 통신 라이브러리라고 하는데, Retrofit만 사용하던 필자로선 상당히 흥미로운 라이브러리였다. 따라서, 아주 간단한 샘플 프로젝트를 만들어서 Ktor을 적용해보고 기본적인 사용 방법에 대해 글을 작성해보고자 한다. 우선, Ktor이 무엇인가? Ktor은 JetBrains에서 만든 Framework로 Kotlin을 사용하여 비동기 서버 및 클라이언트를 구축할 때 사용하는 오픈소스. 라고 한다. Kotlin으로 구현되어있기는 하지만, 안드로이드에 제한되어 있지 않고 다양한 플랫폼에서 사용이 가능하다는 특징을 가지고 있다. 필자는 클라이언트 입장에서 Ktor을 사용해서 Retrofit 대신..