iOS2012. 10. 5. 16:36

시작


아이폰 어플리케이션은 사용자가 지체되지 않고 사용할 수 있게 시작 즉시 실행되어야 한다. 시작시에는 다음 사항들을 따르도록 한다.


- 상태 바(status bar) 스타일을 적절하게 지정한다.

- 어플리케이션 로딩 이미지를 어플리케이션의 첫화면과 흡사하게 만든다. 이렇게 하면 어플리케이션 시작이 지연되는 느낌을 감소시킬 수 있다.

- 사용자가 어플리케이션을 즉시 사용할 수 있게 하지 못하는 About 창이나 스플래시 화면, 기타 시작 동작은 피하도록 한다.

- 기본적으로는 세로 방향(portrait)으로 시작한다. 만약 어플리케이션이 가로 방향(landscape)으로만 동작하게 하려면 양쪽 가로 방향을 모두 지원하도록 한다. 이때 사용자가 이미 기기를 가로 방향으로 들고 있었다면 그 방향 그대로 시작시키면 되고, 그렇지 않다면 기본적으로는 홈 버튼이 오른쪽으로 가게 띄운다.

- 어플리케이션이 마지막으로 실행된 시점의 상태를 복구한다.



종료


사용자가 다른 어플리케이션을 띄우거나, 전화를 받는 등의 기기 기능을 사용하면 어플리케이션은 종료된다. 여기서 중요한 것은 사용자가 어플리케이션을 종료시키기 위해 닫기 버튼을 누르거나 메뉴에서 종료를 선택하지는 않는다는 것이다. 종료시에는 다음 사항들을 따르도록 한다.


- 어느 시점에서든 어플리케이션을 종료시키는 노티피케이션을 받을 수 있도록 대비해야 한다. 그러므로 가능한 빨리, 그리고 합리적인 선에서 자주, 사용자 데이터를 저장한다.

- 종료시 현재 상태를 저장하되 가능한 가장 좋은 세부 수준의 상태를 저장한다. 예를 들어, 어플리케이션이 스크롤 가능한 데이터를 보여준다면, 현재의 스크롤 위치를 저장한다.


어플리케이션을 프로그램적으로 종료시키는 것은, 사용자에게는 그것이 충돌난 것처럼 보이기 때문에 절대 그렇게 해서는 안된다. 그러나 어떨때는 외부 환경으로 인해 어플리케이션의 기능을 실행시키지 못할 경우가 있는데, 이럴때는 사용자에게 현재 상태를 알리고 사용자가 무엇을 할 수 있는지 알리도록 한다. 이렇게 함으로써 사용자는 알맞는 조치를 취한 후 어플리케이션을 계속 사용할 것인지 아닌지를 선택할 수 있다.


외부 환경은 어플리케이션이 시작할때 뿐만 아니라 실행 중에도 바뀔수 있다. 어플리케이션의 주 기능을 사용할 수 없는 환경이 되었을때는 사용자에게 상황을 설명하고 무엇을 할 수 있는지 알려주는 화면을 보여주도록 한다. 예를 들어 iTunes 어플리케이션에서는 Wi-Fi가 연결되지 않았을때 왜 아이튠즈 뮤직 스토어에 접속할 수 없는지를 설명하고 어떻게 하면 이를 해결할 수 있는지 알려주는 화면을 보여준다.


<그림 4-1> 어플리케이션의 주 기능을 실행할 수 없을때



외부 환경 제약에 따른 또 다른 대안으로는 얼럿창을 표시하는 것을 들 수 있다. 예를 들어, 어플리케이션의 기능이 현재 위치를 사용하려 할 때 위치 서비스가 비활성화 되어 있다면, 얼럿창을 띄워 이것을 알려주고 사용자에게 위치서비스를 활성화 시킬 수 있는 기회를 제공하는 것이 효과적이다. 얼럿창은 디자인적인 면에서는 그리 유연성이 크지 않지만 다음과 같은 방법으로 사용하면 적당하다.


- 현재 상황을 매우 간단하게 설명한다.

