본문 바로가기
안드로이드 공부 노트

[Android] 안드로이드 위젯 알아보기 1편

by 지게요 2024. 4. 29.
728x90
반응형

이번 포스팅은 안드로이드 위젯에 대해 정리해보겠다.

# 위젯이란?

위젯은 홈 화면 맞춤설정의 필수적인 측면입니다.
사용자의 홈 화면에서 바로 액세스 할 수 있는 앱의 가장 중요한 데이터와 기능을 '한눈에' 보여주는 뷰라고 생각하면 됩니다. 사용자는 홈 화면 패널 간에 위젯을 이동할 수 있으며 지원되는 경우 위젯의 크기를 조절하여 위젯의 정보 양을 원하는 대로 조정할 수 있습니다.

 

위에는 공식문서에서 설명하는 위젯의 정의이다.

간단히 정리를 해보면 "사용자의 홈 화면에서 바로 액세스할 수 있는 앱의 가장 중요한 데이터와 기능을 '한눈에' 보여주는 뷰"라고 보면 될 것이다.

# 위젯 유형

## 정보 위젯 

- 일반적으로 중요한 정보 요소를 표시하고 시간 경과에 따른 정보 변경을 추적하는 위젯이다.

- 정보 위젯을 탭 하면 연결된 앱이 실행되고 위젯 정보의 세부정보 뷰가 열린다.

- ex) 날씨 위젯, 시계 위젯, 스포츠 점수 추적 위젯

## 컬렉션 위젯

- 동일한 유형의 여러 요소를 표시하는 데 특화되어 있는 위젯이다.

- 컬렉션 위젯은 세로로 스크롤할 수 있다.

- ex) 갤러리 앱의 사진 컬렉션, 뉴스 앱의 기사 컬렉션, 커뮤니케이션 앱의 이메일 또는 메시지 컬렉션

## 관리 위젯 (컨트롤 위젯)

- 사용자가 앱을 열지 않고도 홈 화면에서 기능을 트리거할 수 있도록 자주 사용하는 기능을 표시하는 위젯

- 앱의 리모컨으로 생각할 수 있다.

- ex) 사용자가 집 안의 조명을 켜거나 끌 수 있는 홈 컨트롤 위젯

## 하이브리드 위젯

- 대다수 위젯은 다양한 유형의 요소를 결합하는 하이브리드이다.

- ex) 음악 플레이어 위젯은 주로 컨트롤 위젯이지만 정보 위젯처럼 현재 재생 중인 트랙도 사용자에게 표시한다.


# 위젯 제한사항

위젯을 디자인하려면 아래와 같은 제한사항을 준수해야 한다.

## 동작

- 위젯에 사용할 수 있는 유일한 동작은 터치세로스와이프이다. (이유는 아래 참조)

위젯은 홈 화면에 표시되므로 홈 화면에 설정된 탐색과 공존해야 합니다.
이렇게 하면 전체 화면 앱에 비해 위젯에서 사용할 수 있는 동작 지원이 제한됩니다.
앱에서 사용자가 화면 간에 가로로 이동하도록 허용할 수 있지만 이 동작은 홈 화면 간 이동을 위해 이미 홈 화면에서 실행되고 있습니다.

## 요소

- 동작의 제한사항으로 인해 제한된 동작을 사용하는 일부 UI 구성 요소는 위젯에 사용할 수 없다.

⭐️ 아래 사진에 나와있는 View만 사용이 가능하다! (RemoteViews 기반) 


# 위젯 크기 조절

- 위젯이 기본적으로 고정 크기인 경우 크기 조절을 지원할 필요가 없다.

- 위젯의 크기를 자유롭게 조절하거나 가로 또는 세로 크기 변경을 제한할 수 있다.

 

정리를 하자면 만들려는 위젯 유형에 따라 위젯의 크기 조절 전략을 계획해야 한다.

 

아래 사진은 3단계로 날씨 위젯의 크기를 조절하여 위젯이 커짐에 따라 현재 위치의 날씨에 관한 정보 노출을 다르게 보여 주는 예제이다.


# 위젯 디자인 체크리스트

1. 위젯에서 한눈에 파악할 수 있는 정보의 작은 부분에 초점을 맞춘다. 앱의 정보를 확장한다.

2. 용도에 적합한 위젯 유형을 선택한다.

3. 위젯의 콘텐츠가 다양한 크기에 맞게 조정되는 방식을 계획한다.

4. 레이아웃이 확장되거나 축소될 수 있도록 하여 위젯 레이아웃을 방향 및 기기와 독립적으로 만든다.

5. 위젯에 추가 구성이 필요한지 고려한다.


 

우선 개념적인 부분을 정리했고 다음 편에서 사용법을 알아보자!

 

https://jige.tistory.com/86

 

[Android] 안드로이드 위젯 알아보기 2편 - Glance, Compose, Kotlin (Android Compose Glance Appwidget)

지난 1편에서 위젯에 대한 개념을 알아봤다면 이제 2편에서는 위젯을 만드는 법에 대해서 알아볼 것이다. 들어가기 전 본 포스팅은 Xml 개발이 아닌 Compose로 개발을 진행할 것임으로 Xml으로 개

jige.tistory.com

 

반응형