[Android][Compose] kizitonwose/Calendar, 캘린더 라이브러리 사용기 #3
·
Android/UI
[Android] kizitonwose/Calendar, 캘린더 라이브러리 사용기 #2[Android] kizitonwose/Calendar 캘린더 라이브러리 사용기 #1GitHub - kizitonwose/Calendar: A highly customizable calendar view and compose library for Android and Kotlin Multiplatform.A highly customizable calendar view and compose library for Andogyong.tistory.comkizitonwose/Calendar, 캘린더 라이브러리 사용기 #2는 View 기반으로 작업을 하였다. 이번에는 Compose를 기반으로 사용해 봤다. Compose로 사용하..
[Android] kizitonwose/Calendar, 캘린더 라이브러리 사용기 #2
·
Android/UI
[Android] kizitonwose/Calendar 캘린더 라이브러리 사용기 #1GitHub - kizitonwose/Calendar: A highly customizable calendar view and compose library for Android and Kotlin Multiplatform.A highly customizable calendar view and compose library for Android and Kotlin Multiplatform. - kizitonwose/Calendargithub.com캘린ogyong.tistory.com지난번 kizitonwose/Calendar, 캘린더 라이브러리 사용기 #1에 이어서 몇 가지 기능을 추가해 보려고 한다.- CalendarVie..
[Android] kizitonwose/Calendar, 캘린더 라이브러리 사용기 #1
·
Android/UI
GitHub - kizitonwose/Calendar: A highly customizable calendar view and compose library for Android and Kotlin Multiplatform.A highly customizable calendar view and compose library for Android and Kotlin Multiplatform. - kizitonwose/Calendargithub.com캘린더에 날짜 이외에 다른 데이터를 함께 표시할 일이 생겨서 적합한 라이브러리를 찾던 중 kizitonwose의 Calendar 라이브러리를 발견했다. 해당 라이브러리는 캘린더를 개발자가 원하는 모습으로 꾸미는 것이 가능하다. 그리고 라이브러리를 사용하기 위한 샘플..
[Android][Compose] Material2→Material3의 Typography
·
Android/UI
Material2에서 Material3로 이전하면서 Typography(서체) 시스템이 변경되었다.매개변수의 수는 거의 동일하지만 이름이 달라 파악하기 어려워 아래 표로 정리했다.Material2Material3h1displayLargeh2displayMediumh3displaySmallN/AheadlineLargeh4headlineMediumh5headlineSmallh6titleLargesubtitle1titleMediumsubtitle2titleSmallbody1bodyLargebody2bodyMediumcaptionbodySmallbuttonlabelLargeN/AlabelMediumoverlinelabelSmall
[Android] SplashScreen 사용하기
·
Android/UI
Android 12부터 스플래시 화면을 구현하기 위한 SplashScreen API(참고)가 추가되면서 모든 앱이 시작할 때 스플래시 화면에 앱 아이콘을 보여주게 되었다. 이것 때문에 SplashScreen의 처리를 하지 않으면 앱 아이콘이 포함된 스플래시 화면이 먼저 노출되었다가 사용자가 구현한 스플래시 화면이 보이는 이슈가 생겼다. 기존에는 스플래시 화면을 구현하기 위해서 직접 화면을 만들어야 했다. 하지만 SplashScreen이 등장하고 나서는 직접 화면을 만들 필요도 없고 애니메이션과 같은 효과와 더불어 스플래시 화면을 간단하게 만들 수 있게 되었다. 그럼 기존 방식에 문제가 있었는가 하면 앱의 시작 상태 중 Hot Start에 그 이유가 있다. Hot Start 상태에서는 앱이 실행될 때 메모..
[Android] Paging3에서 데이터 없을 때 처리하기
·
Android/UI
Paging3는 PagingData를 PagingDataAdapter의 submitData로 전달하여 리스트를 표시한다. 만약 리스트에 표시할 데이터가 없는 경우 초기 화면을 표시해야 하지만,데이터가 없어도 PagingData는 null이나 empty로 내려오지 않는다. 이럴 때 PagingDataAdapter의 addLoadStateListener를 사용하면 데이터가 없을 때 처리를 할 수 있다.addLoadStateListener는 CombinedLoadState로 현재 PagingData의 로딩 상태를 관찰한다. CombinedLoadStates의 LoadState 정보는 다음과 같다.(참고)• append 목록의 끝에서 데이터를 로드하는 상태• prepend 목록의 시작 부분에서 데이터를 로드..
[Android] Glide, 모서리 둥글게 처리하기
·
Android/UI
.apply(RequestOptions.bitmapTransform(RoundedCorners(정수 값)))Glide를 사용해서 이미지를 표시할 때, 모서리를 둥글게 하려면 위의 코드를 추가하면 된다.Glide.with(this) .load(R.drawable.sample) .into(mBinding.ivMain)Glide.with(this) .load(R.drawable.sample) .apply(RequestOptions.bitmapTransform(RoundedCorners(80))) .into(mBinding.ivMain)
[Android] Paging3에서 아이템 삭제하기 + 로딩 처리
·
Android/UI
[Android] Paging3, 스크롤 시 로딩 화면 추가하기[Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면ogyong.tistory.com저번에 했던 스크롤 시 로딩 화면을 추가하는 것에 이어서Paging3에서 아이템을 삭제하고, 삭제가 처리되는 동안 로딩 화면을 띄우는 것을 해보려고 한다.Room 삭제 쿼리 추가@Daointerface SampleDao { ... /** * 아이템 삭제 */ @Query("DELETE..
[Android] Paging3, 스크롤 시 로딩 화면 추가하기
·
Android/UI
[Android] Paging3 + Room + Flow 사용하기[Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을ogyong.tistory.com저번에 Paging3를 이용해서 리스트를 그려봤다.여기에 추가로 스크롤을 해서 다음 페이지를 호출할 때 로딩 화면을 그려보려고 한다. Paging3 라이브러리는 LoadState 클래스를 통해 데이터의 로드 상태를 추적할 수 있다.그리고 로드 상태가 변경되면 LoadState 값을 자동으로 알림 받는 LoadStateAdapter가 존재한다. 해당 글은..
[Android] Paging3 + Room + Flow 사용하기
·
Android/UI
[Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room)[Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에ogyong.tistory.com이전에 기기에 저장된 데이터를 RecyclerView와 Room을 사용해서 페이징 작업을 한 적이 있었다.이번에는 Paging3 라이브러리를 사용해서 기기에 저장된 데이터를 표시해보려고 한다.(삭제 기능은 다음에..) 참고로 Paging3는 Android Paging Basics codelab과 Android Paging Advanced codelab이..
[Android] RecyclerView에서 페이징+삭제 처리하기 (with Room) #2
·
Android/UI
[Android] RecyclerView에서 페이징 처리하기 #1RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 도달했을 때를 감지하여 로딩 화면을 띄우ogyong.tistory.com저번에 RecyclerView에서 문자열 배열이 저장된 파일을 이용해 페이징 처리를 해봤는데,이번에는 실제로 Room에 저장된 데이터의 페이징과 삭제 처리를 해보려고 한다.RecyclerView 페이징 예제예제에서 Room, ViewModel, LiveData, Coroutine, ViewBinding을 사용한다. 1부터 30까지의 값을 Room을 이용해서 기기에 저장한다.(데이터 저장은 별도로 구현하지..
[Android] RecyclerView에서 페이징 처리하기 #1
·
Android/UI
RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다.Adapter에서 등록된 list가 마지막에 도달했을 때를 감지하여 로딩 화면을 띄우고 다음 페이지를 호출하는 것이다. RecyclerView는 스크롤 상태와 리스트의 포지션에 대한 정보를 알려주는 addOnScrollListener 메서드를 제공한다.addOnScrollListener를 이용해서 페이징 처리를 해보려고 한다.RecyclerView 페이징 예제 1번 2번 3번 4번 5번 6번 7번 8번 9번 10번 11번 ..