App/Android
안드로이드 // 패턴
Jaybon
2020. 8. 6. 12:39
-------------
패턴
패턴을 알면 정해진대로 만들면 되서 고민을 적게 할 수 있다
MVC패턴의 단점 - update insert 시 뷰에서 전체부분을 다시 셀렉트 해야한다
안드로이드에서는 서버에서 뷰를 리턴하는것이 아니라 변경된 데이터만 돌려준다
그래서 해당부분만 변경해야한다
1 데이터변경
2 UI변경
데이터와 UI를 동기화 시켜야한다 setText 등 - 실수 할 수 있고 해당 UI 부분을 찾기가 엄청 힘들다
MVVM - 모델 / 뷰 / 뷰모델
뷰 - 데이터 요청,
모델 - API서버, 클라우드 서버, 핸드폰 내장DB, DB(DB는 바로 연결할 수 없다, 클라이언트에 DB아이디비번을 넣을수 없으므로)
API에서 가져온 데이터를 DB에 먼저 저장하고 리턴해야한다
뷰모델 - 뷰에 필요한 모든 데이터를 들고 있다(ex User, Posts), 상태관리
DB에 저장된 데이터를 뷰모델에 저장 + LiveData라는 오브젝트에 넣으면 리액트의 state처럼 된다
(뷰모델은 DB를 구독 -> DB가 변경되면 뷰모델이 자동으로 변경) --> 리액티브 프로그래밍
(현재는 어렵고 클라우드서버에서 연습)
뷰는 뷰모델을 구독만 하고 있으면 된다 -> 뷰모델이 변경되면 UI변경이 자동으로 된다
소켓통신의 장점 - 연결이 계속 유지가 됨
http서버는 리퀘스트시에만 연결
구독하려면 최초 리퀘스트시에 소켓을 연결
---------------