[7주차/필수과제] 컴포넌트화 및 UI단 설계를 진행한 내용을 적어주세요. #16
Replies: 24 comments
-
𝟏. MVI 패턴을 사용한 UI 단 설계를 진행하며 고민한 내용
𝟐. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점MVI 패턴을 적용할 때 러닝커브가 조금 있었지만, 틀을 잘 짜두니 그 후에는 이벤트나 사이드 이펙트를 관리하는 데에 더 수월함을 느낄 수 있었습니다! MVI와 직접적인 관련은 없지만, 이번 리팩토링 과정에서 전반적인 코드를 점검하며 SharedPreferences 처리 방식에 대해 고민했습니다. 기존에 SharedPreferences 관련 코드가 UI 단에 포함되어 있었는데, UI 로직이 아니기 때문에 ViewModel에서 처리하는 것이 적합하다고 판단했습니다. 다만, ViewModel에서 Context를 직접 참조하는 것은 적절하지 않다고 생각되었고, 이에 대한 해결 방법을 찾던 중 Hilt의 @ApplicationContext 어노테이션을 알게 되었습니다. 이를 활용해 SharedPreferences를 ViewModel에 주입함으로써, Context를 직접 참조하지 않고 필요한 데이터를 처리할 수 있었습니다. 초기 상태나 데이터를 불러오기 전, null이나 emptyList와 같은 값이 있을 경우 UI를 어떻게 처리할지에 대한 고민이 있었습니다. 예를 들어, 홈 화면에서 더미 데이터를 ViewModel의 init 블록으로 불러올 때는 값이 비지 않지만, LaunchedEffect(Unit)을 사용하여 데이터를 로딩하면 기본값인 emptyList가 먼저 렌더링되면서 에러가 발생하는 문제가 있었습니다. 저는 init 블록 대신 LaunchedEffect(Unit)을 그대로 사용하면서, 해당 리스트를 사용하는 컴포넌트에서 emptyList에 대한 예외를 처리하는 방식으로 접근했습니다. 적용은 안했지만 isLoading과 같은 상태 값을 활용하는 것도 방법이 될 듯 합니다! 혹시 더 좋은 방법을 아신다면 조언 부탁드립니다😭 |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 사용한 UI단 설계느낀점 및 어려웠던 점안드로이드 초기 데이터 로드 해당 아티클 및 합동세미나를 거쳐 오면서 초기 데이터 로드에 LaunchedEffect(Unit)를 사용하던 것을 수정했는데요! MyViewModel을 보시면 다음과 같이 flow를 이용해서 emit하고, 이를 관찰하던 MyRoute에서 해당 state가 Success인 경우 MyScreen을 호출하는 것으로 구현을 해두었습니다. 이번에 Home 뷰도 My 뷰처럼 flow를 이용해서 수정하고 싶었는데 어떻게 수정해야 할지 감이 잘 안 오더라구요ㅜ.ㅜ 일단 LaunchedEffect(homeUiState)를 이용해서 Idle인 경우 뷰모델의 setHomeImgList(실제 앱이라면 서버통신 하는 함수)를 호출하는 것으로 구현을 해두었습니다. flow를 이용해 좀더 깔끔하고 좋은 방향으로 개선할 방법이 있을까요? 조언해주시면 감사하겠습니다! MY
Home
|
Beta Was this translation helpful? Give feedback.
-
𝟏. MVI 패턴을 사용한 UI 단 설계𝟐. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점세미나 자료를 기반으로 |
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴을 사용한 UI단 설계2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점막연하게 어렵다고 생각해서 넘어갔던 MVI를 연습해볼 수 있었어서 너무 뜻깊은 과제였어요! 근데 세미나에서 다룬 코드에서 사용한 여러 가지의 접근제어자라던가 또한 제가 현재 마이페이지에서 룸을 사용하고 있는데, 룸 데이터를 불러오기 위한 Stateflow를 BaseViewModel에서 같이 관리하기가 어려운 것 같더라고요,, 그래서 BaseViewModel은 상속받되 룸 flow는 따로 관리하도록 했는데, 이걸 BaseViewModel의 UiState로 같이 관리할 방법이 있을까 싶네요.. |
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴을 사용한 UI단 설계7주차 토론 과제2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점기존 사용하던 BaseViewModel에서 세미나에 나와있던 BaseViewModel로 더 추가하고 수정해서 적용해 봤는데 이해 안가는 부분들이 조금 있어서 홈화면, 마이페이지에 적용해보면서 더 익힐 수 있도록 해보겠습니다. |
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴을 사용한 UI단 설계아래 노션에 정리했습니다. 2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점처음엔 어떤식으로 구현해야될지 많은 고민이 있었고, 다른 분들의 코드를 참고하였습니다.
Screen에서 �Effect 를 한번에 볼수 있도록 아래의 코드로 관리하는 방법을 사용했습니다.
|
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴 이용한 설계https://marsh-supply-dc3.notion.site/MVI-15fccbd9b928806c9befdce73a7b864c?pvs=4 2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점사고가 MVVM에 갇혀 있어서 그런지, 어떻게 해야 효과적인 구조가 완성될지 아직은 잘 모르겠네요. 마이그레이션을 해보면서 MVI에 대한 이점을 크게 보지 못한 것 같아서 개인적으로 조금 아쉬웠습니다. |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점기존의 코드를 mvi 패턴으로 리팩토링 하려하니 context, dispatcher 등등 생각지도 못한 부분에서 문제가 발생하였습니다. 아직 sideEffect, event 등의 개념을 잘 숙지하지 못한 것 같아서 많이 연습해봐야 할 것 같습니다..!! |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점MVVM처럼 직접적으로 상태를 업데이트하는 것이 아니라 Reducer를 통해 새로운 상태를 생성해야 한다는 개념이 낯설었습니다. 아직 setState를 통해 기존 상태를 복사하고 새로운 상태를 만든다는 과정이 익숙하지 않아서 조금 어려웠던 것 같습니다 |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점MVI를 제대로 적용해보는 것은 처음인 것 같은데요..!! 제가 제대로 아는 것이 하나도 없다는 것을 깨달았습니다😂 뭔가 세미나 자료를 보면서 적용해보고 있는데 open이나 아니면 handleEvent를 protected abstract suspend fun로 구현하는 이유 등등 진짜 적용만!! 할 수 있는 상태인 것 같아서 좀 더 자세히 공부해봐겠다고 생각했습니다..!! MVI와 친해질 수 있는 좋은 과제였어요😊 |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점MVI 패턴을 구현하면서 State와 Event를 구분하는 과정에서 어려움을 겪었고, 특히 LoginEvent를 State에서 관리하는 것이 적절한지, SideEffect로 분리하는 것이 더 나은지에 대한 고민이 있었습니다. 또한 UI 관련 상태(isPasswordVisible, isFocused 등)와 비즈니스 로직 관련 상태(loginEvent 등)를 하나의 State 클래스에서 관리하다보니 조금 복잡해져서 어려웠습니다. |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계https://wooded-damselfly-4cc.notion.site/7-15fa2c11608680a79483e82ebd556d04?pvs=4 MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점-> 우선 처음 접하는 디자인패턴이기도 했고, 단방향 흐름 + 상태를 단일 소스로 관리한다는 점 때문인지 기존의 mv시리즈와 달리 이해하기가 어려웠습니다,,! |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계 MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점 |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계 MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점 |
Beta Was this translation helpful? Give feedback.
-
MVI 패턴을 이용한 설계https://www.notion.so/sayyyho/MVI-15f059afc20e8033a6b5f3d0c4d790af?pvs=4 MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점MVVM에서는 보통 ViewModel에서 상태를 바로 업데이트하고 UI와 연결되는데, MVI에서는 상태 변화가 직접적으로 이루어지지 않고, Reducer 등 새로운 개념을 통해 생성하는 구조에 익숙지 않아서 어려웠습니다. |
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴 이용한 설계https://lively-sweater-80a.notion.site/7-_-15f854da2420807fb1fce786add59698?pvs=4 2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점시간이 없어서...너무 급하게 된 것 같습니다 |
Beta Was this translation helpful? Give feedback.
-
https://secretive-stargazer-15c.notion.site/7-MVI-15f14b7e1eff80188c0fdbace39dd96a mvi를 사용하면서 state 관리하는 것이 어려웠습니다. UI가 바로 업데이트 되지 않아 오류를 수정하는데 어려움을 겪었습니다..! |
Beta Was this translation helpful? Give feedback.
-
https://www.notion.so/7-15499c2ffa5680828815f3dec194bb1d?pvs=4 MVI를 처음 사용해서 감을 잡기 어려웠지만 , 하고나니 깔끔한 코드가 좋았습니다!! |
Beta Was this translation helpful? Give feedback.
-
1. MVI 패턴 설계2. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀 점 및 어려웠던 점State 를 활용해 설계해놓은 점이 비슷해 적용하는데 크게 어렵지 않을 것이라 생각했는데, |
Beta Was this translation helpful? Give feedback.
-
1. 7주차 토론과제2. 느낀점 및 어려웠던 점어려웠던 점
좋았던 점
|
Beta Was this translation helpful? Give feedback.
-
MVI 설계MVI 설계 시 느낀점 및 어려웠던 점기존 데이터 호출 시에만 사용했던 State에서, Screen에서의 변화와 상태를 추가로 관리해야한다는 점에서 설계때에는 어려웠던 것 같습니다..! 하지만 baseviewModel과 state, event, effect가 어느정도 틀이 잡히니 코드가 일관성이 생기고 명확히 구분될 수 있었던 것 같네요! |
Beta Was this translation helpful? Give feedback.
-
MVI 설계MVI 설계 시 느낀점 및 어려웠던 점MVI를 처음 접해보고, 적용하면서 많이 헷갈리고 어려웠지만 적용하고 나니 코드가 훨씬 깔끔해져 보기 좋아졌어요 |
Beta Was this translation helpful? Give feedback.
-
𝟏. MVI 패턴을 사용한 UI 단 설계를 진행하며 고민한 내용들을 정리해서 남겨주세요. 𝟐. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점을 공유해주세요. |
Beta Was this translation helpful? Give feedback.
-
𝟏. MVI 패턴을 사용한 UI 단 설계를 진행하며 고민한 내용들을 정리해서 남겨주세요. 𝟐. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점을 공유해주세요. |
Beta Was this translation helpful? Give feedback.
-
🎤 토론 과제 - MVI 패턴을 사용한 UI 단 설계를 진행한 내용을 적어주세요.
𝟏. MVI 패턴을 사용한 UI 단 설계를 진행하며 고민한 내용들을 정리해서 남겨주세요.
(노션 및 다른 툴을 이용해서 정리한 후 링크를 첨부하는 것을 추천드립니다.)
𝟐. MVI 패턴을 사용한 UI 단 설계를 진행하며 느낀점 및 어려웠던 점을 공유해주세요.
(어떻게 해결했는지까지 적어주시면 좋습니다.)
Beta Was this translation helpful? Give feedback.
All reactions