stackflow에 모달, 바텀시트 activity가 있는 이유?
activity는 stack으로 쌓인다. 스택은 뒤로가기 할때마다 노출된다.
stackflow는 plugin-basic-ui에서 Modal, BottomSheet activity를 제공한다. 그런데 앱에서 뒤로가기 했을때 살아있는 모달과 바텀시트를 본적이있나? 그게 일반적인 ux인가에 대한 의문이 생겨 사용자가 많은 앱들을 열어봤다.
배민, 29cm 앱 확인해보니 모달, 바텀시트 내부에 있는 링크를 클릭해서 activity 이동 후에 다시 뒤로가기하면 모달, 바텀시트는 사라져있다. 사라지는게 일반적인 ux라면 모달, 바텀시트를 activity로 사용할일이 없는거 아닌가.
의문에 대한 gpt 답변.
🎯 Stackflow가 모달/바텀시트를Activity로 다루는 이유
✅ 1."라우팅 가능한 UI는 모두 Activity다"라는 철학
Stackflow는 단순 UI 라이브러리가 아니라라우팅 중심의 앱 설계 시스템입니다.
📦URL, 전환 흐름, 히스토리, 전환 애니메이션까지 모두 스택 기반으로 제어하려는 목적이 큽니다.
→ 즉, **“사용자에게 보이는 모든 전환 가능한 UI는 Activity로 정의될 수 있다”**는 개념이에요.
예를 들어:
로그인 모달이 단순한 UI가 아니라
/login이라는 라우터로도 접근될 수 있고
뒤로가기로 복원되거나 URL로 공유될 수도 있다면?
👉 이런 경우 모달도 Activity로 다루는 게정해진 전환 흐름 내에서 관리 가능하다는 장점이 있습니다.
✅ 2.뒤로가기 흐름을 명시적으로 제어할 수 있게 하기 위해
웹이나 React SPA에서는useState,open,isModalOpen등의 UI 상태로 모달을 다루죠.
하지만 그런 상태 기반 흐름은:
히스토리에 남지 않음
복잡한 전환에서 제어가 힘듦
뒤로가기/앞으로가기를 명확하게 처리하기 어려움
Stackflow는 이러한 불명확성을 없애고, 모든 UI 전환을명시적으로 히스토리 기반으로 제어하길 원합니다.
→ 그래서 "모달도 Activity로 만들면push(),pop()흐름 안에서정확히 언제 열리고 닫히는지 추적할 수 있어요.
✅ 3.디자인 시스템 통합을 위한 Activity 모델
많은 모바일 앱은 이런 흐름을 가지고 있어요:
바텀시트/모달을 여러 화면에서 공통으로 재사용
공유하기, 언어 선택, 로그인, 인증번호 입력 등
이들은 모두 "전환"되지만, "완전한 페이지는 아님"
Stackflow는 이런 "재사용 가능한 전환 요소"를 Activity로 정의해서:
상태 기반 관리보다 재사용성과 테스트가 좋고
전환 애니메이션도 따로 정의 가능하고
UI 흐름도 더 유연하게 연결 가능
→ **“모달은 UI이면서도 라우팅의 일부가 될 수 있다”**는 포지셔닝입니다.
📱 모달 Activity +replace()조합 시 UX
액션
결과
home→replace('loginModal')
스택은 여전히 1개 (loginModal)
push('detail')→pop()
돌아오면loginModal은 사라짐
❗ 즉,loginModal은 뒤로가기로 사라짐 → ✅ 일반 UX처럼 작동
activity로 설정해두고, 상황에 맞게 replace/push 하여 원하는대로 사용이 가능하다.