본문 바로가기

반응형

Android + Kotlin

(42)
[Android Kotlin] stetho를 이용하여 REST API 데이터 디버깅하기 앱 개발을 하다보면 서버와 REST API 를 이용하여 데이터를 주고 받게 됩니다. 분명 잘 개발한거 같은데, 응답으로 실패가 되거나 json 오류 등등 여려가지 문제가 발생하는 경우가 비일비재 합니다. 이럴때는 서버에서 내려오는 실제 데이터를 보면 금방 해결할수 있습니다. 그럼, 서버에서 내려오는 데이터를 어떻게 확인할까요? 아래의 링크의 내용처럼 API Tester 앱을 이용하는 경우도 있겠지만, Android는 라이브러리를 추가하여 웹브라우저에서 확인이 가능합니다. 무료 REST(HTTP) API TESTER - Talend API Tester (크롬 확장 프로그램) 서비스를 개발하게되면 필수적으로 서버와 통신을 하게되는데, 이때 REST API를 사용하게 됩니다. 개발 또는 운영중에 REST AP..
[Android Kotlin] Paging 3.0 리스트에 Empty View와 Item Listener 구현하기 리스트를 구현하게 되면, 아래 그림과 같이 데이터가 없는 화면을 표시해야 하는 경우가 많습니다. 이번 시간에는 Paging 3.0 리스트에서 Empty View를 표시하는 방법에 대해서 알아보겠습니다. 개발 코드는 이전에 구현했던 프로젝트에 이어서 개발하겠습니다. 이전 개발이 궁금하신 분은 아래 링크를 확인해 주세요. Koin + MVVM + Coroutine + Flow 를 이용한 상세화면 만들기 앱개발에서 가장 기본이라 할수 있는 Rest API로 서버에서 데이터를 요청하고, 화면에 표시하는 일련의 과정을 정리해보려고 합니다. 요즘 Android 개발을 하면서 가장 많이 사용하고 있는(실제로도 heeeju4lov.tistory.com Paging 3.0 + MVVM + Flow를 이용하여 리스트 구현..
[Android Kotlin] 페이징 리스트에 리플래시(SwipeRefreshLayout) 구현하기 앱개발에서 빠지지 않는 리스트(RecyclerView)를 구현하면, 당연히 리플래시(리스트 갱신) 기능이 필수적으로 들어갑니다. 안드로이드에서는 리스트 리플래시를 아주 쉽게 할수 있도록 라이브러리를 제공하고 있습니다. 이를 이용하여 구현해보도록 하겠습니다. 예제는 이전에 구현했던 프로젝트에 하겠습니다. 이전 개발 내용은 아래 게시물을 확인해 주세요. Paging 3.0 + MVVM + Flow를 이용하여 리스트 구현하기 앱을 개발하면 빠지지않고 사용하는 페이징 리스트를 구현해 보도록 하겠습니다. 자동으로 페이징을 해주는 Paging 3.0 라이브러리를 이용하여 MVVM 모델과 Flow를 사용하여 연동할 예정입니다. 지 heeeju4lov.tistory.com Koin + MVVM + Coroutine +..
Paging 3.0 + MVVM + Flow를 이용하여 리스트 구현하기 앱을 개발하면 빠지지않고 사용하는 페이징 리스트를 구현해 보도록 하겠습니다. 자동으로 페이징을 해주는 Paging 3.0 라이브러리를 이용하여 MVVM 모델과 Flow를 사용하여 연동할 예정입니다. 지난 게시물에서 상세 화면을 구현하였던 무료 이미지 사이트인 Lorem Picssum(https://picsum.photos/) 에서 이미지 목록를 가져와서 리스트를 구현하도록 하겠습니다. 이미지 상세화면 구현은 아래 게시글을 읽어주세요. Koin + MVVM + Coroutine + Flow 를 이용한 상세화면 만들기 앱개발에서 가장 기본이라 할수 있는 Rest API로 서버에서 데이터를 요청하고, 화면에 표시하는 일련의 과정을 정리해보려고 합니다. 요즘 Android 개발을 하면서 가장 많이 사용하고 있는..
Koin + MVVM + Coroutine + Flow 를 이용한 상세화면 만들기 앱개발에서 가장 기본이라 할수 있는 Rest API로 서버에서 데이터를 요청하고, 화면에 표시하는 일련의 과정을 정리해보려고 합니다. 요즘 Android 개발을 하면서 가장 많이 사용하고 있는(실제로도 사용중인) Koin + MVVM + Coroutine + Flow 를 이용한 방법입니다. 1. Koin을 build.gradle(모듈 수준)에 implementation 합니다. dependencies { ... // Koin Current version def koin_version= "3.1.4" // Koin main features for Android implementation "io.insert-koin:koin-android:$koin_version" } 자세한 설정은 아래 링크를 참고해주세요..
Android 프로젝트에 Vector Image(SVG) 추가하기 안드로이드 프로젝트에는 이미지를 설명하는 XML 파일로 벡터 그래픽을 추가할 수 있습니다. 장점 이미지 파일 사이즈를 줄여, APK 크기가 작아짐 같은 파일로 화질 손실 없이 크기를 조정할 수 있음 고려사항 처음 로드시 래스터 이미지보다 CPU 사이클이 더많이 소모될수 있음 나중에는 둘 간의 메모리 사용과 성능이 비슷해짐 최대 200x200 에로 제한하는 것을 추천 (로딩이 오래걸릴수 있음) 하나 이상의 색상을 지원하지만, 아이콘을 검은색(#ff000000)으로 지정하는 것을 추천 vector Drawable 에 색조(android:tint 및 android:tintMode 속성)를 추가할 수 있음 제플린 디자인 가이드에서 이미지를 선택하면, 오른쪽 Assets에 SVG 항목이 보입니다. 다운로드를 합니..
DataBinding을 사용한 BaseFragment 만들기 이전 BaseActivity에 이이서 BaseFragment에 대해서 설명 드리겠습니다. BaseActivity는 아래 링크를 확인해주세요. DataBinding을 결합한 BaseActivity 만들기 우리는 개발을 하면서, 반복적이고 공통적인 코드를 기계적으로 코딩(Bolierplate 코드)을 하게됩니다. 그로인해 코드가 늘어나고, 간결하게 보이지 않아 코드 분석이 불편한 경험도 하게 됩니다. heeeju4lov.tistory.com BaseFragment도 반복적이고 공통적인 코드를 조금이나마 재사용과 간결하게 하기위해서 사용합니다. abstract class BaseFragment(@LayoutRes private val layoutId: Int): Fragment() { protected lat..
DataBinding을 결합한 BaseActivity 만들기 우리는 개발을 하면서, 반복적이고 공통적인 코드를 기계적으로 코딩(Bolierplate 코드)을 하게됩니다. 그로인해 코드가 늘어나고, 간결하게 보이지 않아 코드 분석이 불편한 경험도 하게 됩니다. 이런 부분을 조금이나마 개선하고자 Base Class를 사용하게 되는데, 제가 개발할때 사용하는 BaseActivity에 대해 설명 드립니다. 일반적인 DataBinding을 사용하기 위해서 build.gradle에 아래와 설정을 추가해줍니다. android { ... buildFeatures { //noinspection DataBindingWithoutKapt dataBinding true } } layout xml(activity_main.xml)은 테그로 감싸줍니다. 위의 작성된 layout을 Main..

반응형