본문 바로가기

안드로이드/라이브러리 추천

(4)
[AOS] Paging3 적용하기 페이징은 뉴스기사나 이커머스와 같이 많은 양의 데이터를 유저에게 원활하게 보여주기 위해 사용합니다. 장점 1. 중복 로딩 방지 2. 현재 데이터 페이지 넘버를 변수로 관리 3. 리스트 스크롤 특정 시점에 맞춰 데이터 로드 4. 로딩이나 에러등의 상태 관리의 용이하고 새로 고침이나 재시도 기능을 제공 5. 새로 고침된 데이터 변경시 'notifyItemChanged(position: Int)' 메소드등 호출 하지 않아도 자연 스럽게 변경 Paging3로 마이그레이션 하면서 겪은 내용 및 작업들을 공유하겠습니다. ※저는 MVVM 패턴과 Clean Architecture 구조에서 작업 했습니다. 구조 PaingSource나 RemoteMediator에서 PagingConfig 정보를 토대로 Pager를 통해 ..
[AOS] Dagger Hilt - DI 요즘 mvvm 검색하면 항상 붙어 나오는 키워드중 하나가 DI인것 같습니다. ( 요즘이 아니라 한참 오래전이긴 함 ) MVVM을 적용해보면서 코인은 써봤지만 hilt는 'Dagger'의 학습곡선이 상당하다는 얘기만 들어서 엄두도 못내다가 이직한 회사에 힐트가 적용되어 있어 공부한 내용을 정리해봅니닷 | DI 필요성 ( 의존성 주입 ) A 클래스에서 B 클래스를 객체화 해서 사용하는 경우를 예를 들어보면 아래와 같습니다. class A{ val b = B() ... } class B{ ... } 만약 B클래스의 기능 변화로 객체화시 넘겨줘야 하는 변수가 생긴다면 B클래스를 객체화 하는 클래스를 모두 찾아서 그에 맞게 변경 해줘야 합니다. class B constructor(val number: Int){ ..
[And] Flexbox 라이브러리로 가변적인 UI 구현 - 라이브러리 추천 Textview의 텍스트의 길이가 길어짐에 따라 자동적으로 줄바꿈 되듯이 ViewGroup(Linear, relative, constraint)안에 View들이 차지하는 영역에 따라 줄바꿈 해주는 기능은 기본적으로 ViewGroup으로 구현하긴 어려움이 있습니다. 더군다나 안드로이드의 스크린 사이즈는 정말 많은 종류가 있기 때문에 사실상 완벽하게 모두 대응하긴 어렵기 때문에 다른 개발자들이 미리 만들어놓은 라이브러리를 사용해서 빠르게 개발하는것도 좋은 방법중 하나라고 생각합니다. >> 적용한 사례 Flexbox Ui를 사용한 예로 제가 출시한 '식물일기'란 앱에서 할일을 등록하는 화면입니다. 상단에 할일을 선택하면 아래에 카드형태로 설정할 수 있는 화면이 추가되는 구조로 상단에 할일은 총 4개이고 디바이..
[안드로이드/Android] 로그 이쁘게 출력하기 개발하는 과정에서 빠질수 없는 디버깅에 한 방법으로 로그 출력을 주로 사용하고 있습니다. 기본적으로 로그는 Log.d(String tag, String msg)를 사용해 태그와 메세지를 출력합니다. 일반적인 로그를 사용하면 시스템 로그들과의 구분이 어려워 디버깅이 원활하지 않습니다. 하지만 'logger' 라이브러리를 사용하면 보다 편리하게 디버깅을 할 수 있습니다. 사용법 gradle(.app) implementation 'com.orhanobut:logger:2.2.0' L.java 'L'은 로그를 사용하기 위해 만든 유틸 클래스 입니다. Logger.addLogAdapter(AndroidLogAdapter(formatStrategy)) 일반적인 로그와 같이 d,e,w,v,i 모두 제공합니다. Log..