compose(11)
-
Android 구조 개편기 기본구조 -> MVVM → 클린아키텍처 + 멀티모듈 → Compose + MVI 현업 적용기 (마지막 Compose + MVI 편)
안녕하세요, 구구집사입니다.이번 글은 Android 구조 개편기 시리즈의 마지막 편, Compose + MVI 현업 적용기 입니다. 1부에서는 MVVM으로의 전환기, 2부에서는 클린 아키텍처와 멀티모듈화 과정을 다뤘습니다.이번 글에서는 Jetpack Compose 도입 이유부터, 기존 양방향 구조의 한계를 넘어서기 위한 MVI 도입기 그리고 도입 후의 저의 생각 경험까지 공유드리겠습니다. 1. XML에서 Compose로 전환하게 된 이유기존 프로젝트는 오랫동안 XML 기반 View 시스템을 사용해 왔습니다. 하지만 아래와 같은 이유로 Compose 도입을 검토하게 되었습니다.오랫동안 XML을 사용해 왔기에 Compose 도입이 필요할까 고민했지만,구글이 공식적으로 적극 지원하고 있다는 점,그리고 이미 ..
2025.05.03 -
Android 구조 개편기 기본구조 -> MVVM → 클린아키텍처 + 멀티모듈 → Compose + MVI 현업 적용기 (2부 클린아키텍처)
안녕하세요, 구구집사입니다.시작하며클린 아키텍처 도입기 — 구조적 고민에서 확장성까지"현업에서의 클린 아키텍처 도입은 어떤 의미였는지""그리고 실제로 어떤 고민과 시행착오가 있었는지" 담아봅니다. 1. 왜 클린 아키텍처를 적용하려고 했는가? 초반에는 단일 액티비티 구조에서 출발이 되어 1부의 MVVM 구조로 진행 되고 있었으나 문제가 발생하였습니다.기존 1편에서의 View , ViewModel , Repostiroy 를 나누기는 하였으나 프로젝트의 규모가 크다보니결국에는 ViewModel 이 무거워지는 형태가 발생 단순 MVVM + Repository 분리만으로는 부족또한 팀원이 늘어나면서 문제가 발생했습니다.본인 스타일대로 코드를 작성하는 상황이 늘어남.코드 일관성 붕괴 → 유지보수와 확장성 문제 가시..
2025.04.27 -
Android 구조 개편기 기본구조 -> MVVM → 클린아키텍처 + 멀티모듈 → Compose + MVI 현업 적용기 (1부 MVVM 편)
안녕하세요, 구구집사입니다. 시작에 앞서,이 글은 실제 현업 Android 프로젝트에서 아키텍처를 점진적으로 개선해온 여정을 담은 기록입니다. Android 기본구조 기반으로 출발한 프로젝트는 MVVM , 클린 아키텍처 와 멀티모듈 구조를 거치는 과정과 현재 Jetpack Compose를 도입하면서, 화면 상태와 UI 이벤트 처리의 복잡도가 높아져 그 과정에서 MVI 패턴의 필요성과 도입하는 과정들을 풀어보고자 합니다. 이번 글에서는 왜 처음 MVVM 패턴을 선택했는지, 그리고 앞으로 기존 구조와 어떻게 공존하며 현재의 MVVM + 클린아키텍처 + Compose + MVI로 확장해 나갔는지에 대해 하나씩 풀어보려 합니다. 1. 회사의 현재 Android 프로젝트의 구성은 단순 안드로이드 기본 구조현재 ..
2025.04.20 -
Android Compose GlideImage 이미지 미리 캐싱하기 (preload)
Android 에서 Glide를 사용하다보면 이미지를 미리 캐싱해야되는 경우가 생각보다 많습니다. Compose에서는 Glide로 어떻게 이미지 캐싱하는지 알아보겠습니다. 기존 Glide 이미지 미리 캐싱방법Glide.with(this) .load(imageFileName) .preload(); 기존 Glide에서는 preload() 를 이용해 미리 이미지를 캐싱합니다. GlideImage 캐싱방법GlideImage( imageModel = { "이미지url" }, success = { state,painter -> imageBitmap = painter viewEnable.value = true }) GlideImage..
2024.04.26 -
Android Compose AnimatedVisibility 애니메이션 활용
Compose에서 간단한 애니메이션 을 제공해주는 뷰가 있습니다. AnimatedVisibility 라는 View인데 현재는 좌,우,위,아래 방향으로 슬라이딩 형식의 애니메이션을 제공해줍니다. 사용방법도 간단합니다. AnimatedVisibility( visible = viewEnable.value , modifier = modifier, enter = slideInVertically(initialOffsetY = { +it }), exit = slideOutVertically(targetOffsetY = { +it })){ } visible = 기존 VISIBLE , GONE 생각하시면 될거같습니다.true 이면 보여지고 , false 이..
2024.04.26 -
Android Compose LazyColumn (RecyclerView 대체)
Android Compose 에서 LazyColumn 사용해보자기존에 Android 에서 List 형식의 UI 를 그릴때 사용하던 RecyclerView RecyclerView 하나를 사용 하려면 굉장히 많은 코드를 작성을 해야합니다. RecyclerView 셋팅, Adapter , itemLayout , ViewHoler...... 리스트 하나 그리는데 저렇게 많은 클래스와 코드를 작성 해야되니 굉장히 귀찮았었는데 Compose에서는 코드 단 몇줄이면 List 형식의 UI를 만들수있습니다. LazyColumn 살펴보기LazyColumn(modifier = Modifier.fillMaxSize()) { items(count = 50) { index -> Row(modifier =..
2024.04.25