HomePostsSearch
KeyFlow LogoKEYLOW
BETAv2026.03.14

Compose Navigation - WebView Recomposition 해결?

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

Compose Navigation에서 화면을 이동할 때마다 WebView가 초기화되어 고통받고 계신가요?

·WebView는 AndroidView를 통해 구현되므로 Compose의 표준 상태 저장 API인 rememberSaveable을 사용하여 상태를 유지할 수 없음
·NavHost 상위 단계에서 CompositionLocalProvider를 사용하여 WebView 인스턴스를 주입하면 네비게이션 이동 시에도 동일한 객체 유지가 가능함
·재사용되는 WebView를 다시 그릴 때 'The specified child already has a parent' 오류를 방지하기 위해 onRelease에서 부모 뷰의 removeView 처리가 필수임
SeriesPart 5 of 7

Android Compose

View All
Previous
안드로이드 Compose Scaffold, TopAppBar 활용한 개발
Next
Compose 함수는 어떤 조건으로 나누는것이 좋을까?(Stateful, stateless)

On this page

  • 이 글에서 알아볼 내용
  • 현상부터 보자
  • 화면별 코드를 살펴보자
  • MainScreen
  • WebViewScreen
  • OtherScreen
  • 문제를 파악해 보자
  • rememberSaveable을 활용할 수 있을까?
  • 유지할 수 있을까?
  • 가장 쉽게 싱글턴 사용하기
  • Compose에서 제공하는 방법을 활용해 보자.
  • 적용 코드
  • 마무리
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: Compose 함수는 어떤 조건으로 나누는것이 좋을까?(Stateful, stateless)
Was this helpful?Your support means a lot to the author.
Home
Posts
Inbox