본문 바로가기

안드로이드

MVVM수업연결

데이터 바인딩

 

layout card에서 뭐로 바꾸라하심 

 

 

이거넣기

<data>

<variable

name="note"

type="com.cos."

</data>

 

설명

그view만을 위한 모뎅 dto필요

 

 

<TestView에 text속성에 @{String.valueOg(note.priority)}

 

"@{}" -->이렇게 바인딩

 

 

그 다음

gradle로 와서 <dependencies 위에

 

dataBinding{

enabled =true

}

 

설명

1. findViewById

2. setText

 

 

 

 

 

Rebuild하고 나면

note_item -> NoteItemBinding.java라는 파일이 만들어진다. -> 데이터랑view랑 연결된 파일입니다. 한마디로 여기안에 다 있어서 (이 디자인에 대한 레퍼런스를 다 들고 있다) findViewById 할 필요 없다

 

바인딩해져있다

 

NoteAdapter.java에서

자동완성으로 NoteItemBinding이 되야 한다.

 

noteItem 

 

setText어쩌고 다 지우고 

private NoteItemBinding noteItemBinding;  --> findViewById안해도된다. (아직은 null이다.)

 

super한테 넘겨주기

super(noteItemBinding.)

 

onCreateViewHolder함수에서

DataBindingUtil.inflate()하기!

noteItem넣고 parant(recyclerView)넣고

.

.

return new NoteHolder(noteItemBinding)

 

bindView

 

 

firebase가 뭐야?

 

ViewModel 페이지마다 필요해요 activity마다 필요해요. model나다 만드는게 아니다.

model - 스프링이랑 똑같이 

repository 싱글톤으로 만들어야 겠지 - retrofit or ............에 연결되어있겠지

util

screen

dto

network (retrofitService) ddd(도메인으로 설계)

adapter

 

DDD설계(도메인 주소 설계)

config 시큐리티관련된거 oauth

service 이 부분만바뀐다.

web controller dto

domain  model들 관련 repository 

 

 

 

 

데이터 땡겨와서 ViewModel에 set함수하나 만들어서 받아요. LiveData에 쏙 받아요.

LiveData로 감싸져있으면 불변.

setter안됨

 

만약 LiveData 데이터 수정하려고 한다면 새로운 스래드로 스프링에 put요청해서 콜백으로 sucess나 fail 받아요.

sucess면

컬렉션에 그 부분에 

강제로 바꾸는거 하지만 LiveData를 new해서 set할 수 없으니까 MutableLivedata로 바꿔요!

 

Rx자바 -> reactive프로그래밍

 

 

 

 

'안드로이드' 카테고리의 다른 글

Cloud Firestore(noSQL)  (0) 2020.08.12
firebase 구글 로그인  (0) 2020.08.12
MVVM-AAC  (0) 2020.08.06
contactsApp, TedPermission  (0) 2020.08.05
안드로이드 패턴 M V VM -room  (0) 2020.08.05