졸업 작품을 진행하기 전 여러가지 이론이나 기술 스택들에 대해 정확히 이해하고 있어야할 것 같았다.
이번 졸업 작품은 UI/UX적으로도 꽤 신경쓰고 있기 때문에 가장 먼저 해상도 대응 방법에 대해서 정리를 해야할 것 같았다.
해당 포스트에서는 안드로이드 공식 문서에서 제공하는 해상도 대응 방법에 대해서 정리 해보고자한다.
유연한 레이아웃 만들기
먼저 다양한 기기에 대응하기 위해서는 작은 변화에도 반응하는 유연한 레이아웃을 만들어야한다.
그 방법들은 아래와 같다.
1. ConstraintLayout 사용하기
공식 문서에서 가장 먼저 제안하는 방법은 ConstraintLayout을 기본 레이아웃으로 사용하는 것이다.
ConstraintLayout 특성상 절대 위치가 아닌 상대 위치(뷰끼리의 공간적 관계)를 이용하기 때문에, 화면 크기가 변경될 때 모든 뷰가 같이 이동하고 확장될 수 있다.
모든 기기를 ConstraintLayout만으로 해결할 수는 없지만 (특히 동적으로 로드되는 목록 등) 좋은 방법이기는하다.
특히 안드로이드 스튜디오에서는 아래와 같이 Layout Editory를 제공하기 때문에 ConstraintLayout을 더욱 쉽게 구성할 수 있는 장점이 있다.
2. 하드 코딩 레이아웃 크기 사용하지 않기
안드로이드 공식 문서에서 layout_width와 layout_height 속성에 하드 코딩(고정 크기로 지정)을 하지 않을 것을 권장하고 있다.
당연히 고정 크기로 잡으면 해상도 대응에 어려운 건 당연한 얘기인 듯하다.
특히, LinearLayout에서 가중치(weight) 속성을 사용할 땐 주의해야한다.
중첩 LinearLayout에서 가중치(weight) 속성을 사용하면 시스템이 여러 레이아웃을 거쳐 각 뷰의 크기를 판단해야 하므로 성능 저하를 일으킬 수 있다.
ConstraintLayout의 경우 성능에 영향 없이 LinearLayout으로 가능한 거의 모든 레이아웃 구현이 가능하므로, ConstraintLayout 사용을 권장하고 있다.
참고: ConstraintLayout을 사용할 때 match_parent를 사용하면 안 된다. 대신 크기를 0dp로 설정하여 'match constraints'를 사용한다. 'match constraints'는 match_parent와 일반적으로 동일하다. 자세한 내용은 ConstraintLayout에서 뷰 크기를 조정하는 방법을 참조
모든 화면 크기로 테스트
해상도 대응에 있어서 가장 중요한 것은 다양한 화면 크기에서 테스트를 해보는 것이다.
에뮬레이터를 이용해서도 가능하고, Firebase Test Lab을 이용하면 다양한 기기에서 테스트가 가능한 것 같다.
졸업 작품을 진행하면서 Firebase Test Lab을 통해서 테스트를 해봐야겠다.
'안드로이드 > 이론' 카테고리의 다른 글
[ 안드로이드 ] - Selector를 이용하여 버튼, 체크박스 등에 클릭 효과 주기 (0) | 2023.03.29 |
---|---|
[ 안드로이드 ] Handler를 통한 Viewmodel 변수 상태 체크하기 (0) | 2023.03.21 |
[ 안드로이드 ] local.properties를 이용하여 API Key 안전하게 보관하기 (0) | 2023.01.25 |
[ 안드로이드 ] Fragment Add시 밑의 Fragment 클릭되는 문제 (0) | 2022.11.16 |
[ 안드로이드 ] Livedata Observer 등록하자 마자 호출되는 경우 or 중복 호출 (0) | 2022.11.14 |