Windows 스토어 앱을 테스트하는 방법에 대한 글을 통해 다양한 런타임 상태에서 앱을 테스트하는 방법을 소개한 바 있습니다. 또한 Windows 8 사용자 경험의 일부 측면과 그것이 앱의 실행 환경에 미치는 영향에 대해서도 논의하였습니다. 그럼 이번에는 새로운 사용자 경험에 대해 보다 심도 있게 살펴보고, 기존 앱의 테스트를 기반으로 앱을 실행할 수 있는 몇 가지 흥미로운 조작 방식과 시나리오에 대해 알아보고, 앱이 올바르게 작동하는지를 확인하는 방법을 소개하겠습니다.
일반 레이아웃 및 동작 테마
Windows 8은 새롭고 풍부한 기능을 제공하므로 개발자들은 몰입도가 뛰어나 푹 빠져들 수 있는 앱을 개발할 수 있습니다. 앱이 초기화되면 사용자가 앱에 대한 첫인상을 얻게 되는 시작 화면이 나타납니다. 앱이 표시되고 실행되면 사용자는 언제든지 이를 회전하고, 크기를 조정하고, 동시 보기 또는 전체 보기로 전환할 수 있습니다. 더 중요한 사실은 이러한 이벤트를 조합하거나 연속적으로 구현할 수 있다는 점입니다. 예를 들어 시작 화면이 표시되는 동안 앱이 방향 전환을 수신하거나 크기를 조정할 수 있는 프로젝터에 장치를 연결하여 동시에 볼 수 있습니다. 그럼 지금부터 각각의 이벤트가 발생하는 동안 어떤 부분에 특히 주목해야 하는지 보다 구체적으로 살펴보겠습니다.
시작 화면
시작 화면기능은 시스템이 앱을 처음 사용하기 위해 초기화하는 동안이나 백 스택에서 일시 중지된 앱을 가져올 때 앱의 작동 상태를 보여 줍니다. 시작 화면이 올바르게 표시되도록 하려면 세로 모드나 가로 모드에서 전체 화면으로 앱을 시작하고 시작 화면이 적절한 위치(일반적으로 중앙 위치)에 있는지, 애니메이션이나 시각적 요소의 영향을 받지 않는지 등을 확인해야 합니다. 또한 들쭉날쭉한 가장자리나 픽셀화된 이미지가 없는지 확인하여 시작 화면에 표시된 그래픽의 해상도 품질을 주의 깊게 살펴봐야 합니다.
개발자의 앱이 확장 시작 화면을 지원하는 경우에는 시작 화면에서 확장 시작 화면으로의 전환이 일관적이고 부드럽게 구현되는지 확인합니다. 이때 아이콘 위치의 변화나 화면 깜박임 등 ��경을 거슬리게 하는 것들에 특히 주의해야 합니다.
회전
회전은 앱이 실행되는 동안에, 심지어 앱이 일시 중지 상태에 있는 동안에도 언제든지 작동할 수 있습니다. 다양한 상태의 UI를 구동하는 동안에 앱이 방향 전환에 응답하는지 확인해야 합니다. 특히 사용자의 경험을 저하시킬 수 있는 레이아웃 문제나 클리핑 문제에 세심한 주의가 필요합니다. 또한 방향 전환 시 콘텐츠의 점프나 깜박임이 없도록 해야 합니다.
앱에서 자동 회전 설정을 사용 중인 경우에는 사용자가 앱을 시작하거나 앱으로 전환할 때 시스템 방향이 앱의 회전 설정에 따라 변경되는지 확인합니다. 또한 밀어서 회전하는 설정에서도 앱을 사용할 수 있는지 확인합니다. 예를 들어 자동 회전 설정이 가로인 경우 가로 모드 및 가로로 밀기 모드에서도 앱이 올바르게 보이고 기능이 제대로 작동하는지 확인합니다.
앱을 테스트할 수 있는 적절한 하드웨어가 없는 경우에는 Visual Studio 시뮬레이터를 사용하여 회전을 시뮬레이션해 볼 수 있습니다. 테스트 시 시뮬레이터를 사용하는 방법에 대한 자세한 내용은 Visual Studio 2012를 통한 Windows 8 앱 테스트를 참조하세요.
크기 조정
Windows 8은 앱의 크기 조정을 통해 다양한 지원 픽셀 밀도하드웨어의 터치와 편의성을 유지합니다. 100%, 140%, 180%의 확장 플래토에서 앱의 사용자 경험을 확인합니다. 다양한 상태의 UI에서 구동되는 동안 모든 크기 조정 플래토에서 앱이 올바르게 표시되는지 확인합니다.
Visual Studio 시뮬레이터에서 다음의 설정을 사용하여 지원되는 플래토에서 앱을 테스트할 수 있습니다.
- 100% 플래토 - 10.6인치, 1366 X 768 사용
- 140% 플래토 - 10.6인치, 1920 X 1080 사용
- 180% 플래토 - 10.6인치, 2560 X 1440 사용
앱이 듀얼 모니터 시스템 또는 프로젝터에 표시되는 장치의 모니터에서 다른 모니터로 이동하는 경우 앱이 실행되는 동안 크기 조정 변경이 동적으로 발생할 수 있습니다. 특히 사용자가 느끼는 경험을 저하시킬 수 있는 레이아웃 문제나 클리핑 문제에 주의하세요. 또한 들쭉날쭉한 가장자리나 픽셀화된 이미지가 없는지 확인하여 아이콘, 타일, 이미지, 앱 내부 콘텐츠의 해상도 품질을 주의 깊게 살펴봐야 합니다.
동시 보기와 전체 보기
앱이 실행되는 동안에는 언제든지 동시 보기 또는 전체 보기 상태를 변경할 수 있으며 심지어 앱이 일시 중지 상태에 있는 동안에도 가능합니다. 앱이 다양한 상태의 UI에서 구동되는 동안 표시 방법 변경에 올바르게 응답하는지 확인해야 합니다. 또한 사용자의 경험을 저하시킬 수 있는 레이아웃 문제나 클리핑 문제에 주의하시기 바랍니다.
동시 보기에서 화면에 2개의 앱 표시를 지원하기 위해 필요한 화면 크기는 최소 1366 X 768입니다. 개발자의 앱을 동시 보기로 보려면 백 스택에 다른 앱을 함께 실행해야 합니다. 두 번째 앱을 화면의 왼쪽부터 살짝 밀어 스크롤 막대가 보이는 위치까지 이동하여 동시 보기 상태로 만듭니다.
계약 및 선택적 동작
Windows 8은 앱에서 데이터와 파일을 조작하고 공유할 수 있는 풍부하고 유연한 방식을 도입했습니다. 앱에서 파일 선택기를 사용하여 파일을 열고 저장할 수 있습니다. 파일 선택기 계약을 구현하여 앱에서 다른 앱에 파일이나 저장 위치를 제공할 수도 있습니다. 검색 계약은 사용자가 찾고 있는 정보를 앱에 표시하는 데 필수적인 방법을 제공합니다. 공유 계약은 사용자가 하나의 앱에서 다른 앱으로 사진이나 웹 링크와 같은 콘텐츠를 편리하게 공유할 수 있는 방법을 제공합니다.
앱이 더 많은 옵션을 갖게 되고 파일과 데이터를 통해 사용자 경험을 정의하는 핵심적인 역할을 하게 되면서 사용자가 이를 직관적으로 경험할 수 있도록 하기 위해 앱에 더 많은 책임이 부여되고 있습니다. 이어서 파일 및 데이터로 작업하기 위한 몇 가지 옵션과 흥미로운 시나리오들을 살펴보겠습니다.
파일 열기 선택기 계약
Windows 8에서는 파일 선택기를 사용하여 앱에서 파일을 열고 저장할 수 있습니다. 파일 선택기 계약을 구현하여 앱에서 다른 앱에 파일이나 저장 위치를 제공할 수도 있습니다.
앱이 지원하는 파일 유형의 선택기를 다른 앱이 호출하도록 허용하는 경우 앱에서 선택기의 바스켓에 추가한 항목이 미리 보기로 올바르게 표시되는지 확인하고, 사용자가 선택한 파일(콘텐츠 포함)이 선택기를 호출한 앱으로 다시 올바르게 제공되는지 확인해야 합니다.
앱이 각 파일들에 대한 보기 기능을 제공하는 경우 파일이 선택기의 바스켓에서 올바르게 추가되고 제거되는지 확인해야 합니다.
사용자가 선택기의 앱에서 다른 곳을 탐색하면 선택기 내에서 호스팅된 앱이 종종 일시 중지될 수 있으나 종료되지는 않습니다. 이 때문에 앱이 이벤트를 일시 중지 또는 다시 시작으로 처리하지 않도록 해야 사용자가 다시 앱으로 돌아왔을 때 앱의 성능에 대해 안 좋은 인상을 받지 않습니다. 그 대신 앱이 종료되는 시기를 결정할 수 있는 선택기의 종료 이벤트를 등록하고 앱이 그 시간 동안 필요한 정리를 수행하는지 확인합니다.
검색 계약
검색 계약은 사용자가 찾고 있는 정보를 앱에 나타내는 데 필수적인 방법을 제공합니다. 앱이 검색을 지원하는 경우 이를 확인하는 가장 기본적인 동작은 사용자가 검색창을 열고 검색어를 입력할 때 앱이 검색을 처리하고 연관성 있는 결과를 보여 주는지 여부입니다. 검색 계약이 올바르게 구현되지 않는 경우 "해당 앱을 검색할 수 없습니다"라는 메시지가 나타나고 사용자가 수행한 모든 검색이 앱에서 초기화됩니다.
앱이 검색 제안을 제공하는 경우 이 기능이 올바르게 표시되는지, 아이콘이 보이는지, 아이콘의 너비와 높이가 올바른지 확인해야 합니다. 앱이 검색 입력을 지원하는 경우 앱을 열 때 검색창이 열리고 검색을 시작하는지 확인하고 예상되는 결과가 반환되는지 확인하세요.
검색 계약은 사용자가 검색창을 열 때 검색 상자에 검색 텍스트 예시를 회색으로 보여주는 암시 텍스트 설정을 지원합니다. 앱이 검색 상자에 암시 텍스트를 설정하는 경우 이 기능이 사용자에게 편리하고 앱에서 검색창을 열 때 예상했던 대로 보이는지 확인하세요.
앱이 검색창 텍스트를 프로그래밍 방식으로 설정하는 것을 지원하는 경우 이 기능이 제대로 작동하는지 확인합니다. 검색창이 닫혀 있는 상태로, 검색창 텍스트가 설정되도록 하는 작업을 앱에서 수행하고 검색창을 열어 텍스트가 올바르게 설정되었는지 확인합니다.
회전은 검색을 수행하는 동안과 같이 앱이 실행되는 중에 언제든지 작동할 수 있습니다. 앞에서 다룬 회전 섹션을 참조하여 장치가 회전되는 동안에도 앱에서 검색 작업이 제대로 이루어지는지 확인하세요.
공유 계약
공유 계약은 사용자가 하나의 앱에서 다른 앱으로 사진이나 웹 링크와 같은 콘텐츠를 간편하게 공유할 수 있는 방법을 제공합니다. 대상 공유 앱이 콘텐츠를 사용하는 반면 소스 공유 앱은 콘텐츠를 제공합니다. 개발자의 앱은 둘 중 하나 또는 둘 다 가능합니다.
앱이 소스 공유인 경우 다른 대상 공유 앱이 자체 시나리오에 따라 다르게 공유된 데이터를 처리한다는 점을 유의하세요. 일부 콘텐츠를 다른 콘텐츠보다 우선적으로 처리하는 경우도 있습니다. 예를 들어 링크와 HTML 조각을 모두 공유하는 경우 일부 대상 앱은 링크에 우선 순위를 두고 HTML을 무시하는 선택을 할 수도 있으며 그 반대의 경우도 가능합니다. 사용자가 앱에서 공유할 때 놀라운 경험을 할 수 있도록 데이터 패키지의 콘텐츠가 모두 동일한 데이터를 다르게 표현한 것인지 확인하고, 앱을 설계 및 테스트할 때 일부 다른 대상 앱(대상 공유 샘플, 메일, 그 외에 개발자가 설치한 대상 공유 앱 등)을 공유하도록 해야 합니다.
사용자는 공유한 콘텐츠가 시각적이고 현재 페이지와 연결되어 있으며 자신이 선택한 것이고 앱이 있는 컨텍스트에서 분명히 나타나기를 바랍니다. 앱을 탐색하고, 다양한 위치에서 공유하고, 선택한 콘텐츠를 선택하고 공유하며, 사용자의 기대에 맞게 해당 콘텐츠가 앱에서 공유되었는지 확인합니다.
앱이 대상 공유인 경우 공유 창에 호스팅됩니다. 이 공유 창은 전체 화면보다 좁은 보기 화면으로, 사용자는 창 바깥 부분을 탭하여 앱이 포함된 창을 쉽게 해제할 수 있으며, 대상 공유 앱을 통해 가볍고 빠른 경험을 제공하기 위해 설계되었습니다. 이 환경에서 앱이 예상대로 작동하는지 확인하세요. 사용자가 느끼기에 공유를 완료하는 작업이 너무 부담되거나 복잡할수록 바깥 부분을 실수로 탭하여 그 동안 했던 모든 작업을 날려 버릴 가능성이 높아집니다. 왼편의 스크롤 막대처럼 이와 같은 문제를 발생시킬 수 있는 컨트롤을 살펴보세요. 또한 사용자가 앱을 처음 사용할 때 대상 공유로 앱을 시작할 가능성이 있습니다. 인증 또는 초기 설정이 필요한 앱의 경우 사용자가 이를 공유 창에서 완료할 수 있게 하거나 사용자가 앱에서 공유하기 전에 먼저 무엇을 해야 할지를 알려주는 유용한 메시지를 앱이 제공할 수 있도록 합니다.
앱이 소스 공유와 대상 공유 모두에 해당하는 경우 앱에서 앱으로 공유할 수 있는 옵션이 있습니다. 이것이 여러분의 시나리오에 타당한지 확인해 보시기 바랍니다.
결론
Windows 8은 앱이 중요한 역할을 하도록 풍부하고 몰입도가 뛰어난 경험을 제공합니다. 앱 내의 사용자 경험 이외에도 앱이 지원하는 기능이나 앱이 실행되는 동안 사용자가 수행하는 동작에 따라 회전, 크기 조정, 다양한 보기 상태, 계약을 통해 조작할 수도 있습니다. 이 글에서 앱에 문제가 될 수 있는 일부 조작 방식에 대해 살펴보았고 이 문제를 방지하기 위해 앱을 테스트하는 방법을 설명했습니다. 이 글이 앱의 사용자 경험에 부정적인 영향을 줄 수 있는 문제를 발견하는 데 도움이 되기를 바랍니다. 이 주제에 대한 의견이 있거나 공유할 만한 흥미로운 문제점이 있으면 알려 주시기 바랍니다.
- Windows SDET, Rick Muszynski
- Windows SDET, Patrik Lundberg
특별히 이 블로그 글을 작성하는 데 도움을 준 Tom White와 Jake Sabulsky에게 진심으로 감사드립니다.