| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 멀티모듈
- broadcast reciver
- 안드로이드 키보드
- activity
- onscrollstatechanged
- serialization
- 코틀린
- coil
- GSON
- compose
- buildSrc
- 이미지 로딩
- EditText Button
- 우아한테크코스
- 안드로이드
- Glide
- 컴포즈
- 우테코 6기
- 최상단
- 우테코
- Android
- 4대 컴포넌트
- constraint
- 안드로이드 스튜디오
- moshi
- android studio
- 로또 미션
- layoutinflater
- recyclerview
- 프리코스
- Today
- Total
목록Android (10)
정답보다 해답을
공통 Android 설정을 매번 build.gradle.kts 파일마다 복붙하고 계신가요?모듈이 많아질수록 비효율은 커지고, 유지보수는 어려워집니다.이럴 때 buildSrc 디렉토리를 활용하면 공통 설정을 코드로 재사용할 수 있어 더욱 효율적인 프로젝트 구성이 가능합니다.1. buildSrc란?buildSrc는 Gradle이 자동으로 인식하는 특별한 디렉토리입니다.이 디렉토리 안에서 Kotlin 코드로 빌드 설정을 작성하면, 모든 모듈에서 해당 설정을 재사용할 수 있습니다.왜 써야 할까?중복 제거: compileSdk, jvmTarget 등 반복되는 설정 제거일관성 확보: 모든 모듈의 빌드 환경을 하나로 통합코틀린 기반 설정: 타입 안정성 + IDE 자동완성 지원2. Version Catalog 연동 (..
컴포즈 스크롤을 구현하면서 문득, 스크롤바는 어떻게 추가하지? 라는 고민을 하게 되었습니다.찾아보니 공식문서나 Material3에서 지원하고 있는 사항이 아닌 것 같아 직접 한 번 구현해보게 되었습니다.이번 글에서는 코드 구조나 디자인보다는 동작하는 커스텀 스크롤바 구현을 목표로 한 첫 시도 과정을 기록하려고 합니다.전체 코드는 해당 저장소에서 확인하실 수 있습니다. 커스텀 스크롤바1. 기본 레이아웃 구성Box(modifier = Modifier.fillMaxSize()) { LazyColumn(...) { ... } // 보여줄 리스트 CustomScrollbarForLazyList(...) { ... } // 커스텀 스크롤바}리스트(LazyColumn)와 스크롤바를 하나의 Box 안에 쌓아..
모바일 앱이 서버와 통신할 때 주고받는 데이터는 대부분 JSON입니다.따라서 "어떤 라이브러리로 JSON을 다룰 것인가"는 앱의 성능과 안정성과 큰 연관이 있습니다.JSON으로 받아온 데이터를 앱에서 객체로 활용하기 위해서는 변환이 필요합니다. 이 과정을 직렬화 라고 합니다.이 문서는 직렬화를 위한 라이브러리를 소개하고, 각각을 비교하여 본인의 프로젝트에 맞게 선택하는 것을 목표로 합니다.1. 직렬화 주요 라이브러리 소개Gson: Google에서 개발한 Java 기반 JSON 직렬화/역직렬화 라이브러리입니다.Moshi: Square에서 만든 현대적인 JSON 라이브러리입니다. Kotlin 친화성과 성능 최적화에 초점을 맞췄습니다.Serialization: JetBrains가 공식 지원하는 Kotlin 전..
Coil, Glide, Picasso 비교하기안드로이드에서 이미지를 로딩할때 활용되는 이미지 로딩 라이브러리( Coil, Gilde, Piccasso )에 대해 비교 분석하며레이아웃, 컴포즈를 쓸때도 뭐가 더 좋은지 알아봅니다.어떤 기준으로 라이브러리를 선정하면 좋을지에 대해 정리합니다.1. 이미지 로딩 라이브러리를 왜 사용할까?이미지를 직접 처리하려면 다음과 같은 복잡한 로직이 필요합니다.네트워크 요청으로 이미지 바이트를 가져오기Bitmap 디코딩 및 리사이징RecyclerView에서의 이미지 재활용 처리메모리 절약을 위한 캐시(LruCache), 디스크 캐시 직접 구현 등예시 코드 (직접 이미지 로딩 구현)fun loadImageManually(url: String, imageView: ImageVi..
목차 📑LayoutInflater란 무엇인가동작 방식과 기본 개념생명주기에 따른 Inflate 패턴RecyclerView의 View 재활용과 Inflateinflate() 메서드와 파라미터 이해ViewBinding과 함께 사용하기안티패턴과 주의사항주요 사용 팁1. LayoutInflater란 무엇인가 💡LayoutInflater는 XML 레이아웃 파일을 실제 View 객체로 변환하는 안드로이드의 시스템 서비스입니다.// XML 레이아웃 // View 객체로 변환val view = layoutInflater.inflate(R.layout.my_layout, container, false)2. 동작 방식과 기본 개념 ⚙️2.1 기본 동작 과정XML 파싱View 객체 생성속성 적용부모에 추가 (att..
이번 포스트에서는 안드로이드에서 리사이클러뷰를 스크롤할 때 상단으로 올려주는 버튼을 구현하는 방법을 소개하겠습니다. onScrollStateChanged와 smoothScrollToPosition의 쓰임에 대해 알아보는 것을 목표로 합니다. 아이폰은 상태바를 두번 터치하면 최상단으로 올라오는 기능이 있습니다.반면, 안드로이드는 스크롤을 하면 다시 돌아올때 반대로 스크롤 해야합니다.이러한 불편함을 해소하기 위해 스크롤이 된 상태라면 버튼을 활성화 하여 화면을 최상단까지 올리는 기능을 구현해보겠습니다. Android의 RecyclerView를 활용하였고, 별다른 아키텍쳐는 적용하지 않고 Activity에서 모든 구현을 마쳤습니다. MainActivityclass MainActivity : AppCompatA..