data class
비즈니스 로직을 처리하는 함수보다는 데이터를 저장하는 속성을 갖는 클래스. 데이터를 처리하는데 필요한 아래의 함수들을 코틀린 컴파일러가 자동으로 생성해줍니다.
- equals() : 클래스 인스턴스끼리 각 속성의 값을 비교
- hashCode() : 인스턴스를 컬렉션(ex, HashMap) 에 저장할 때 사용할 키 값들을 생성
- toString() : 속성값을 문자열로 출력
MVC 아키텍처
- Model : 데이터를 보존, 관리
- View : 화면에서 볼 수 있는 것
- Controller : 뷰 객체에 의해 발생하는 다양한 이벤트에 응답, 모델과 뷰의 중간에서 주고받는 데이터를 관리.
MVC 를 사용하면 각 계층이 분리되어 앱을 설계하고 이해하는데 도움이 됩니다. 또한, 클래스를 재사용하기 쉽습니다. 크고 복잡한 앱에서는 컨트롤러가 커지거나 복잡해질 수 있습니다. 그럴 땐 MVVM 아키텍처가 대안이 될 수 있습니다.
화면 픽셀 밀도
- px : pixel, 픽셀은 장치의 화면밀도에 적합하게 조정되지 않음.
- dp : density-independent pixel(밀도 독립적 픽셀), 1dp는 항상 장치 화면의 1/160 인치, 화면 밀도와 무관하게 일정한 크기를 갖는다.
- sp : scale-independent pixel(크기 독립적 픽셀), 사용자의 폰트 크기 설정을 고려, 텍스트 크기 설정을 위해 사용
Reference
[실무에 바로 적용하는 안드로이드 프로그래밍], 크리스틴 마시캐노, 브라이언 가드너, 빌 필립스, 크리스 스튜어트