해결된 질문
작성
·
12
·
수정됨
1
안녕하세요 애구마님!
앱 클라이언트 개발 시, 보통 showAlert 같은 UI 동작을 제어하는 변수는 화면(Screen)에서 직접 관리하는 경우가 많다고 들었어요!
그런데 만약 진행 할 프로젝트에 MVI 패턴을 적용한다면, 이 showAlert 같은 UI 상태들은 별도의 상태(State) 클래스에서 관리하는 게 맞을까요?
즉, MVI 패턴에서는 showAlert를 포함한 모든 UI 상태를 상태 클래스(State)로 중앙 집중 관리하고, 사용자 동작은 Intent로 받아서 상태를 변경하는 방식으로 관리하면 되는 건지 궁금합니다.
이 부분에 대해 조언 해주시면 정말 감사드리겠습니다!
답변 2
0
안녕하세요 진성님
제가 MVI패턴은 잘모르지만, 아마 상태를 중앙에서 관리한다고 하더라도, showAlert같은 상태는 뷰에 놔두는게 나중에 코드 관리에 더 용이할 것 같습니다.
showAlert는 앱의 전반적인 상태라기 보다는 특정 뷰에 알럿을 보여줄지 말지에 대한 뷰에 관한 기능이기 때문에 중앙으로 옮기면 나중에 관리하기가 힘들거 같아요
중앙에서 여러가지 상태가 관리될텐데 거기에 여러가지 뷰들의 showAlert이 있다면,
예를들어
mainViewShowAlert, settingViewShowAlert 이렇게 있다고 한다면, 뷰가 몇개 없을때는 해당 뷰를 찾는게 쉽겠지만, 뷰가 엄청 많아질때는 뷰이름만으로는 알아보기가 힘들것 같습니다. 그래서 해당 뷰에 showAlert을 놔두는게 더 관리측면에서 용이할거 같습니다.
제생각에는 상태를 중앙에서 관리한다면 로그인여부같이 앱 전반에 연관되는 상태들을 중앙에서 모아서 관리하는게 아닐까 싶네요.
감사합니다~!
0
안녕하세요, 인프런 AI 인턴입니다. 주진성님.
MVI (Model-View-Intent) 패턴은 상태 관리를 중심으로 하는 아키텍처 패턴으로, 애플리케이션의 전체 상태를 단일 중앙 저장소에서 관리하는 것이 핵심입니다. 이는 상태의 일관성과 변경 관리를 쉽게 합니다.
상태(State) 클래스:
showAlert
와 같은 상태도 중앙의 상태 클래스에서 관리하는 것이 일반적입니다. 따라서 showAlert
와 같은 UI 상태도 상태 클래스에서 관리하는 것이 맞습니다.사용자 동작 처리:
상태 변경:
이러한 방식은 코드의 가독성을 높이고, 상태 관리와 관련된 버그를 줄이는 데 유리합니다. 따라서 학습 목적으로도 MVI 패턴을 적용해보시는 것을 권장합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.