앱 확장
앱 익스텐션은 사용자가 다른 앱을 사용하는 중이라도 앱의 핵심적인 기능 부분에 접근할 수 있도록 해 줌으로서 앱의 도달 범위를 넓혀준다. 예를 들어, Safari에서 웹 사이트를 보는 동안에도 사람들은 Share 익스텐션을 이용해 당신의 소셜 웹 사이트에 기사나 이미지를 포스팅 할 수 있다. 또는 Photos 앱을 사용하는 동안에도, 사진에 필터를 적용하기 위해 당신의 Photo Editing 엑스텐션을 사용할 수 있다. ( 이 시나리오에서 Safari와 Photos는 사용자가 익스텐션으로 접근할 수 있도록 하기 때문에 호스트 앱이라고 부른다.)
앱 익스텐션 기능은 앱 스토어에 제출하는 완전히 iOS 앱의 기능을 하는 앱 안에서 제공할 수 있다. (익스텐션을 가지고 있는 앱을 컨테이닝 앱이라고 한다). 컨테이닝 앱에서 익스텐션 기능을 사용가능하도록 하면, 사람들은 다른 앱을 사용하는 중이라도 빠르게 테스크를 하기 위해 사용할 수 있게 된다. 예를 들어, 이메일 메시지에서 제품에 대해 읽을 때, 사람들은 당신이 제공하는 Action 익스텐션을 이용해 메일 앱을 떠나지 않고도 그 제품을 쇼핑리스트에 더할 수 있을 것이다.
Table 17-1 당신이 만들 수 있는 앱 익스텐션 타입의 목록.
앱 확장 유형 |
앱 확장을 하는 이유 |
---|---|
투데이 위젯 |
알림 센터의 투데이 보기를 빠른 업데이트와 업무의 수행 |
공유 |
웹사이트나 공유 콘텐트의 포스팅 |
액션 |
다른 앱에서 표시되는 콘탠트의 조작이나 표시 |
사진 편집 |
사진 앱 안에 사진이나 비디오의 편집 |
문서 제공 |
파일 저장의 관리와 접근 |
커스텀 키보드 |
커스텀 키보드로 iOS 시스템 키보드 대체 |
아래의 가이드라인들은 모든 유형의 앱 확장에 적용된다; 앱 확장의 특정 유형에 대한 지도를 위해 아래의 섹션을 보아라.(개발, 디버깅, 확장을 배분하는 법을 배우고 싶다면 앱 확장 프로그래밍 가이드를 보아라.)
싱글 태스크를 가능하게 하라. 앱 확장은 앱의 작은 버전이 아니다. 대신에, 확장은 사용자들의 더 큰 목표의 맥락에서 좁은 범위의 테스크를 수행한다. 예를 들어, 액션 확장은 현재의 컨탠츠를 보기위한 다른 방법을 사용자들에게 줄 것이다.
제한적이고 현대적인 상호작용을 유지하라. 가장 좋은 앱 확장은 사용자들이 가능한한 빨리 이전상황으로 돌아갈 수 있도록 단지 몇번의 터치만으로 작업을 수행할 수 있게하는 것이다. 예를 들어, 공유 확장은 사람들이 한번의 터치로 이미지를 포스팅하게 할 수 았다.
컨테이닝 앱의 이름을 제공하는 각각의 익스텐션 안에 포함시켜라. 하나의 컨테이닝 앱에 다중의 익스텐션이 있는 경우 구별되는 이름을 가질 수 있지만, 사용자들이 익스텐션과 앱 사이의 관계를 이해할 수 있길 원할 것이다. 사람들은 수 많은 다양한 컨텍스트에서 익스텐션들을 만날 것이며, 알아보지 못하는 익스텐션은 믿으려 하지 않을 것이다.
대부분의 경우, 컨테이닝 앱의 아이콘을 사용하라. 친숙한 아이콘을 표시하는 것은 익스텐션이 사용자의 신뢰를 얻는 또 다른 방법이다. '액션' 익스텐션의 경우, 컨테이닝 앱의 단일 톤 버전을 이용하라 (자세한 정보는 '공유' 와 '액션' 익스텐션를 보라).
익스텐션 위에서 모달 뷰를 디스플레이 하지 마라. 많은 익스텐션들은 기본적으로 모달 뷰 안에서 표시되며, 모달의 계층을 만드는 것은 피하는 게 좋다.사용자가 익스텐션 위에서 경고를 보는 경우는 있을 수 있겠지만, 익스텐션의 작업 흐름을 모달 뷰가 필요하도록 만들지 마라.
투데이 위젯
사람들은 알림센터의 '투데이'영역에서 투데이 위젯을 본다. 사람들에게 가장 가치있는 정보를 표시하도록 사람들이 '투데이' 영역을 구성하기 때문에, 사용자의 가장 중요한 항목들의 위치 획득의 목적으로 위젯을 디자인해라.
Design an appearance that looks at home in Notification Center. 당신이 알림센터에서 제공하는 기본 여백과 배경을 사용할 때, 투데이 위젯은 일관되게 보여질 것이다. 최고의 결과를 위해, 배경이나 기타 자료가 아닌 당신의 콘텐트에 초점을 맟추어라. 특히, 입체적인 배경을 피해라.
위젯의 제목과 내용의 정렬. 위젯 내용이 제목에 맞춰 정렬 할 때, 사람들은 쉽게 그들이 원하는 위젯의 투데이 뷰를 검색 할 수 있다. 투데이 뷰에서 여백을 주로 사용해야 하고, 여기에 표시된 위젯 컨텐츠 영역에 내용을 자제해라.
일반적으로, 보여지는 문자는 하얀색의 시스탬 폰트를 사용해라.
하얀색 문자는 기본 알림 센터 배경 위에서 잘보인다. 보조 문자에는 시스템에서 제공하는 선명한 것을 사용해라.(이 것에대해 자세한 내용은 notificationCenterVibrancyEffect
를 보아라.)
Provide a Notification Center experience. 사람들은 알림센터를 업데이트를 위해 잠시 방문하거나 간단한 일을 하기위해 방문하기 떄문에, so it’s best when your Today widget displays the right amount of information and limits interactivity. Specifically:
사용자가 투데이 위젯에서 모든 정보를 보기 위해 스크롤이나 수직적으로 이동하지 않게 해라. 위젯은 더 많은 정보를 보여주기 위해 수직적 확장을 할 수 있지만, 이것은 다른 투데이 위젯이 보기위해 스크롤 하는 것을 간섭 하기 때문에, 위젯의 높이가 알림 센터의 높이를 초과할 경우 좋지 않다.
알릶센터 영역 사이에서의 navigation에 간섭이 되기 때문에, 수평적 이동이나 드레그를 가능하게 하지 말아라.
되도록이면, 사용자들이 한번의 터치로 앱이 수행되도록 하여라.(투데이 위젯 내에서는 키보드 사용이 불가한 것을 주의하라.)
사용자가 유용한 정보를 바로 얻을수 있도록 하기위해 최적화 시켜라. 당신이 업데이트를 하는 동안 최신 정보를 표시할 수 있도록 부분적으로 정보를 숨기는 것이 좋다. 사람들은 투데이 뷰에 시간을 거의 쓰지 않는다. 그리고 iOS는 투데이 위젯이 메모리를 많이 잡아먹는다면 종료시킬 것이다.
If appropriate, 사람들이 당신의 앱을 실행하기 위해 투데이 위젯을 터치하게 해라. Because your Today widget provides a narrowly focused experience, it can work well to direct people to your app for more information or functionality. "앱 실행"버튼을 제공하는 것은 좋은 생각이 아니다. 하나의 해결책으로는 투데이 위젯 전체를 터치 가능하게 만드는 것이다. 혹은 대상에 초점을 두고 앱을 실행하도록 하기 위해사용자들이 위젯 안에 적절한 UI대상을 터치하도록 해야 합니다. 예를 들어, 달력 위젯은 오늘의 이벤트를 보여준다. 만약 사용자들이 더많은 이벤트에 대한 정보를 얻기 원한다면, 달력 앱 안에서 보기위해, 위젯 안에 이벤트를 터치할 수 있다.
Share and Action Extensions
People access Share and Action extensions by tapping the Action button in an app. In the activity view controller displayed by the Action button, Action extensions are listed in the bottom row and Share extensions are listed above them. People can use the More buttons to manage the Share and Action extensions that are displayed in the activity view controller shown here.
A Share or Action extension typically takes as input the content in the user’s current context. While reading an article in Safari, for example, a user might tap the Action button and use a Share extension to post the article to a sharing website or use an Action extension to view a translation of the article.
가능한한, 공유 확장을 하는데에 시스템 제공 UI를사용해라. The system-provided compose view controller gives users a consistent experience and automatically supports common tasks, such as previewing and validating standard items, synchronizing content and view animation, and configuring a post. To learn more about using the system-provided compose view controller, see Share in App Extension Programming Guide.
Consider displaying the progress of a lengthy upload in a Share extension’s containing app. People expect to return to their previous context immediately after tapping an extension’s Post or Share button, even when the shared content is large. You need to make progress updates available, but people don’t want to get a notification every time an upload completes, and there’s no way to programmatically relaunch an extension. In this scenario, it can work well to display the progress of the upload in the containing app, which can handle the task in the background and send a notification if there’s a problem.
Use a monochromatic version of the app icon for an Action extension. (In contrast, a Share extension uses its containing app’s full-color app icon.) To create an icon for an Action extension, you might start by creating a stencil version of your app icon. If necessary, simplify the design by focusing on the elements that make your icon unique.
If you provide multiple Action extensions in your containing app, it can work well to create a family of icons for them. Be sure to make every icon in the family look related to the containing app’s icon.
사진 편집 확장
사진 앱에서 비디오나 사진을 보는 동안 사진 편집 확장을 사용할 수 있다. 전형적으로, 사진 편집 확장은 사용자에게 필터를 제공하거나 사진, 동영상의 편집을 하게한다. 편집 후 변화에 대한 승인 후에는 편집된 항목은 사진앱에서 사용할 수 있다.
사진은 사진 편집 확장의 커스텀 UI를 표시하는 모달 뷰를 제공한다. 사진은 사진, 동영상의 편집 후에 '취소'를 눌렀을 때 확인 메세지를 표시 할 수 있다. (you’re responsible for enabling this behavior in code).
사진 편집 확장에서 네비게이션 바를 사용하지 말아라. 여기서 볼 수 있는거 처럼, 확장 뷰애 둘러쌓인 모달 뷰는 이미 네비게이션 바를 포함하고 있다; 다른 네비게이션 바를 추가하는 것은 사용자를 혼잔시키고 UI공간을 낭비 할 수있다.(자연스럽게 사진은 화면에 꽉차게 표시해야 하고, 컨텐츠 밑면에 네비게이션 바를 표시한다.
가능하다면, 사용자들이 편집에 대한 미리보기를 볼 수있게해라. 사용자가 사진으로 돌아가거나 확장을 끈내기 전에 사용자의 작업에 대한 결과를 볼 수 있게 하길 원한다.
문서 제공 확장
A Document Provider extension helps people access the documents that your app manages from a wide range of other apps. 호스트 앱에서 문서 피커 뷰 컨트롤러는 확장 제공 UI를 표시한다. (문서 피커 뷰 컨트롤러에 대해 더 알고 싶다면, UIDocumentPickerViewController Class Reference 를 보아라).
문서 제공 확장에 네비게이션바의 사용을 피해라. iOS는기본문서 피커 뷰 컨트롤러의 인터페이스에 네비계이션바 안에 확장 커스텀 UI를 표시한다. 내장된 바 밑에 2번쨰 네이게이션바를 표시하는것은 사용자에게 혼란을 주고 컨텐츠의 공간을 차지한다. (문서 피커 뷰 컨트롤러는 전체 화면으로 당신의 뷰를 표시한다, 그래서 당신의 콘텐츠의 아래쪽에 네비게이션 바를 사용해야 한다.)
커스텀 키보드
사람들은 시스템을 통한 커스텀 키보드로 iOS 키보를 대체하기 위해 키보드 확장을 사용한다. 키보드 확장을 가능하게 한 후에, 사람들은 보안 문자 입력 분야(비밀번호 같은)와 과 전화 패드 분야(연락처에 전화번호같은)를 제외한 문자 입력시에 커스텀 키보드를 사용한다.
사용자들에게 다음 키보드를 바꾸는 명밷한 방법을 제공해라. 사람들은 iOS 글로벌 키에 매우 익숙해 있고, 커스텀 키보드로 이와 비슷한 경험을 하게되기를 기대한다.
Case Study: From Desktop to iOS
Copyright © 2015 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2015-01-12