Android 공부/Android 아키텍처

UI계층 (1) MVC, MVP - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(5)

Machine_웅 2022. 8. 25. 16:49
728x90
반응형

UI 계층 ( 프레젠테이션 계층 )

1. MVx 의 대원칙 

=> Model :  단순하게 데이터 영역이 아니라. UI 로직 외에 도메인 계층에 가까운 비지니스 로직을 포함한다고 봐야 한다. 

=> configuration change 에대해서 처리할 수 있는 체계도 필요하다 

 

2.MVC

=> android robolectric unit test 어느정도 테스트를 할 수는 있지만 한계가 있다.

해결방법 

1) 뷰의 분화 ( 복잡도를 낮출 수 있음 )

2) 뷰 컨트롤러를 만든다

=> 프로세스가 종료되는 것도 염두 해야한다. ( 전화가와서 백그라운드로 전환, 메모리부족, 타입아웃에러 등  )

  - saveState 처리할 수 있는 로직을 만들어야 함.

=> 엑티비티는 컨트롤러로 아주 제한적인 일만 해야한다. ( 예를 들면 앤트리 포인트 정도 ? )

 

3. MVP

 

=> 사용자의 입력을 받고 비동기적으로 처리하는 것 ( 프레젠터가 view의 메소드를 호출하게 됨 )

=> 컨트렉트패턴 ( 서로에 대한 스팩만 알고있으면, 그 스팩대로 부르면 된다. )

=> 제일 나쁜케이스는 TasksAdapter가  직접적으로 프레젠터를 가지고 있는 경우다.

  - 이렇게 되면 각각의 리스트 아이템들이 프레젠터를 전부다 알고 있게 된다. ( 인터페이스를 필요이상으로 많이 노출 )

 

=> 이벤트 핸들러를 추가 했다 . ( onSelectTask , onCompleteTake, onActiviateTask )

 

 

=> sql_lite, shardPreference ,File Io 등 단순한 가벼운 비동기 처리결과도 ANR을 유발 할 수있어서 늘 염두 해야한다.

 

728x90
반응형