
< 소스코드 >
https://github.com/KwonGeneral/Kotlin_Basic_Chat.git
GitHub - KwonGeneral/Kotlin_Basic_Chat: 코틀린 MVVM 연습용 앱
코틀린 MVVM 연습용 앱. Contribute to KwonGeneral/Kotlin_Basic_Chat development by creating an account on GitHub.
github.com
소스코드를 보다보면
Read 하는 부분이 이상할 것이다.
이 부분은 코루틴을 적용해보려고
어거지로 로직을 짰기 때문에
주석으로 되어 있는 부분들을
활용하길 바란다.
MVVM 아키텍쳐 패턴으로
개발을 했는데,
ChatDataBase에 있는 함수들은
따로 ViewModel로 빼야한다.
ViewModel에서
데이터를 처리하고 가공한다음에
View에 던져주면
View는 값이 어떤지 전혀 알 필요 없이
디자인을 그리기만 한다.
즉, View는 어떤 데이터가 날라와도
상관없이 디자인을 그릴 수 있어야 한다.
만약에 자동차에 대한 DB에서
제원과 모델이 추가가 된 상황이라면,
ViewModel만 수정하면 된다.
이렇게 생각하면 편하다.
View는 제원과 모델을 아예 모른다.
자신이 그린 디자인에
제원과 모델이 들어갈 것이라고도
생각하지 않는다.
View는 그저 값이 오면
그게 어떤 값이든 디자인을 그리면 된다.
ViewModel은 View가 어떤 디자인을 그리던지
상관이 없다.
그저 이 함수를 호출하면
특정 값을 돌려주기만 한다.
내가 느끼는 MVVM은 이런 느낌이다.
정확하게는 다를 수 있다.
아직 공부한지 얼마 안되서
정답과는 거리가 멀 수 있다.
참고만 하길 바란다.
< LiveData >



LiveData는 말 그대로
실시간 반영 데이터이다.
이는 정말 심플하게 사용한다.
1. LiveData 선언
2. LiveData 값 넣기
3. LiveData 값 변경 탐지
LiveData는 위의 순서로 제어할 수 있다.
내가 개발한 앱에서는
생성하고 읽어올 때,
LiveData에 채팅 리스트들을 넣어준다.
그리고 해당 LiveData를 관찰하는
옵저버(Observer)는 값이 변경되면
해당 채팅 리스트를 통해
리사이클러뷰를 새로 그린다.
이번에 9-patch를 써봤는데
확실히 채팅 말풍선에는 좋은 기능이다.
또한
로컬 DB도 충분히 할 수 있는게 많다는 것을
느꼈으며, 앞으로도 자주 사용해 볼 예정이다.
'아카이브 > 일기' 카테고리의 다른 글
| 317일차 - DiffUtil (0) | 2021.11.11 |
|---|---|
| 316일차 - 안드로이드 개발 팁 & 코루틴 정리 (0) | 2021.11.10 |
| 315일차 - Firebase 호스팅 & 음성 인식 (TTS, STT) (0) | 2021.11.09 |
| 314일차 - React & Fcm Push 웹페이지 완성 (0) | 2021.11.08 |
| 313일차 - React & Android Push (0) | 2021.11.07 |
| 312일차 - Android Kotlin & Firebase Fcm & Cloud Firestore (0) | 2021.11.06 |
| 311일차 - 현재 상황 및 React, Firebase 연동 계획 (0) | 2021.11.05 |
| 310일차 - 볼만한 유튜브 강의 영상 (0) | 2021.11.04 |