The appropriate interruption
앱 이용자에게 정보를 알릴 때, Dialog나 Toast, Snackbar 들을 이용할 수 있습니다.
셋 다 정보를 알려준다는 점은 동일하지만, 경우에 따라 구분 지어 이용할 필요가 있습니다.
Dialog는 앞으로 이용할 정보를 보여주고, 이를 바탕으로 결정을 내리거나 추가 정보 입력을 요구하는 작은 창으로 이뤄진 ui입니다.
Dialog는 적은 양의 정보 (일반적으로 2 문장 이하)와 두 가지 action(버튼)을 제공할 수 있습니다.
(3개의 action도 가능하지만 권장하진 않습니다.)
하지만 Dialog는 방해하는 속성이 있어서 이용자들은 하던 일을 멈추고 Dialog를 처리해야 합니다.
즉, 이용자가 Dialog를 처리하기 전까지는 아무것도 할 수 없으므로 Dialog 사용에 대해 매우 신중해야 합니다.
따라서 이용자로부터 즉각적인 응답이 필요한 긴급 메시지가 있는 경우 Dialog가 적절합니다.
구체적인 구현법이나 커스텀한 Dialog에 대한 내용은 아래 링크들을 참고해 주시기 바랍니다.
Toast는 동작에 대한 간단한 피드백을 텍스트 형태로 제공하는 작은 popup 형태의 ui입니다.
Toast는 Dialog와 달리 이용자를 방해하지 않고 메시지를 표시하고 시간이 지나면 자동으로 사라집니다.
그리고 Toast는 사용하기 쉽지만 할 수 있는 일이 제한적이기 때문에 간단하고 단순한 정보를 보여주는 데 적합합니다.
Toast는 시간이 지나면 자동으로 사라지는데, 보통은 기본적으로 제공하는 두 가지 시간을 이용합니다.
이 시간을 직접 지정할 수 도 있지만, 특별한 이유가 없다면 아래 두 시간을 이용하기를 권장합니다.
구체적인 구현법이나 커스텀한 Toast에 대한 내용은 아래 링크들을 참고해 주시기 바랍니다.
Snackbar는 화면 하단의 메시지를 통해 작업에 대한 간단한 피드백을 제공하는 ui입니다.
Snackbar는 동작과 관련된 짧은 텍스트 한 줄과 단일 텍스트 액션(버튼)을 포함할 수 있습니다.
Snackbar는 이용자를 방해하지 않고 메시지를 표시하고 시간이 지나면 자동으로 사라진다는 점에서 Toast와 비슷하지만, 단일 텍스트 액션을 통해 이용자와 상호작용을 할 수 도 있습니다.
따라서 Snackbar는 Dialog보다 이용자에게 주는 영향이 적고, Toast보다 더 커스텀하게 이용할 수 있기 때문에 보다 다용도로 이용할 수 있습니다.
Dialog와 Toast 그 사이의 모든 경우에는 Snackbar를 이용하기 적합합니다.
참고로 Snackbar는 Support library 22.2.0 이후부터 지원이 가능합니다.
구체적인 구현법이나 커스텀한 Snackbar에 대한 내용은 아래 링크들을 참고해 주시기 바랍니다.
구글에서도 위 3가지를 어떤 경우에 이용할지 권장을 하는 수준이지 강제하지는 않습니다.
그렇다 보니 꼭 필요하지 않은 부분에서도 Dialog를 이용하는 경우가 많은데, 이는 이용자에게 작은 불편을 초래합니다.
기획이나 개발을 함에 앞서, 반드시 필요한지 아니면 불편을 초래하지 않는지 이용자에 입장에서 생각해 본다면 Dialog, Toast, Snackbar를 적절하게 이용할 수 있을 거 같습니다.