본문 바로가기

iOS/UIUX

(20)
[HIG] App Architecture: Requesting Permission, 권한 요청 앱이 사용자의 개인적인 정보에 접근하려면 사용자가 권한을 반드시 부여해야 한다. 개인적인 정보에는 현재 위치, 달력(Calendar), 연락처(contact information), 리마인더, 사진 등이 있다. 사용자는 이러한 민감한 정보에 접근하는 앱들이 편의성을 제공한다는 것을 인식하고 있지만, 사용자는 개인적인 정보를 제어하길 원한다. 예를 들어, 사용자는 근처의 친구를 찾거나 사진 태그에 실제 장소를 자동으로 달아주길 기대하면서도 이러한 기능들을 정지할 수 있는 옵션을 원한다. 언제 어떻게 사용자에게 개인 정보를 요구해야할까? 1. 앱이 반드시 필요로 할 때만 개인 정보를 요구하는 것이 좋다. 앱이 분명히 필요하지 않은 상황에서도 개인정보 접근을 요청한다면 의심을 받기 쉽다. 예를 들어, 날씨 앱..
[HIG] App Architecture: Navigation, 네비게이션 앱을 사용하는 사람들은 앱의 네비게이션의 존재를 인식하지 못한다. 앱을 제작하는 사람들은 네비게이션에 주의를 끌지 않고 앱의 목적과 구조를 도와주기 위해 네비게이션을 구현해야 한다. 네비게이션은 자연스럽고 친숙해야 한다. 또한, 인터페이스를 지배해선 안되며 컨텐츠의 주의를 빼앗으면 안된다. iOS에는 3 가지 네비게이션 스타일이 존재한다. iOS 네비게이션 스타일 1. 계층 네비게이션 (Hierarchical Navigation) 목적지에 도달하기 전까지 화면마다 하나의 선택을 한다. 사용자가 다른 선택을 원할 수도 있으므로, 처음부터 시작하거나 뒤로 네비게이션을 탐색할 수 있어야 한다. 메일 앱이나 설정(Settings)앱이 계층 방식에 속한다. 2. 평면 네비게이션 (Flat Navigation) 여..
[HIG] App Architecture : Modality, 모달리티 모달리티(Modality)란 임시적 형태 안에 컨텐츠를 표현하는 디자인 기술 중 하나다. 모달리티는 사용자의 이전 문맥과는 구별되어야 한다. 모달리티는 나가기(exit)를 할 수 있는 명시적인 행동을 할 수 있어야 한다. 왜 모달을 사용할까? 컨텐츠를 모달하게 표현하면 어떠한 장점이 있을까? 자기 충족(self-contained)적, 독립적인(앞선 문맥과 구별된) 작업에 집중할 수 있도록 한다. 사람들이 매우 중요한 정보를 받을 수 있도록 하거나, 중요한 정보에 대해 동작할 수 있도록 한다. iOS는 알람(Alerts), 액티비티 뷰(또는 쉐어 시트), 그리고 액션 시트를 제공한다. 앱은 커스텀 모달을 보여줄 수도 있는데, iOS 13과 이후 버전은 아래의 표현 방식을 제공한다. 시트, Sheet 시트는..
[HIG] App Architecture : Loading, 로딩 앱에서 컨텐츠가 로딩될 때, 앱은 사용자에게 어떤 화면을 보여줘야 할까? 단순히 빈(blank)화면이나 정적(static)인 화면을 보여주는 것은 사용자가 앱이 멈춘 것처럼 느끼게 한다. 로딩 중이라면 그것을 명확하게 표현하라. 앱이 로딩 중이라면 사용자는 최소한 액티비티 스피너를 볼 수 있어야 한다. 더 좋은 방법은, 진행상황(progress)를 보여줌으로써, 사용자가 얼만큼 더 기다려야할지를 가늠할 수 있어야 한다. 컨텐츠를 최대한 빨리 보여줘라. 사람들은 자신이 보길 원하는 화면이 곧바로 보여지길 원한다. 텍스트 플레이스홀더, 그래픽, 혹은 애니메이션을 사용하여 아직 사용불가능한 컨텐츠가 어디인지 식별하도록 해야 한다. 플레이스홀더는 컨텐츠가 사용가능한 즉시 교체하면된다. 컨텐츠가 로딩되는 도중에 ..
[HIG] App Architecture : Onboarding, 온보딩 온보딩 온보딩(Onboarding)의 뜻을 단어사전에서 찾아보면 '신입사원의 적응'으로 해석할 수 있다. 신입사원이 새로운 조직에 적응하듯, 새로운 사용자가 앱을 처음 사용할 때 적응하기 위한 과정을 온보딩이라고 한다. 온보딩 원칙 사용자가 앱을 즐길 수 있도록 도와주는 온보딩을 제공하라. 사람들은 앱에 대해 알 수 있는 기회를 받아들일 수는 있지만, 앱이 그냥 동작하기를 기대하기도 한다. 설치나 라이센스를 온보딩에 포함하지 않도록 하라. 빠르게 행동할 수 있도록 하라. 시스템이 여러분의 런치스크린을 앱의 첫화면으로 바꾸고 난 직후에 사람들이 앱을 곧바로 즐기도록 해야 한다. 만약 튜토리얼이 필요하다면, 사용자가 스킵할 수 있는 방법을 마련해야하며, 다시 튜토리얼을 자동으로 띄우지 않도록 ..
[HIG] App Architecture : Launching, 앱의 시작 1. Provide a launch screen, 런치 스크린을 제공하라. 앱 시작시 사용자가 가장 먼저 보게되는 화면 런치스크린을 어떻게 구성해야 하는가? 앱의 속도와 반응도에 좋은 인상을 심어주어야 한다. 런치스크린이 보여지는 동안 앱은 컨텐츠를 로드할 시간을 확보할 수 있다. 이음새 없는 전환(seamless transition)이 중요하므로 앱의 첫 화면과 유사한 스크린으로 디자인돼야 한다. 예를 들어, 아래의 사파리 앱의 런치 스크린은 첫 스크린과 매우 유사한 디자인을 제공하므로써 사용자는 끊김없는 전환을 경험할 수 있다. 2. Launch in the appropriate orientation, 앱을 적절한 오리엔테이션에서 런칭하라 화면 방향을 의미하는 오리엔테이션(Orientation)에는 ..
[HIG] UIKit 인터페이스 요소 3가지 1. 바(Bars) 사용자가 현재 앱 어디에 위치해 있는가를 알려줌 네비게이션 제목과 앱을 탐색할 수 있는 버튼이 이에 해당함 2. 뷰(Views) 사용자가 앱에서 보는 메인(primary) 컨텐츠임 텍스트, 그래픽, 애니메이션, 인터랙티브 요소 등이 해당됨 뷰는 스크롤링이 가능해야 하며, 뷰를 삽입하거나 삭제 또는 재배치가 가능해야 함 3. 컨트롤(Controls) 사용자가 행동을 시작하거나, 정보를 전달하려 할 때 사용함 버튼, 스위치, 텍스트 필드, 프로그레스 인디케이터 등이 컨트롤에 해당됨
[HIG] iOS Design Themes, iOS 디자인 테마 iOS 디자인 테마는 안드로이드와 같은 다른 플랫폼들과의 차이점을 만드는 요소다. 1.Clarity, 모든 요소는 뚜렷해야 한다. 시스템 전체를 아울러, 글자는 읽을 수 있어야 한다. 아이콘은 명확하고 이해할 수 있어야 한다. 장식품들은 눈에 띄어선 안되며 적절해야 한다. 기능에 명확히 집중하여 디자인에 활력을 주어라. 네가티브 스페이스, 색깔, 글자체, 그래픽, 그외 인터페이스 요소들은 중심 컨텐츠를 은은하게 눈에 띄게 해야 하며, 사용자의 입력에 반응할 수 있는 상호작용을 전달해야 한다. 2. Deference, 컨텐츠에 대한 존중 자연스러운 움직임과 분명하며 아름다운 인터페이스는 사람들이 컨텐츠를 이해할 수 있게 해주며, 컨텐츠와 상호작용할 수 있게 도와준다. 베젤, 그래디언트, 드랍 쉐도우를 최소..