본문 바로가기

개발/App Developer

Apple Human Interface Guidelines - Characteristics of Great Software(5/7)


Apple Human Interface Guidelines - Characteristics of Great Software(5/7)

Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
Adaptable 프로그램은 주변 환경에 적절하게 적응하는 것이다.
현재 환경이 바뀔 때 동작이 멈추지 않는다는 것이다.
네트워크 연결이 다운된다면, adaptable 프로그램은 사용자가 오프라인에서 계속 작업할 수 있게 해준다.
마찬가지로, 특정 리소스가 잠기거나 사용 불가능하게 되었을 때, adaptable 프로그램은 사용자의 요청에 맞는 다른 방법을 찾을 것이다.
Mac OS X의 강점 중 한가지는 설정 변화에 빠르게 적응할 수 있는 능력이다.
예를 들어, 사용자가 시스템 설정에서 컴퓨터의 네트워크 환경을 변경한다면, CFNetwork를 이용하여 네트워크 설정 변경을 자동으로 처리하는 사파리나 메일과 같은 어플리케이션이 자동으로 변경된 부분을 잡아낸다.

Guidelines
  • 인터페이스에 허용(forgiveness)와 영리함(intelligence)를 넣어라.
    • 소프트웨어가 파일 시스템 볼륨이나 네트워크가 사라지는 경우를 다룰 수 있게 하라.
    • 사용자에게 다른 볼륨에 저장하기나 추후 네트워크에 재연결과 같은 옵션을 제공하라.
  • 가능한 하드웨어와 접근할 수 있는 하드웨어에 가정을 피하라.
    • 하드웨어 구성은 컴퓨터, 국가, 사용자에 따라 아주 다르게 바뀔 수 있다.
    • 예를 들어, 모든 매킨토시가 프로세서에 벨로시티 엔진이 장착된것이 아니다.
    • 마찬가지로 모든 키보드가 같은 키셋을 가지고 있지 않다.
    • 하드웨어는 실행 중 추가되거나 제거될 수 있다.
    • 사용 가능한 디바이스 구성을 감지하기 위해 I/O 킷 인터페이스를 사용하라.
  • 현재 사용자의 장소에 의해 가정하지 마라.
    • 다른 날짜,  시간, 그리고 숫자 포맷을 다룰 수 있게 준비하라.
    • 또한, 현재 사용자의 주소 포맷이 반드시 사용 중인 주소 포맷이라고 가정하지 마라.
    • 예를 들어, 사용자는 address book에 외국인의 주소와 함께 연락처를 저장할 수도 있다.
  • 실행 환경을 가정하지 마라.
    • 프로그램이 NetBootk 환경에서 실행된다면, 시스템 리소스의 접근은 제한되거나 읽기 전용일 것이다.
    • 예를 들어, 전형적인 NetBoot 환경에서는 사용자의 홈 디렉토리만 쓰기 가능하다.
  • 화면 유효성과 해상도의 변화에 민감해져라.
    • Mac OS X는 모니터의 하플러깅을 지원하고 Quartz 서비스를 통해 변경을 어플리케이션에 알려준다.
    • 소프트웨어는 윈도우 위치와 크기를 조정하여 이에 대해 적절하게 반응해야 한다.
  • Modern 시스템 API를 사용하라.
    • 애플은 Modern 시스템 API는 구성 변경을 제대로 다루도록 동작한다.
    • 몇몇 legacy API 또한 구성 변경을 지원할 수도 있지만, 미래의 릴리스 버전에서 지원할 것이다
  • 커스텀 디바이스 드라이버를 만들지 마라.
    • I/O 킷은 많은 표준 프로토콜과 디바이스 타입을 지원하는 동작 드라이버를 포함하고 있다.
    • 이러한 드라이버에 의존하면  새 버전의 Mac OS X에서 하드웨어어가 자동으로 동작하는 것을 의미한다.


출처 : Apple Human Interface Guidelines