iOS 개발을 천천히 공부하며 부족한 영어 실력으로 번역을 해보았습니다. 신뢰할 수 없는 번역이 많을 것으로 예상되어 혹시 저의 글을 읽는 분은 원문과 같이 봐주시기를 부탁드립니다.


플랫폼 특성

iOS기반의 장치들은 각각의 독특한 특징들을 갖고 있으며 이를 공유합니다. 이 특징들은 iOS에서 실행되는 앱들의 사용자경험에 영향을 미칩니다. 가장 성공적인 앱은 이러한 특징들을 포용하고 앱이 실행되는 디바이스에 아우러지는 사용자경헙을 제공합니다.


1. 사이즈보다는 디스플레이가 우선됩니다.

iOS장치의 디스플레이는 사용자경험의 핵심입니다. 사람들은 아름다운 텍스트, 그래픽, 미디어를 볼 뿐 아니라, 물리적인 상호작용(멀티터치스크린)으로 자신의 사용자경험을 전달합니다. (심지어 볼 수 없을 때조차)

비록 다른 크기와 해상도의 디스플레이가 앱에서 사용자경험에서 다른 영향을 줄 수 있지만, 일부 효과는 모든 iOS에 적용이 된다. 예를 들면

  • 가장 안정적이게 작은 '탭 터치'가능한 UI element 크기는 44 x 44 points 이다.

  • artwork의 품질은 명백하다. (custom 디자인 된 부분들은 분명하게 눈에 띄고 영향을 준다는 의미인듯)

  • 유저의 시점은 컨텐츠에 위치한다. (트위터 치면 테이블뷰의 셀부분?이라고 이해함)

  • 장치의 디스플레이에 따른 Point와 Pixel의 차이가 있다. (한 포인트가 한 픽셀이 아니다.)


2. 장치의 오리엔테이션은 변경될 수 있습니다. (Landscape/Portrait)

사람들은 다양한 이유로 언제든지 장치의 회전시킬 수 있습니다. 예를들어 사람들이 수행하는 작업은 때때로 세로모드에서 더 자연스럽게 느껴질 수 있고 가로모드에서 더 적합하기도 합니다.
어쨌든 장치와 Orientation이 회전하므로 사용자는 앱이 유지하고 있던 회전상태를 장치와 같게 유지되기를 기대합니다. 또한 사람들은 홈스크린에서 앱을 실행하므로 홈과 앱이 같은 오리엔테이션에서 시작되는 것을 기대합니다.
단, iPhone과 iPad는 다른 방법으로 홈을 디스플레이 합니다. 이에 앱은 다른 식으로 작용할 수 있는데

  • 아이폰과 아이팟 터치의 홈스크린은 세로모드만 존재하므로 홈버튼은 항상 하단에 위치하게 됩니다. 이 선행조건으로 사용자는 앱이 항상 세로모드에서 실행되기를 기대합니다.

  • 아이패드에서는 홈스크린이 모든 오리엔테이션에서 디스플레이되어 집니다. 따라서 유저들은 디바이스의 현재 오리엔테이션에서 실행되어지는 것을 기대합니다.

 

3. 앱은 제스쳐에 반응한다, 클릭이 아니다.

사람들은 iOS 기반 장치의 멀티터치 인터페이스를 운용하는 손가락 동작으로 '제스처'라 하기로 명명하였다. 예를 들어 버튼을 활성화하기 위해서 '탭을 한다', 긴 리스트를 스크롤 하기 위해서 'flick'혹은 'drag'를 한다고 하고, 이미지를 확대하기 위해서는 'pinch'를 한다고 표현한다.
멀티터치 인터페이스는 디바이스와 유저간의 연대를 강화 시켜주고 스크린상에서 직관성을 향상 시켜준다.
사람들은 표준 제스처에서 안정감을 갖는데 'Built-in App'이 표준 제스처를 일관성있게 사용하기 때문이다. 'Built-in App'을 사용하는 경험이 대부분의 앱에서도 사용할 수 있다는 기대를 준다.


4. 한 번에 하나의 앱과 상호작용한다. (People interact with one app at a time)

한 번에 오직 하나의 앱이 foreground에서 보여질 수 있다.사람이 다른 앱과 스위치를 할 때, 이전의 foreground앱은 종료가 되고 ui는 사라진다. 

*이는 iOS4이전에는 종료되는 앱은 즉시 메모리에서 제거되었다는 의미이다. iOS4이후에는 종료되는 앱은 백그라운드로 넘어간다(실행중일 수도 아닐 수도 있는 백그라운드). 이 특징을 '멀티태스킹'이라고 부른다. 종료되거나 다시 실행되기 전까지 백그라운드에 남아있는다. 대부분의 앱은 백그라운드로 넘어갈 때 'suspended state'중지상태로 들어간다. 'Suspended apps'중지상태앱들은 최근 사용된 앱을 효율적으로 보여주는 것을 제공하는 '멀티태스킹 UI'에서 보여지게 된다. 현재 실행중인 앱이나 홈스크린 아래에 보여지게 된다. 사람들이 중지된 앱을 다시 실행을 하면, 그것은 즉각적으로 다시 실행하게 되는데, 그것이 중지되었던 시점부터 시작하게 된다. 별도의 유저가 리로드하는 행위를 갖지 않고 말이다. 일부의 앱은 유저가 다른 앱을 foreground에서 실행하는 동안에 계속해서 실행 될지도 모른다, 그 예를 들어서 유저는 다른 갤린더나 이메일 앱을 보는 동안에오디오 앱이 계속 실행되기를 원한다(iPod App). 이를 배우려면 멀티테스킹 페이지를 보아라.

 

