HomePostsSearch
KeyFlow LogoKEYLOW
BETAv2026.03.14
다시 - Composable Architecture 설계 변경

다시 - Composable Architecture 설계 변경

Taehwan kwon (theo)Taehwan kwon (theo)
about 1 month ago(Edited)
5 min read

전역 Event Bus로 활용하던 Action을 왜 포기하고 ViewModel과의 1:1 관계로 다시 가두게 되었을까요?

·Action의 범위를 싱글턴에서 ViewModel-Compose 간 1:1 관계로 제한하여 의도치 않은 전역 상태 오염 및 사이드 이펙트 방지
·ActionViewModel 및 ActionSenderCompositionLocalProvider 도입을 통해 필요한 시점에만 안전하게 Action을 주입하고 처리하는 구조 확립
·Router 및 Alert 시스템을 Action 시스템에서 분리하여 독립적으로 동작하게 함으로써 모듈 간 결합도를 낮추고 재사용성 향상
SeriesPart 4 of 5

Android Compose Architecture

View All
Previous
3부 - Composable Architecture에서는 Alert/Toast는 어떻게 사용할 수 있는가?
Next
다시 2부 - Composable Architecture - 라우터 소개

On this page

  • 가장 큰 변화는 무엇인가?
  • 이 글에서는
  • 설명에 포함된 샘플 화면
  • Action은 그대로 사용하지만, 범위는 제한한다.
  • ActionViewModel 활용 예시
  • UI에서의 사용 방법
  • ActionViewModel에 대한 Unit Test
  • 설계 방향
  • Next
Taehwan kwon (theo)

Taehwan kwon (theo)

@taehwandev

[안녕하세요, 태환입니다] 글쓰기 플랫폼 KeyFlow의 운영과 개발을 총괄하고 있는 태환입니다. 사용자가 생각에 집중할 수 있는 환경을 만들기 위해 플랫폼인 키플로우 전체의 기획부터 배포, 관리를 리딩하고 있습니다.

[경험 및 전문성]

  • KeyFlow Management: 서비스의 전반적인 운영을 책임지고 있습니다.
  • Mobile Engineering: 안드로이드와 iOS 플랫폼 모두에서 안정적이고 매끄러운 사용자 경험을 구현합니다. 기기의 특성에 최적화된 에디터와 기능을 개발하는 데 강점이 있습니다.
  • Openness & Stability: 플랫폼의 개방성을 확대하면서도, 시스템의 안정성을 놓치지 않는 균형 잡힌 개발 철학을 추구합니다.

[목표] 단순한 기능 구현을 넘어, 전 세계 사용자가 언어의 장벽 없이 소통할 수 있는 글로벌 플랫폼으로 KeyFlow를 성장시키는 것이 저의 목표입니다.

기술 스택 요약 (Tech Summary)

  • Mobile: Android (Kotlin/Java), iOS (Swift)
  • Highlight: GitHub Gist Integration, AI Language Detection, Cross-platform Optimization
kotlin
1
2
3
4
5
data class User(
  val name: String = "taehwan",
  val bio: String = "Android, iOS",
  val nickName: String = "Theo",
)
Next: 다시 2부 - Composable Architecture - 라우터 소개
Was this helpful?Your support means a lot to the author.
Home
Posts
Inbox