[24.07.22] TIL - 037

🎧 0. 오늘의 추천곡

개인적으로 좋아하는 노래입니다. 딱히 노래가 생각이 안 나서...

🚩 1. 프로젝트 - 연락처 앱

지금은 이 정도 구상했습니다. 현재는 프로필 사진을 명함처럼 꾸미는 걸 구현하기 위해 찾아보고 있습니다.

📙 2. Compose 특강 - 1

오늘은 컴포즈 특강을 들었습니다. 선택 참여지만, 제가 개인적으로 좋아하는 방식이기도 하고,

구글이 밀어주는 만큼 앞으로 컴포즈의 입지가 커질 게 분명하기에 공부하고 싶었습니다.

사실 혼자서 독학을 해봤지만, 무엇보다 Flow, Coroutine 부분이 이해가 안 갔고,

이 부분을 해결할 수 있었으면 좋겠다는 생각이 있었습니다.

어쨌든, 오늘 배운 내용 한번 적어보겠습니다.

2-1. 컴포즈는 무엇인가?

컴포즈는 안드로이드의 선언형 UI를 개발하는 기술로, Jetpack Library 안에 있는 기술입니다.

기존의 xml을 사용하는 MDC 방식은 어떻게 보여줄 것인지를 기술했다면,

컴포즈는 무엇을 보여줄 것인지를 기술하고 있습니다.

컴포즈의 특징은 컴포저블 함수를 써서 재사용성이 높다는 것입니다.

기본적으로 컴포저블 함수를 조합해서 UI를 그리고, 함수다보니, 재사용성이 높은 것 같습니다.

또한, MDC와 달리 데이터가 아래로 향하는 구조를 갖고 있습니다.

2-2. MVVM 디자인 패턴

MVVM은 제가 이전에도 다뤘기에, 가볍게 의미만 정리하겠습니다.

MVVM은 Model-View-ViewModel의 약자로, Model은 데이터를 처리하는 곳이며,

View는 화면에 보여주도록 처리하는 곳입니다. ViewModel은 이 둘 사이에서 데이터를 가공합니다.

2-3. StateFlow

컴포즈는 State, 즉, 상태라는 개념을 사용해 데이터의 변경을 감지하고 UI를 재구성합니다.

이 State를 다루기 위해, ViewModel을 사용하는데, ViewModel에서 기존에 제가 사용하던 LiveData가 아닌,

StateFlow를 사용하게 됩니다.

이유는 StateFlow가 State를 다루기에 더 적합하기 때문이라고 합니다.

물론, LiveData도 안드로이드 라이브러리 자체에 적합하게 설계돼 있지만,

StateFlow를 현업에서는 자주 쓴다고 합니다.

아쉽게도, 저는 Flow에 대해서 잘 모르기 때문에, Flow에 대해 공부가 필요할 것 같습니다.

🎯 3. 끝

오늘은 팀과 구상 회의를 진행해, 크게 적을 내용이 없는 것 같습니다.

현재 리포지토리 패턴에 대해 공부하면서 튜터님의 도움을 받고 있습니다.

이 부분을 제가 사용할 수 있을지에 대해는 잘 모르겠습니다.

끝.

profile
여기는 공부 기록용 블로그

0개의 댓글