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을 유발 할 수있어서 늘 염두 해야한다.
'Android 공부 > Android 아키텍처' 카테고리의 다른 글
UI계층 (3) MVI - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(7) (0) | 2022.08.25 |
---|---|
UI계층 (2) MVVM - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(6) (0) | 2022.08.25 |
테스트 구현 (2) - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(4) (0) | 2022.08.24 |
테스트 구현 (1) - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(3) (0) | 2022.08.24 |
모바일 아키텍처 개론 - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(2) (0) | 2022.08.23 |