3부 - Composable Architecture에서는 Alert/Toast는 어떻게 사용할 수 있는가?

3부 - Composable Architecture에서는 Alert/Toast는 어떻게 사용할 수 있는가?

이 글에서는 Composable Architecture에서 Alert(Dialog)/Toast(Snackbar) 활용법을 소개한다.

기본 형태는 1부/2부에서 소개한 Action을 활용하는 시스템을 적용했다.

이 글은 디자인 시스템이 있을 경우 Dialog/Toast를 공통화시키는 방식을 다루고 있다.

이 글에서는

  • Alert/Toast(Snackbar)를 공통화 시켜 다루는 내용
  • 앞에서 설명한 Action을 설명하지는 않는다.
  • 기본적인 내용을 담지 않고있어 앞선 글을 참고하면 좋다.

Read More

2부 - Composable Architecture는 만들었는데 문제가 있었네? 개선해보자.

2부 - Composable Architecture는 만들었는데 문제가 있었네? 개선해보자.

이전 글에서 Composable Architecutre를 소개하는 내용을 담아보았는데, 몇 가지 문제점을 발견하여 이를 개선한 내용을 다시 정리하는 글이다.

크게 2가지 문제점을 확인하였다.

  • ViewModel 내 Reducer 처리 후 자동 next
  • Action 스트림 처리를 위한 싱글턴 활용 시 Lifecycle 문제

이 2가지 문제점을 해결하기 위해 코드를 어떻게 수정했는지, 그리고 더 나은 방법은 없을지 고민한 과정을 정리해본다.

이 글에서는

  • 기존 아키텍처의 구조적 문제점을 파악한다.
  • 문제 해결 과정과 더 나은 구조에 대한 고민을 공유한다.
  • 기본적인 내용을 담지 않고있어 앞선 글을 참고하면 좋다.

Read More

1부 - 컴포즈에 사용할 Composable Architecture 설명(리엑트?)

1부 - 컴포즈에 사용할 Composable Architecture 설명(리엑트?)

이 글은 최근 유행하는 MVI (Model-View-Intent) 패턴과는 다른, 리액트의 Reducer, UiState, Effect, Action 개념을 포함하는 T Composable Architecture를 소개하는 글의 첫 번째 편입니다.

T는 글쓴이 이름의 첫 글자이며, 나머지는 Compose와 Architecture를 의미합니다.

Compose에서는 MVI가 가장 적합하다는 의견이 많지만, MVI를 소개하는 cycle.js.org에서는 다음과 같이 설명합니다.

cycle.js.org - Model-View-Intent - 링크

Model-View-Intent (MVI) is reactive, functional, and follows the core idea in MVC. It is reactive because Intent observes the User, Model observes the Intent, View observes the Model, and the User observes the View. It is functional because each of these components is expressed as a referentially transparent function over streams. It follows the original MVC purpose because View and Intent bridge the gap between the user and the digital model, each in one direction.

위를 번역하면 아래와 같은데,

모델-뷰-인텐트(MVI)는 반응적이고 기능적이며 MVC의 핵심 아이디어를 따릅니다. 인텐트가 사용자를 관찰하고, 모델이 인텐트를 관찰하고, 뷰가 모델을 관찰하고, 사용자가 뷰를 관찰하기 때문에 반응형입니다. 이러한 각 구성 요소는 스트림을 통해 참조적으로 투명한 함수로 표현되므로 기능적입니다. 뷰와 인텐트는 각각 한 방향으로 사용자와 디지털 모델 사이의 간극을 메우기 때문에 원래의 MVC 목적에 부합합니다.

핵심은 reactive, functional, MVC의 융합입니다. 지금 우리가 사용하는 MVI 패턴과는 다른 부분이 있는데, reactive와 functional은 같고 MVVM을 포함해서 UDF(단방향 데이터 흐름)가 더 적합하다고 보는 것이 좋아보인다.

이 글에서는

  • 필자가 생각하는 Composable 구조는?

Read More

안드로이드 개발자가 본 iOS TCA 살펴보기

안드로이드 개발자가 본 iOS TCA 살펴보기

이 글은 Android 개발자인 필자가 TCA 일부를 사용해 보고 경험한 내용을 바탕으로 정리하였고, 이 방식이 맞는 것일까의 내용을 포함한다.

오류가 있을 수 있으니 오류가 있다면 적극 알려주면 좋겠다.

TCA는 iOS에서 요즘 많이 활용하고 있는 The Composable Architecture이다.

TCA는 다음을 기준으로 한다.

  • State management
  • Composition
  • Side effects
  • Testing
  • Ergonomics

하지만 실제 사용해 보면 리덕스라고 보는 것이 맞다. 웹에서는 리덕스가 너무 복잡하기 때문에 사용하지 않는 걸로 들었다.

실제 TCA도 매우 복잡한 구조를 가지고 있지만 swiftUi와 함께 사용하기에는 좋다고 한다.

이 글에서는 안드로이드 개발자가 가볍게 TCA를 사용하면서 경험한 내용을 정리해 본 글이니 참고만 하시길.(오류는 언제나 댓글로)

이 글에서는

  • 필자가 생각하는 Composable 구조는?
  • 간단한 샘플 코드를 통한 알아보기

Read More

😱 2025 안드로이드 탐구영역, Coroutines Flow 때문에?! (feat. 쉬운 해설)

😱 2025 안드로이드 탐구영역, Coroutines Flow 때문에?! (feat. 쉬운 해설)

이 글은 2025 안드로이드 탐구 영역에 나온 문제 중 flow와 관련한 문제를 해석한 글이다.

안드로이드 탐구 영역 후기 글

무슨 문제인가?

코루틴 flow에 대한 문제가 크게 2문제가 있었다. 이 중 코루틴 영역에 포함한 1개의 문제를 살펴보려 한다.

이 문제는 StateFlowflow {}를 복합적으로 사용하는 문제이다.

이 문제에 나오는 Flow에 대한 내용은 이전에 필자의 블로그에 작성했던 다양한 글이 있으니 링크를 추가한다.

이 글에서는

  • 2025 안드로이드 탐구 영역에 나온 문제 일부를 정리한다.
  • Coroutiens flow에 대한 이해가 필요하다.

Read More