728x90
반응형

livedata 4

<정리> 챌린지반 과제 2

오늘 수업을 들었다. 흐음... 뷰모델을 잘 썼다고 생각했었는데 너무나 많이 부족했다. 다 한 사람이나 어느 정도 완성한 사람 손 들어보라고 해서 들었던 내가 부끄러웠다...ㅎ 그래서 수업을 마치고 달리기 시작했다. 1. Spinner 관리 이게 진짜 제일 어렵고 이해 안되고 머리를 띵- 하게 만들고 결국 약간의 타협으로 결과가 나온 부분이다. 참 여러가지 상황이 나왔다. 스피너가 클릭 이벤트를 무시하거나 넘어가거나 튕기거나... 이러한 상황을 유발하는데 가장 큰 공헌을 한 것은 관리하는 변수에 대한 역할을 크게 잡았다는 것이다. 조금 더 작게 나누니까 해결이 되더라 처음에 나는 서비스제공자를 가지고 EditText 텍스트 값도 채우고 스피너의 값도 조절하려고 했었다. 이렇게 했더니 원하지 않을 때 실행..

Android/StoreInfo 2024.01.08

<정리> 챌린지반 과제 1

예전에 자기소개 앱 구현 글에서 이어지는 거지만 이제는 앱 구현이 아니라 세부 기능들에 대한 조정과 최적화만 들어가있기 때문에 따로 글을 뺐다. 저번 글 이후로 벌써 2주나 지났다... 아마 계속 지금 프로젝트에 겹쳐서 진행이 될 거 같아 또 시리즈로 적어나갈 생각이다. 1. enum class 나는 enum class를 쓰라고 하셨을 때 도대체 어디에 쓰라고 하시는건가 싶었다. 그래서 이 부분은 손도 안 대고 갔었는데 에러 메세지를 한 곳에 모아놓는데 사용할 수 있다는 걸 알게 되었다. 또한 액티비티 이동 간 엔트리 타입들을 모아놓는데에도 사용하는 것도 봤다. 첫 번째로 에러 메세지를 모아둔 enum class다. enum class SignUpErrorMessage( @StringRes val mes..

Android/StoreInfo 2024.01.05

LiveData에 대한 이해

1. LiveData 소개 LiveData는 데이터의 변경을 관찰할 수 있는 데이터 홀더 클래스다. LiveData는 생명주기를 인식하기 때문에 액티비티, 프래그먼트, 서비스 등 다른 앱 구성요소의 생명 주기를 고려한다. 따라서 앱 구성요소가 활성 상태(STARTED or RESUMED)일때만 데이터를 업데이트한다. LiveData가 생명주기를 인식할 수 있는 이유는 안드로이드 생명주기를 알고 있는 LifeCyleOwner 클래스를 가지고 있기 때문이다. LiveData는 옵저버 객체와 함께 사용하는데 LiveData가 가지고 있는 데이터에 변화가 생기는 경우, LiveData는 등록된 옵저버 객체의 생명주기가 활성 상태인지 확인한 다음 활성 상태라면 데이터 변화를 알려주고, 옵저버의 onChanged(..

Android/StoreInfo 2024.01.03

ViewModel에 대한 이해

1. ViewModel 소개 MVVM 디자인 패턴으로부터 파생된 ViewModel은 Android Jetpack의 구성요소 중에 하나이고 Android Architecture Components 중에 하나이며, 비즈니스 로직 또는 화면 수준 상태 홀더다. UI에 상태를 노출하고 관련 비즈니스 로직을 캡슐화한다. 좀더 덧붙이면 UI 컨트롤러의 로직에서 UI에 노출되는 데이터를 다루는 로직을 분리하기 위해 등장한 요소이다. 장점은 UI 관련 데이터를 저장하고 관리하여 UI 상태를 유지함으로 여러 구성 변경에도 이를 유지한다는 것과 비즈니스 로직에 대한 액세스 권한을 제공한다는 것이다. 기존에 UI 관련 데이터를 가지는 일반 클래스로 UI 데이터를 표시했는데 이는 이벤트나 화면 이동할 때 문제가 될 수 있었다..

Android/StoreInfo 2024.01.02
반응형