Kotlin - Room을 활용한 채팅 디자인해보기

2021. 11. 7. 22:34·아카이브/일기
반응형

 

 

< 소스코드 >

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
'아카이브/일기' 카테고리의 다른 글
  • 315일차 - Firebase 호스팅 & 음성 인식 (TTS, STT)
  • 314일차 - React & Fcm Push 웹페이지 완성
  • 313일차 - React & Android Push
  • 312일차 - Android Kotlin & Firebase Fcm & Cloud Firestore
권퓨터
권퓨터
만드는 걸 좋아하는 개발자의 기록. 코드든 글이든, 일단 만들어 봅니다.
  • 권퓨터
    권퓨터: Kwonputer
    권퓨터
  • 티스토리 홈 관리자
  • 전체
    오늘
    어제
    • 분류 전체보기 (559)
      • 개발 (56)
        • 프로젝트 (5)
        • 모바일 (44)
        • 프론트엔드 (0)
        • 백엔드 (2)
        • 인프라 (0)
        • AI · 머신러닝 (4)
      • IT · 테크 (10)
        • 기술 트렌드 (3)
        • 도구 · 생산성 (1)
        • 제품 리뷰 · 추천 (0)
        • 마케팅 · 수익화 (6)
      • 자기계발 (7)
        • 공부법 · 언어 (0)
        • 취업 · 커리어 (7)
      • 아카이브 (486)
        • 일기 (480)
        • 취미 (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • 블로그 이전
  • 공지사항

    • 서브 블로그 => https://kwonputer.com/
  • 인기 글

  • 태그

    ai 게임 개발
    flutter 면접 질문
    내러티브 게임
    https://www.kwonputer.shop/
    flutter 개발자
    OpenAI GPT
    aws lambda
    다국어 블로그
    FACEBOOK광고
    서버리스 아키텍처
    python
    TypeScript
    Prompt Engineering
    riverpod
    next.js
    상태관리
    블로그수익화
    Single Table Design
    Clean Architecture
    AI블로그
    클린 아키텍처
    python 기초
    flutter
    injectable
    kotlin
    https://github.com/kwongeneral/kortfolio.git
    dynamodb
    파이썬
    콘텐츠자동화
    AWS CDK
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
권퓨터
Kotlin - Room을 활용한 채팅 디자인해보기
상단으로

티스토리툴바