하단탭을 만들었다면 꼭 지켜야할 것 : 아이폰 안전영역 (Safe Area)
2024. 08. 20. 12시
하단탭을 만들었다면 CSS에서 꼭 추가하세요.

모바일 웹 개발에 있어 사용자 경험(UX)은 핵심적인 요소입니다. 특히 아이폰 X 이후 모델에서 홈 버튼이 사라지면서, 하단 탭을 구현할 때 주의해야 할 중요한 점이 생겼습니다. 바로 '안전영역(Safe Area)'입니다.

안전영역의 개념과 중요성

안전영역은 아이폰 X 이후 등장한 개념으로, 기기의 물리적 특성(노치, 홈 인디케이터 등)에 의해 컨텐츠가 가려지지 않는 영역을 의미합니다. 이는 단순한 디자인 요소가 아닌, 사용자 경험에 직접적인 영향을 미치는 중요한 요소입니다.

안전영역을 고려해야 하는 이유는 다음과 같습니다:

UI 완전성 유지: 주요 UI 요소가 기기의 물리적 특성에 의해 가려지거나 잘리는 것을 방지합니다.

사용성 향상: 사용자가 모든 컨트롤을 쉽게 조작할 수 있도록 보장합니다.

플랫폼 가이드라인 준수: Apple의 Human Interface Guidelines를 따르는 것은 앱의 품질을 높이고, 심사 과정을 원활하게 합니다.

안전영역을 고려한 하단 탭 구현

안전영역을 고려하지 않은 하단 탭은 사용자 경험을 크게 저해할 수 있습니다. 다행히 CSS를 통해 이 문제를 효과적으로 해결할 수 있습니다.

.bottom-tab {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50px;
  padding-bottom: env(safe-area-inset-bottom);
  background-color: #ffffff;
}

1. 뷰포트 설정 안전영역을 정확히 계산하려면 뷰포트 메타 태그를 올바르게 설정해야 합니다.

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

2. 대체값(Fallback) 제공 일부 브라우저에서 env() 함수를 지원하지 않을 수 있으므로, 대체값을 제공하는 것이 중요합니다.

.bottom-tab {
  padding-bottom: 20px; /* 기본값 */
  padding-bottom: env(safe-area-inset-bottom, 20px);
}

안전영역을 고려한 하단 탭 구현은 초기에는 추가적인 노력이 필요할 수 있습니다. 그러나 이는 사용자 경험을 크게 향상시키고, 애플리케이션의 전반적인 품질을 높이는 중요한 요소입니다. 안전영역에 대한 이해와 적용은 단순히 기술적인 문제를 넘어, 사용자 중심의 디자인 철학을 실천하는 방법입니다.

많은 웹사이트들의 UX가 더 편리해지길 바라며,, 오랜만에 글을 남겨볼까 싶어서 끄적여봤슴다

최근에 쓴 생각들
sik.limited @2024