- 현재 상황을 해결하기 위한 작업을 실행하는 버튼을 제공한다.

- 얼럿창을 매우 자주 띄우거나, 서로 다른 많은 상황에서 띄우는 것은 피한다.


모든 얼럿은 사용자들이 그것을 덜 보게 될수록 더 효율적이다.



설정


설정(Settings)은 아이폰에 내장된 설정 어플리케이션에 의해 접근할 수 있다. 사용자는 설정을 이용하기 위해 어플리케이션을 종료해야 하기 때문에, 한번 이상 지정하게되는 설정은 피하도록 하고, 가급적이면 설정이 불필요하게 어플리케이션을 단순화시키도록 한다.


옵션(Configuration options)은 어플리케이션 내에서 제공되며, 보통은 화면의 뒷면에서 보여준다. 설정과 다르게 옵션은 자주 바뀔 수도 있다.



방향


사용자는 언제든 기기의 방향(orientation)을 돌릴 수 있으며, 현재 보고 있는 화면이 그에 따라 적절히 반응하길 기대한다. 다음 사항들을 확인하도록 하자.


- 가속도계(accelerometer)의 값을 인식하고, 적당하면 모든 방향 변화에 대응해야 한다.

- 한쪽 방향으로만 보여야하는 사용자 인터페이스가 있는 경우는 그 방향으로 그대로 보여주고 기기 방향 변경에 반응하지 않는 것이 적절하다.


예를 들어 iPod에서는 현재의 기기 방향에 상관없이 언제나 동영상을 가로 방향으로 보여준다. 이것은 사용자가 동영상을 보기 위해 물리적으로 기기를 돌려야 하는 것을 의미하는데, 중요한 것은 이러한 과정에서 iPod은 "회전" 버튼 같은 것은 제공하지 않는다는 것이며, 대신 사용자는 동영상이 가로방향으로 뜨는 것을 알기 때문에 기기를 돌린다는 것이다. 


이처럼 어플리케이션이 특정 방향으로 보여져야 한다면 사용자가 기기를 물리적으로 돌리게 하고, 사용자에게 기기를 돌리라고 하는 컨트롤이나 제스처는 사용하지 않도록 한다.



선택


아이폰 OS는 사용자가 무엇인가 선택할 수 있게 하는 몇가지 요소들을 제공한다. 이러한 방법들은 사용자가 이미 익숙해져 있기 때문에 어플리케이션에서는 이것들을 사용하도록 한다. 일반적으로는 데스크탑 어플리케이션에서 사용하는 메뉴나, 라디오 버튼과 비슷한 모양의 컨트롤 등을 만드려고 하면 안된다. 아이폰 OS에서 제공하는 선택 요소들은 다음과 같다.


- 리스트(테이블 뷰): 목록의 행을 눌러 아이템을 선택한다. 대부분의 경우에 적당하다.

- 픽커(Picker): 원하는 값이 보일때까지 휠을 돌려서 선택한다. 

- 스위치: 둘 중의 한가지 값을 선택하기 위해 좌우로 컨트롤을 슬라이드한다. 스위치는 목록 내에서 간단한 선택을 제공하도록 의도되었다.



약관


약관(EULA, End-User License Agreement)은 어플리케이션을 사용하기 전에 사용자가 반드시 동의해야 할 책임 한계 등을 명시한다. 이러한 약관은 사용자가 어플리케이션을 구매하기 전에 미리 확인해 볼 수 있도록 앱스토어에서 보여지기 때문에, 어플리케이션에서는 모든 경우에 대해 약관을 표시하지 않도록 한다. 다만, 이는 설치와 설치후 첫 실행의 경우에도 해당하지만, 이 경우에는 완전히 제한하지는 않는다. 또한 어플리케이션 실행중에 약관을 표시하기 위한 사용자 인터페이스 요소를 제공해서도 안된다. 이러한 가이드라인을 따르면 사용자를 방해하지 않으면서도 필요한 동의를 얻을 수 있다.

Posted by 다오나무