5. preference 환경설정은 Settings 에서 가능하다.

 사람들은 특정한 환경설정을 'built-in Settings' 애플리케이션에 설정을 한다. 그 환경설정을 '셋팅'에서 하기 위해서는 현재의 앱을 종료해야한다. 그러므로 '셋팅'에서 하는 환경설정은, '한 번 정하고 드물게 바뀌는' 내용이 되어야한다. 그외의 설정들에 대해서 이렇게까지 할 필요는 없다.

 

6. 화면의 사용자 도움말은 최소화 되어야한다.

모바일유저는 앱으로부터 benefit을 얻기전에 많은 양의 도움말등을 읽을 시간이 없거나 욕구가 없다. 

빌트인 앱들은 직관적(intuitive)이고 사용하기가 쉬워서, 어떻게 사용해야 하는지에 대한 화면의 도움말이 필요치 않다(이것이 일관성을 유지해야 하는 이유이다). 이 경험이 사용자들을 이끈다, 모든 iOS앱이 사용하기 쉬울 것이라고... 


7. 대부분의 iOS앱은 Single Window이다.

iOS애플리케이션은 하나의 윈도우를 갖는다, 외부 디스플레이지원을 제외하고는.(윈도우는 여러개의 뷰를 갖는다) 앱의 윈도우는 디바이스의 전체화면을 채우고, 현재 컨탠츠에서 하나 혹은 여러개의 view가 위치할 빈 화면을 제공한다.

이것은 아는 것은 매우 중요하다. iOS 앱은 컴퓨터 애플리케이션과 매우 다른 윈도우를 가졌다. 예를 들어서, window 타이틀바나 닫기버튼 같은 보이는 컨텐츠가 전혀 없다. 그리고 윈도우는 디바이스 스크린에서 위치가 변경될 수도 없다.

이것을 아는 것도 중요한데, 유저는 window와 view의 개념을 알지 못한다.

대부분의 경우, 유저는 iOS 스크린에서의 네이게이션을 경함한다. 이 관점에서  스크린은 일반적인 반응을 한다 비주얼모드로. 아이폰의 주소록 앱에서, 유저는 생각한다. 그들의 리스트는 하나의 스크린으로 생각하고 그리고 각각의 디테일 화면은 다른 스크린으로 생각을 한다. 윈도우와 뷰에 대해서 생각하는 것이 아니다.


8. 두 종류의 소프트웨어가 구동된다. (아이폰에서 구동되는 앱 종류)

  • iOS App (Native 애플리케이션) : 실행이 빠르고 플램폼이 제공하는 api를 통하여 빌트인앱과 같이 디바이스를 사용한다.

  • 웹 컨텐츠 : 사파리 브라우저를 통해서 실해되는 웹 컨텐츠를 말한다. 이는 또한 웹앱, Optimized Webpages, Compatible Webpages로 구분이 되는데,

    1. 네이티프 애플리케이션처럼 보이고 작동하는 웹앱

    2. iOS 사파리를 위해서 최적화되어 디자인된 Optimized Webpages(플래쉬, 자바같은 지원되지 않는 기술을 제외한 디자인)

    3. 별도의 처리없이 페이지를 호환하여 iOS에서도 볼 수 있는 Compatible Webpages 가 있다. 

  • 하이브리드 애플리케이션 (Hybrid Applications) : HTML5와 자바스크립트를 통하여 크게 발전을 하고 있는 WebContent를 통하여 뷰를 구성하고 필요에 따라서는 Native Api를 호출하는 Native Code를 이요한 플러그인을 혼합하여 개발하는 방식이다.


9. iOS의 사파리는 웹 인터페이스를 제공한다.

데스크탑의 사파리와 유사하지만 같지 않다.
iOS는 viewport (화면 영역)을 리사이즈 할 수가 없다.
오리엔테이션은 바뀔 수 있다.
뷰를 줌인 줌아웃과 상,하,좌,우로 이동시킬 수 있다.
쿠키를 지원한다. 유저의 컨텍스트나, 환경설정등 이전의 들어왔을 때 얻은 데이더는 저장된다.
플래쉬, 자바는 지원하지 않고, 서드파티의 플러그인도 마찬가지이다.
HTML5 오디오/비디오  스트리밍 제공된다.
자바스크립트 css3 변환, 이동, 애니메이션 지원된다.
제스처를 받아들인다. 데스크탑의 마우스 클릭은 탭 터치로 해서 onclick 이벤트를 날린다.
홈스크린으로 웹클립아이콘을 두어서 웹앱이 좀 더 네이티브 앱처러 보이게 할 수도 있다.

 




+ Recent posts