본문 바로가기

개발/App Developer

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


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

Characteristics of Great Software
  • High Performance
  • Ease of Use
  • Attractive Appearance
  • Reliability
  • Adaptability
  • Interoperability
  • Mobility
사용자의 신뢰를 받을 수 있는 프로그램이 신뢰할만한(reliable) 프로그램이다. 사용자가 예상하고 바라는 방향으로 정보를 보여주는 그런 프로그램 말이다.
신뢰할만한 프로그램은 사용자의 데이터의 무결성을 유지시켜주고 데이터 상실이나 전와될만한 것을 방지해주기 위해 가능한 모든 것을 수행한다. 또한 이러한 것들을 충분히 해결할 수 있고 충돌 없이 복잡한 상황을 처리할 수 있다.
Reliability는 소프트웨어 디자인의 모든 분야에서 중요하며, 특히 오래 실행되는 프로그램에서 더욱 중요하다.
예를 들어, 과학 프로그램은 종종 큰 데이터 셋 계산을 수행하며, 계산을 수행하는데 오랜 시간이 걸린다. 만약 이러한 프로그램이 계산 도중 충돌이 일어난다면, 과학자는 몇일 또는 몇주간의 일하는 시간을 잃어버릴 수도 있다.

Guidelines
  • 사용자 인터페이스는 예상 가능한 방식으로 작동하게 하라.
    • 같은 종류의 액션들은 각각 같은 결과를 만들어야 한다.
  • 문서에 예상 가능한 결과를 제공하라.
    • 출력에서 있어, 사용자가 화면에서 보는 컨텐츠는 출력이 되는 것과 같게 하라.(Mac OS X 프린팅 다이얼로그에서는 프린트 미리보기 옵션을 제공하고 있다)
  • 문서를 불러오거나(import) 내보낼때(export) 데이터 손실을 줄이거나 없애라.
    • 프로그램이 다른 어플리케이션의 파일을 불러오거나 가져올 때, 파일 포맷을 완벽하게 지원하라.
    • 어플리케이션이 주어진 파일 포맷에서 모든 데이터를 가져오지 못하면, 사용자에게 데이터 손실이 일어날 수도 있다는 경고를 하고 원본 파일의 복사본에서 작업할 수 있는 옵션을 제공하라.
  • 다양한 환경에서 소프트웨어를 테스트하고 적절하게 반응하지는 검증하라.
    • 네트워크가 다운되거나 마운트된 볼륨이 사라지는지에 대해 시뮬레이션하고 소프트웨어가 적절하게 반응하고 처리하는지 확실하게 하라.
  • 패키징시 소프트웨어가 시스템 요구사항을 명확히 표기하라.
    • 소프트웨어가 저사양 하드웨어에서 테스트할 때까지 저사양 하드웨어에서 돌아간다고 가정하지 마라.
    • 마찬가지로, 지원하는 Mac OS X버전을 표기하라.
  • 에러를 예측하고 우아하게 다뤄라.
    • 함수가 결과 코드를 반환하면, 문제가 있는지 적절하게 반응하지는지에 대해 체크하라.
    • 또한 에러를 잡기 위해 예외 처리자를 사용할 수 있다.; 그러나, 최소한응로 사용하라.
    • 예외 처리자는 어플리케이션의 메모리가 차지하는 공간을 증가시키며 이는 performance를 떨어뜨린다.
  • 사용자 입력이 예상한대로 입력된 것인지 확실히 하기 위해 사용자 입력의 유효성을 확인하라.
    • 형식지정자(formatter object)는 사용자가 숫자와 날짜를 올바르게 입력할 수 있도록 도와준다.
    • 문제가 발생하는 것을 막기 위해 코드에서 사용자 입력 데이터의 유효성을 확인해야 한다.
  • 메모리 누수와 코드에서 발생하는 다른 문제들을 찾기 위해 애플이 제공하는 performance와 debugging 툴을 사용하라.
    • 이러한 툴들은 개발자가 알지 못하는 숨겨진 버그를 찾아낸다.
  • Legacy API보다는 modern API를 선택하라.
    • Modern API는 legacy API보다 더나은 시스템 설정 처리를 제공한다.
  • 커스텀 API을 시스템과 표준 기반의 API에 속하게 하라.
    • (표준 방식에 맞추라는 의미인듯)

출처 : Apple Human Interface Guidelines