Xamarin의 watchOS 3에 대 한 빠른 상호 작용 기술Quick Interaction Techniques for watchOS 3 in Xamarin

이 문서에서는 watchOS 3에 추가 된 빠른 상호 작용 기술에 대해 설명 하 고, Apple Watch를 위해 Xamarin.ios에서이를 구현 하는 방법에 대해 설명 합니다.This article covers the quick interaction techniques Apple has added in watchOS 3 and how to implement them in Xamarin.iOS for Apple Watch.

빠른 사용자 상호 작용을 제공 하는 것은 뛰어난 Apple Watch 앱 및 복잡 한 문제를 만드는 데 필수적입니다.Providing quick user interactions are essential to creating compelling Apple Watch apps and Complications. WatchOS 3에 새로 추가 된 Apple에는 제스처 인식기, Digital Crown에 대 한 액세스 및 새로운 사용자 알림과 탐색 기술에 대 한 지원이 추가 되었습니다.New to watchOS 3, Apple has added support for Gesture Recognizers, access to the Digital Crown and new User Notification and navigation techniques. SceneKit 및 SpriteKit 모두에 대 한 추가 지원과 함께 개발자는 빠르고 응답성이 뛰어난 풍부한 glanceable 인터페이스를 쉽게 만들 수 있습니다.This, along with added support for both SceneKit and SpriteKit, allow the developer to easily create rich, glanceable interfaces that are both quick and responsive.

빠른 상호 작용 이란?What are Quick Interactions

IOS 또는 macOS 용 응용 프로그램을 만드는 데 사용 하는 개발자의 경우 (사용자가 앱과 상호 작용 하는 데 걸린 시간을 분 또는 시간 단위로 측정) Apple Watch에 대 한 성공적인 응용 프로그램을 디자인 하는 것은 어려울 수 있으며 다른 요구 사항이 필요 합니다. 접근.For a developer that is used to creating applications for iOS or macOS (where the amount of time that a user spends interacting with the app is measured in minutes or hours), designing a successful app for the Apple Watch can be a challenge and requires a different approach.

WatchOS에서 일반적으로 사용자는 손목를 올리고 앱과 신속 하 게 상호 작용 하 고 (일반적으로 몇 초 정도), 손목를 삭제 하 고 수행 하는 모든 작업을 계속 하려고 합니다.In watchOS, the user typically wants to raise their wrist, quickly interact with an app (usually for a brief couple of seconds), then drop their wrist and continue whatever it was that they were doing.

다음은 Apple Watch의 일반적인 빠른 상호 작용에 대 한 몇 가지 예입니다.The following are a few examples of typical quick interactions on the Apple Watch:

  • 타이머를 시작 합니다.Starting a timer.
  • 날씨를 확인 하는 중입니다.Checking the weather.
  • 항목을 todo 목록에서 표시 하지 않습니다.Marking an item off a todo list.

이러한 목표를 달성 하려면 Apple Watch 앱은 다음과 같아야 합니다.To achieve these goals, an app on the Apple Watch must be:

  • Glanceable -사용자가 필요한 정보를 신속 하 게 파악할 수 있음을 의미 합니다.Glanceable - Which means that with a quick glance the user should be able to get the information that they need.
  • 작업 가능-사용자 가 신속 하 고 정확한 의사 결정을 내릴 수 있음을 의미 합니다.Actionable - Which means users should be able to make quick, well-informed decisions.
  • 응답성 -사용자가 필요한 정보를 수신 하거나 원하는 작업을 얻기 위해 대기 하지 않아야 합니다.Responsive - Which means the user should never wait to receive the info that they need or to achieve the action they desire.

빠른 조작 길이Quick Interactions Length

Apple Watch 앱의 glanceable 특성 때문에 Apple은 빠른 상호 작용의 이상적인 길이가 2 초이 하 여야 함을 제안 합니다.Because of the glanceable nature of Apple Watch apps, Apple suggests that the ideal length of a quick interaction should be two seconds or less. 이 두 번째 제한의 결과로 개발자는 Apple Watch 앱을 설계 하 고 구현 하는 데 상당한 시간을 소비 해야 합니다.As a result of this two second limit, the developer will need to spend a considerable amount of time both designing and implementing an Apple Watch app.

New watchOS 3 기능 및 ApiNew watchOS 3 Features and APIs

Apple은 개발자가 Apple Watch 앱에 신속 하 게 상호 작용 하는 데 도움을 주는 몇 가지 새로운 기능과 Api를 WatchKit에 추가 했습니다.Apple has added several new features and APIs to WatchKit to assist the developer in adding quick interactions to their Apple Watch apps:

  • watchOS 3은 다음과 같은 새로운 종류의 사용자 입력에 대 한 액세스를 제공 합니다.watchOS 3 provides access to new kinds of user input such as:
    • 제스처 인식기Gesture Recognizers
    • Digital Crown 회전Digital Crown rotation
  • watchOS 3은 다음과 같이 정보를 표시 하 고 업데이트 하는 새로운 방법을 제공 합니다.watchOS 3 provides new ways of displaying and updating information, such as:
    • 향상 된 테이블 탐색Enhanced Table navigation
    • 새 사용자 알림 프레임 워크 지원New User Notification framework support
    • SpriteKit 및 SceneKit 통합SpriteKit and SceneKit integration

개발자는 이러한 새로운 기능을 구현 하 여 watchOS 3 앱이 Glanceable, 실행 가능 하 고 응답성을 보장할 수 있습니다.By implementing these new features, the developer can ensure that their watchOS 3 app is Glanceable, Actionable and Responsive.

제스처 인식기 지원Gesture Recognizer Support

개발자가 iOS에서 제스처 인식기를 구현한 경우 watchOS 3에서 제스처 인식기가 작동 하는 방식에 대해 잘 알고 있어야 합니다.If the developer has implemented Gesture Recognizers in iOS, they should be very familiar with how Gesture Recognizers work in watchOS 3. 새로 고치려면 제스처 인식기는 하위 수준 터치 이벤트를 인식할 수 있는 미리 정의 된 제스처로 구문 분석 하는 개체입니다.To refresh, Gesture Recognizers are objects that parse low-level touch events into recognizable, pre-defined gestures.

watchOS 3은 다음 네 가지 제스처 인식자를 지원 합니다.watchOS 3 will support the four following Gesture Recognizers:

  • 불연속 제스처 유형:Discrete gestures types:
    • 살짝 밀기 제스처 (WKSwipeGestureRecognizer)입니다.The Swipe Gesture (WKSwipeGestureRecognizer).
    • 탭 제스처 (WKTapGestureRecognizer)입니다.The Tap Gesture (WKTapGestureRecognizer).
  • 연속 제스처 유형:Continuous gesture types:
    • 이동 제스처 (WKPanGestureRecognizer)입니다.The Pan Gesture (WKPanGestureRecognizer).
    • 길게 누르기 제스처 (WKLongPressGestureRecognizer)입니다.The Long-Press Gesture (WKLongPressGestureRecognizer).

새 제스처 인식기 중 하나를 구현 하려면 Mac용 Visual Studio에서 iOS 디자이너의 디자인 화면으로 끌어 놓고 해당 속성을 구성 하면 됩니다.To implement one of the new Gesture Recognizers, simply drag it onto a design surface in the iOS Designer in Visual Studio for Mac and configure its properties.

코드에서 인식기의 작업에 응답 하 여 사용자가 트리거하는 제스처를 처리 합니다.In code, respond to the Action of the recognizer to handle the gesture being triggered by the user. 이는 iOS에서 처리 되는 것과 동일한 방식으로 수행 됩니다.Again, this is done in the same way as it would be handled in iOS.

불연속 제스처 상태Discrete Gesture States

불연속 제스처의 경우 동작은 제스처가 인식 되 고 상태 (WKGestureRecognizerState)는 다음과 같이 할당 될 때 호출 됩니다.For Discrete Gestures, the Action is called when the gesture is recognized and a State (WKGestureRecognizerState) is assigned as:

모든 불연속 제스처는 Possible 상태에서 시작 하 여 Failed 또는 Recognized 상태로 전환 합니다.All Discrete Gestures start out in the Possible state and transition into either the Failed or Recognized state. 불연속 제스처를 사용 하는 경우 개발자는 일반적으로 상태를 직접 처리 하지 않습니다.When using Discrete Gestures, the developer generally doesn't deal directly with the State. 대신 제스처가 인식 될 때 호출 되는 작업에 의존 합니다.Instead, they rely on the Action being called when the gesture is recognized only.

연속 제스처 상태Continuous Gesture States

연속 제스처는 제스처가 인식 될 때 동작을 여러 번 호출 하는 불연속 제스처와 약간 다릅니다.Continuous Gestures are slightly different from Discrete Gestures, where the Action is called multiple times as the gesture is being recognized:

다시, 연속 제스처가 Possible 상태에서 시작 되지만 여러 업데이트를 통해 진행 됩니다.Again, Continuous Gestures starts out in the Possible state, but they progress over multiple updates. 여기서 개발자는 제스처의 상태를 고려 하 고 제스처를 마지막으로 Recognized 하거나 Canceled때까지 Changed 단계에서 앱의 UI를 업데이트 해야 합니다.Here the developer will need to consider recognizer's state and update the app's UI during the Changed phase until the gesture is finally Recognized or Canceled.

제스처 인식기 사용 팁Gesture Recognizer Usage Tips

WatchOS 3에서 제스처 인식기를 사용 하 여 작업 하는 경우 Apple에서 다음을 제안 합니다.Apple suggest the following when working with Gesture Recognizers in watchOS 3:

  • 개별 컨트롤 대신 요소를 그룹화 하는 제스처 인식기를 추가 합니다.Add the Gesture Recognizers to Group Elements instead of individual Controls. Apple Watch의 실제 화면 크기가 작으므로 그룹 요소는 사용자가 적중 하는 데 더 크고 더 쉬운 대상이 될 수 있습니다.Since the Apple Watch has a smaller physical screen size, Group Elements tend to be bigger and easier targets for the user to hit. 또한 제스처 인식자는 네이티브 UI 컨트롤에 이미 있는 기본 제공 제스처와 충돌할 수 있습니다.Also, the Gesture Recognizers can conflict with built in gestures already in the native UI Controls.
  • Watch 앱의 스토리 보드에서 종속성 관계를 설정 합니다.Set dependency relationships in the watch app's Storyboard.
  • 일부 제스처는 다음과 같은 다른 제스처 형식 보다 우선적으로 적용 됩니다.Some gesture take precedence over other gesture types, such as:
    • 스크롤Scrolling
    • Force TouchForce Touch

Digital Crown 회전Digital Crown Rotation

개발자는 watchOS 3 앱에서 Digital Crown 지원을 구현 하 여 사용자에 게 향상 된 탐색 속도 및 전체 자릿수 상호 작용을 제공할 수 있습니다.By implementing Digital Crown Support in their watchOS 3 apps, a developer can provide increased navigation speed and precision interactions for their users.

WatchOS 2에서 Apple Watch 앱은 WKInterfacePicker 개체를 사용 하 여 WKPickerItems 목록과 선택기 스타일 (목록, 누적 또는 이미지 시퀀스)을 제공 하 여 Digital Crown에 액세스할 수 있습니다.Since watchOS 2, Apple Watch app's could use the WKInterfacePicker object to access the Digital Crown by providing a list of WKPickerItems and a Picker Style (List, Stacked or Image Sequence). watchOS 사용자가 Digital Crown를 사용 하 여 목록에서 항목을 선택할 수 있습니다.watchOS then allowed the user to use the Digital Crown to select an item from the list.

WKInterfacePicker사용 하는 경우 WatchKit는 다음을 수행 하 여 대부분의 작업을 처리 합니다.When using a WKInterfacePicker, WatchKit is handling most of the work by:

  • 목록과 개별 인터페이스 요소를 그립니다.Drawing the list and the individual interface elements.
  • Digital Crown 이벤트를 처리 하 고 있습니다.Processing the Digital Crown events.
  • 항목을 선택할 때 동작을 호출 합니다.Calling an Action when an item is selected.

WatchOS 3의 새로운 기능으로 개발자는 회전 값에 응답 하는 자체 UI 요소를 만들 수 있도록 하는 Digital Crown 회전 이벤트에 직접 액세스할 수 있습니다.New to watchOS 3, the developer now has direct access to the Digital Crown rotation events which allows them to create their own UI elements that respond to rotation values.

Digital Crown 액세스는 다음 요소에 의해 제공 됩니다.Digital Crown access is provided by the following elements:

  • WKCrownSequencer-초당 회전에 대 한 액세스를 제공 합니다.WKCrownSequencer - Provides access to rotations per second.
  • WKCrownDelegate-회전 델타 이벤트에 대 한 액세스를 제공 합니다.WKCrownDelegate - Provides access to rotational delta events.

초당 회전Rotations Per Second

Digital Crown에서 초당 회전에 액세스 하면 물리학 기반 애니메이션을 사용할 때 유용 합니다.Accessing the Rotations Per Second from the Digital Crown is useful when working with physics based animations. 초당 회전에 액세스 하려면 조사식 확장 WKInterfaceControllerCrownSequencer 속성을 사용 합니다.To access the Rotations Per Second, use the CrownSequencer property of the WKInterfaceController of the Watch Extension. 예를 들면,For example:

var rotationsPerSecond = CrownSequencer.RotationsPerSecond;

회전 델타Rotational Deltas

Digital Crown의 회전 델타를 사용 하 여 회전 수를 계산 합니다.Use the Rotational Deltas from the Digital Crown to count the number of rotations. WKCrownDelegateCrownDidRotate override 메서드를 사용 하 여 회전 델타에 액세스 합니다.Use the CrownDidRotate override method of the WKCrownDelegate to access the Rotational Deltas. 예를 들면,For example:

using System;
using WatchKit;
using Foundation;

namespace MonkeyWatch.MonkeySeeExtension
{
  public class CrownDelegate : WKCrownDelegate
  {
    #region Computed Properties
    public double AccumulatedRotations { get; set;}
    #endregion

    #region Constructors
    public CrownDelegate ()
    {
    }
    #endregion

    #region Override Methods
    public override void CrownDidRotate (WKCrownSequencer crownSequencer, double rotationalDelta)
    {
      base.CrownDidRotate (crownSequencer, rotationalDelta);

      // Accumulate rotations
      AccumulatedRotations += rotationalDelta;
    }
    #endregion
  }
}

여기서 앱은 회전 수를 결정 하는 누적 (AccumulatedRotations)을 유지 관리 합니다.Here the app maintains an accumulator (AccumulatedRotations) to determine the number of rotations. Digital Crown의 전체 회전 중 하나가 누적 된 델타 1.0와 같으며 절반 회전이 0.5됩니다.One full rotation of the Digital Crown is equal to an accumulated delta of 1.0 and a half rotation would be 0.5.

Apple은 업데이트 되는 UI 요소의 변경 내용 민감도에 따라 회전 수가 어떻게 달라 지는 지를 개발자에 게 나갔습니다.Apple has left it up to the developer to determine how the rotation counts correspond to the sensitivity of changes on the UI element being updated.

회전 델타의 부호 (+/-)는 사용자가 Digital Crown를 설정 하는 방향을 나타냅니다.The sign (+/-) of the Rotational Delta indicates the direction that the user is turning the Digital Crown:

사용자가 스크롤하면 WatchKit는 긍정 델타를 반환 하 고 아래로 스크롤하면 사용자가 감시를 제공 하는 방향에 관계 없이 음수 델타가 반환 됩니다.If the user is scrolling up, WatchKit will return positive deltas and if scrolling down, then negative deltas will be returned, no matter what orientation the user is wearing the watch in.

포커스 Digital CrownDigital Crown Focus

다른 인터페이스 요소와 마찬가지로 Digital Crown에는 포커스 개념이 있습니다.Just like any other interface elements, the Digital Crown has the concept of Focus. 사용자가 watch와 상호 작용 하는 방법에 따라이 포커스를 Digital Crown에서 다른 인터페이스 요소로 이동할 수 있습니다.This Focus can be shifted away from the Digital Crown to other interface elements based on how the user is interacting with the watch.

예를 들어 다음 컨트롤은 Digital Crown 포커스를 도용할 수 있습니다.For example, any of the following controls could steal the Focus of the Digital Crown:

  • 선택기Picker
  • 슬라이더Slider
  • 스크롤 컨트롤러Scrolling Controller

개발자는 사용자 지정 인터페이스 요소가 Digital Crown 포커스 여야 하는 시기를 결정 해야 합니다.It is up to the developer to determine when their custom interface element needs to be the Focus of the Digital Crown. Apple은 새 제스처 인식기를 사용 하 여 사용자 지정 UI 요소에 포커스를 얻는 것을 제안 합니다.Apple suggests using the new Gesture Recognizers to gain focus in the custom UI element.

세로 페이징Vertical Paging

사용자가 watchOS 앱의 테이블 뷰를 탐색 하는 표준 방법은 원하는 데이터 조각으로 스크롤하고 특정 행을 탭 하 여 자세한 보기를 표시 하 고 세부 정보를 볼 때 뒤로 단추를 탭 한 다음,이 프로세스를 반복 하 여 y는 테이블 내에서에 관심이 있습니다.The standard way that a user navigates a Table View in a watchOS app is to scroll to the desired piece of data, tap on a specific row to display the Detailed View, tap the back button when finished viewing the details and repeat the process for any other information that they are interested in from within the table:

WatchOS 3의 새로운 기능으로, 개발자는 해당 테이블 뷰 컨트롤에서 수직 페이징을 사용 하도록 설정할 수 있습니다.New to watchOS 3, the developer can enable Vertical Paging on their Table View controls. 이 기능을 사용 하도록 설정 하면 사용자는 스크롤하여 테이블 뷰 행을 찾고 행을 탭 하 여 이전과 같이 세부 정보를 볼 수 있습니다.With this feature enabled, the user can scroll to find a Table View row and tap the row to view its detail as before. 그러나 이제는 먼저 테이블 뷰로 돌아갈 필요 없이 테이블의 다음 행을 선택 하거나 아래로 이동 하 여 이전 행을 선택 하거나 Digital Crown를 사용할 수 있습니다.However, they can now swipe up to select the next row in the table or down to select the previous row (or use the Digital Crown), all without having to return to the Table View first:

이 모드를 사용 하도록 설정 하려면 Xcode에서 편집할 watchOS 앱의 스토리 보드를 열고, 테이블 뷰를 선택 하 고, 세로 세부 정보 페이징 확인란을 선택 합니다.To enable this mode, open the watchOS app's Storyboard in Xcode for editing, select the Table View and check the Vertical Detail Paging checkbox:

테이블에서 Segue를 사용 하 여 자세히 보기를 표시 하 고 스토리 보드에 변경 내용을 저장 한 다음 Mac용 Visual Studio로 반환 하 여 동기화 해야 합니다.Ensure that the Table is using Segues to display the Detailed View and Save the changes to the Storyboard and return to Visual Studio for Mac to sync.

개발자는 테이블 뷰에 대해 다음 코드를 사용 하 여 프로그래밍 방식으로 특정 행에 대 한 수직 페이징을 수행할 수 있습니다.The developer can programmatically engage Vertical Paging to a specific row using the following code against a Table View:

// Segue into Vertical Paging and select the first row
MenuTable.PerformSegue (0);

수직 페이징을 사용 하는 경우 개발자는 WatchKit가 컨트롤러의 미리 로드를 자동으로 처리 하 고 결과적으로 UI가 실제로 표시 되기 전에 일부 컨트롤러 수명 주기 메서드를 호출할 수 있음을 알고 있어야 합니다.When using Vertical Paging, the developer needs to be aware that WatchKit will automatically handle the preloading of controllers and as a result, some controller lifecycle methods can be called before the UI is actually visible.

알림 기능 향상Notification Enhancements

알림은 사용자가 일반적으로 watchOS에서 경험 하 고 첫 번째 Apple Watch watchOS 1부터 사용할 수 있는 빠른 상호 작용의 기본 형식입니다.Notification are the primary form of Quick Interaction that a user typically experiences on watchOS and have been available since the first Apple Watch and watchOS 1.

일반적인 알림 빠른 상호 작용은 다음과 같습니다.A typical Notification Quick Interaction is as follows:

  1. 새 알림이 수신 될 때 사용자에 게 알림이 햅.The user feels the Notification Haptic when a new Notification is received.
  2. 손목를 발생 시켜 알림에 대 한 간단한 모양 인터페이스를 확인 합니다.They raise their wrist to see the Short Look interface for the Notification.
  3. 손목 계속 해 서 계속 발생 하는 경우 watchOS가 자동으로 긴 모양 알림 인터페이스로 전환 됩니다.If they continue to keep their wrist raised, watchOS automatically transitions into the Long Look Notification interface.

사용자가 알림에 응답 하는 방법에는 여러 가지가 있습니다.There are several ways that a user may respond to the Notification:

  • 잘 정의 되 고 표시 된 알림의 경우에는 사용자가 아무 작업도 수행 하지 않고 알림을 해제 하면 됩니다.For a well defined and presented Notification, the user will do nothing and simply dismiss the Notification.
  • WatchOS 앱을 시작 하는 알림을 탭 할 수도 있습니다.They might also tap of the Notification to launch the watchOS app.
  • 사용자 지정 작업을 지 원하는 알림의 경우 사용자가 사용자 지정 작업 중 하나를 선택할 수 있습니다.For a Notification that supports Custom Actions, the user might select one of the custom actions. 다음 중 하나일 수 있습니다.These can either be:
    • 포그라운드 작업 -앱을 시작 하 여 작업을 수행 합니다.Foreground Actions - These launch the app to perform the action.
    • 백그라운드 작업 -항상 watchOS 2의 iPhone으로 라우팅되고 watchOS 3의 watchApp로 라우팅할 수 있습니다.Background Actions - Were always routed to the iPhone in watchOS 2 but can be routed to the watchApp in watchOS 3.

WatchOS 3의 새로운 작업:New for watchOS 3:

  • 알림은 모든 플랫폼 (iOS, watchOS, tvOS 및 macOS)에서 비슷한 API를 사용 합니다.Notification use a similar API across all platforms (iOS, watchOS, tvOS and macOS).
  • Apple Watch에서 로컬 알림을 예약할 수 있습니다.Local Notification can be scheduled on the Apple Watch.
  • 백그라운드 알림은 Apple Watch에 예약 된 경우 앱의 확장으로 라우팅됩니다.Background Notification will be routed to the app's Extension if they were scheduled on the Apple Watch.

알림 예약 및 배달Notification Scheduling and Delivery

사용자의 iPhone에서 알림은 다음과 같은 경우에 Apple Watch 전달 됩니다.Notification from the user's iPhone will be forward to the Apple Watch when the following occurs:

  • IPhone의 화면이 꺼져 있습니다.The iPhone's screen is off.
  • Apple Watch 마모 되었으며 잠금이 해제 되었습니다.The Apple Watch is being worn and has been unlocked.

WatchOS 3에서 로컬 알림은 Apple Watch 예약할 수 있으며, 시계로만 제공 됩니다.In watchOS 3, Local Notifications can be scheduled on the Apple Watch and are only delivered on the watch. 앱에 필요한 경우 해당 iPhone 알림을 예약 하는 것은 개발자의 작업입니다.It is up the developer to schedule a corresponding iPhone Notification if it is required by the app.

알림의 Apple Watch 및 iPhone 버전 모두에 대해 동일한 알림 식별자를 포함 하 여, 조사식에 중복 알림이 표시 되지 않도록 합니다.By including the same Notification Identifier on both the Apple Watch and iPhone versions of the Notifications, it prevents duplicate Notifications from being displayed on the watch. 알림의 Apple Watch 버전은 iPhone 버전 보다 우선적으로 적용 됩니다.The Apple Watch version of the Notification will take precedence over the iPhone version.

WatchOS 3은 iOS 10과 동일한 UINotification API 프레임 워크를 사용 하므로 자세한 내용은 iOS 10 사용자 알림 프레임 워크 설명서를 참조 하세요.Since watchOS 3 uses the same UINotification API framework as iOS 10, please see our iOS 10 User Notification Framework documentation for more details.

SpriteKit 및 SceneKit 사용Using SpriteKit and SceneKit

WatchOS 3의 새로운 기능으로 개발자는 이제 앱의 사용자 인터페이스 디자인에서 SpritKit 및 SceneKit 개체를 모두 사용 하 여 2D 및 3D 그래픽을 모두 표시할 수 있습니다.New to watchOS 3, the developer can now use both SpritKit and SceneKit objects in their app's User Interface design to present both 2D and 3D graphics.

이 기능을 지원 하기 위해 새 인터페이스 클래스 두 개가 추가 되었습니다.Two new interface classes have been added to support this feature:

  • WKInterfaceSKScene-SpriteKit 2D 그래픽을 사용 하는 데 사용 됩니다.WKInterfaceSKScene - For working with SpriteKit 2D graphics.
  • WKInterfaceSCNScene-SceneKit 3D 그래픽을 사용 하는 데 사용 됩니다.WKInterfaceSCNScene - For working with SceneKit 3D graphics.

이러한 개체를 사용 하려면 Xcode의 Interface Builder에서 watch 앱의 스토리 보드 안쪽에 있는 디자인 화면으로 끌고 특성 검사자 를 사용 하 여 구성 하면 됩니다.To use these objects, simply drag them onto the design surface inside of the watch app's Storyboard in Xcode's Interface Builder and use the Attributes Inspector to configure them.

이 시점에서 SpriteKit 또는 SceneKit 장면을 사용 하는 작업은 iOS 앱 내에서와 동일 하 게 작동 합니다.From this point, working with either the SpriteKit or SceneKit scenes works the same as it does inside of an iOS app. Watch 앱은 Present 메서드 중 하나를 호출 하 여 WKInterfaceSKScene을 제공 합니다.The watch app will present a WKInterfaceSKScene by calling one of the Present methods. SceneKit의 경우 WKInterfaceSCNScene 개체의 Scene 속성을 설정 하기만 하면 됩니다.For SceneKit, simply set the Scene property of the WKInterfaceSCNScene object.

조치 가능한 문제Actionable Complications

WatchOS 2에서 Apple은 타사 앱에 대 한 복잡 한 문제를 도입 했습니다.In watchOS 2, Apple introduced Complications for 3rd party apps. WatchOS 3에서 Apple은 개발자가 WatchKit 복잡 한 기능을 포함할 수 있는 기능을 확장 했습니다.In watchOS 3, Apple has expanded the abilities that a developer can include in a WatchKit Complication.

또한 이제는 기본 제공 되는 조사식에 더 많은 복잡성이 포함 될 수 있습니다.Additionally, more of the built in watch faces can now include Complications and existing watch faces that already supported Complications can now included even more Complications.

또한 새로운 기능은 사용자가 Apple Watch에 설치 된 모든 조사식 얼굴을 전환 하기 위해 왼쪽 또는 오른쪽으로 신속 하 게 이동할 수 있는 기능입니다.Also new is the ability for a user to quickly swipe left or right to transition through all of the watch faces they have installed on their Apple Watch. 사용자는 Apple Watch의 자매 iPhone 앱에서 새 갤러리를 사용 하 여 새 조사식 얼굴을 추가 하 고 사용자 지정할 수 있으며,이에 포함 될 수 있는 모든 문제를 사용자 지정할 수 있습니다.Using the new gallery on the Apple Watch's companion iPhone app, the user can add and customize new watch faces and any of the Complications that they can include.

이러한 새로운 기능으로 인해 Apple은 Apple Watch의 모든 앱에 하나 이상의 복잡성이 포함 되어야 함을 제안 하므로 이제 모든 네이티브 Apple Watch 앱에는 복잡 한 문제가 있습니다.Because of these new features, Apple suggests that every app on Apple Watch should also include at least one Complication and as such, all of the Native Apple Watch app now have Complications.

앱에는 다음과 같은 기능을 제공 합니다.Complications provide the following features to an app:

  • 이는 항상 watch 면에 표시 되기 때문에 매우 glanceable.They are highly glanceable since they are always present on the watch face.
  • WatchOS에서 자주 업데이트 되는 문제가 있습니다.Complications are frequently updated by watchOS. 사용자의 현재 표시 된 조사식 얼굴에 대 한 복잡 한 내용이 포함 된 앱은 1 시간 이상 업데이트 됩니다.Any app that includes a Complication on the user's currently displayed watch face is updated at least twice an hour.
  • 사용자의 현재 표시 된 조사식 얼굴에 대 한 복잡 한 앱은 앱을 신속 하 게 시작 하 고 앱의 응답 속도를 개선 하는 메모리에 유지 됩니다.Any app with a Complication on the user's currently displayed watch face is kept in memory which makes the app launch quickly and improves the speed of responses from the app.
  • 사용자가 watchOS 앱에서 특정 기능을 쉽게 시작할 수 있습니다.Complications make it easy for the user to launch specific functionality in a watchOS app.

Glanceable 알림Glanceable Notification

Apple Watch 알림은 사용자에 게 이벤트 또는 들어오는 메시지와 같은 새 정보를 신속 하 게 알리거나 진행 중인 앱에서 목표를 달성할 수 있는 뛰어난 사용자 지정 가능한 방법을 제공 합니다.Notification on Apple Watch provide a great, customizable way to quickly inform the user of events or new information such as incoming messages or achieving a goal in a workout app.

알림을 사용 하 여 중요 한 정보를 사용자에 게 신속 하 게 제공할 수 있습니다.By using a Notification, valuable information can be quickly presented to the user. 대부분의 경우 잘 설계 된 알림은 사용자가 실제로 앱을 시작 하는 데 필요한 기능을 제거할 수 있습니다.In many situations, a well-designed Notification can remove the necessity for the user to actually launch the app.

WatchOS 3의 새로운 기능으로, 모든 알림이 이제를 지원 합니다.New to watchOS 3, all notifications now support:

  • SpriteKitSpriteKit
  • SceneKitSceneKit
  • 인라인 비디오Inline Video

SpriteKit 및 SceneKit가 포함 된 향상 된 UIEnhanced UI with SpriteKit and SceneKit

일반적으로 개발자는 SpriteKit 및 SceneKit가 언급 될 때 게임 UI를 생각할 수 있습니다.Typically, a developer might think of game UI when SpriteKit and SceneKit are mentioned. 그러나 SpriteKit 및 SceneKit는 모두 WatchKit 단독으로 가능 하지 않은 사용자 지정 된 레이아웃, 콘텐츠 및 애니메이션을 포함 하는 비 게임 Ui를 만드는 데 유용할 수 있습니다.However, both SpriteKit and SceneKit can be useful for creating non-gaming UIs that include customized layouts, content and animations that are not otherwise possible in WatchKit alone.

예를 들어 사진 공유 앱의 사용자 알림은 SpriteKit를 사용 하 여 사용자 환경을 강화 하는 실제 이미지 및 기타 사용자 지정 정보와 함께 사진을 게시 한 사용자를 포함 하 여 풍부한 사용자 환경을 제공할 수 있습니다.For example, a user notification from a photo sharing app can use SpriteKit to provide a rich user experience by including the user that posted the picture along with an actual image and other customized information that enriches the user experience.

또한 SpriteKit와 SceneKit는 모두 앱의 사용자 인터페이스 디자인에서 표준 WatchKit UI 요소와 혼합할 수 있습니다.Additionally, both SpriteKit and SceneKit can be mixed with standard WatchKit UI elements in the app's User Interface design.

간단한 탐색Simple Navigation

watchOS 3은 개발자가 위에 제공 된 새 수직 페이징, 제스처 인식기 지원Digital Crown 회전 기능과 같은 watchOS 앱 내에서 탐색을 단순화할 수 있는 여러 가지 방법을 제공 합니다.watchOS 3 presents several ways that a developer can simplify the navigation within their watchOS apps such as the new Vertical Paging, Gesture Recognizer Support and Digital Crown Rotation features presented above.

Digital Crown은 Apple Watch에 고유 하며 탐색을 간소화 하는 여러 가지 방법으로 사용할 수 있습니다.The Digital Crown is unique to the Apple Watch and can be used in many different ways to simplify navigation. 예를 들어 타이머 응용 프로그램은 Digital Crown를 사용 하 여 사용 가능한 타이머 길이를 제거할 수 있습니다.For example, a timer application can use the Digital Crown to scrub through available timer lengths.

사용자 지정 제스처는 사용자가 시청 앱과 상호 작용할 수 있는 새롭고 고유한 방법을 제공할 수 있으며 앱 탐색을 간소화 하는 데 사용할 수도 있습니다.Custom Gestures can present new and unique ways for the user to interact with a watch app and can also be used to simplify app navigation.

WatchOS 3에 추가 된 새로운 빠른 상호 작용 기능을 결합 하 여 다양 하 고 간편 하 고 빠른 watchOS 앱 인터페이스를 제공 하는 방법을 찾는 Apple 제안Apple suggest looking for ways to combine all of the new Quick Interaction features added in watchOS 3 to present rich, easy and quick to use watchOS app interfaces.

빠른 상호 작용 마무리Finishing the Quick Interaction

잘 디자인 된 빠른 상호 작용 환경을 사용 하면 사용자가 현재 상호 작용을 완료 했을 때 손목 (그리고 앱과 분리 됨)를 삭제할 수 있습니다.A well designed quick interaction experience will give the user the confidence to drop their wrist (and disengage with the app) when they have finished the current interaction.

이는 감시 앱이 모든 유형의 네트워크 연결을 수행 하는 경우 또는 자매 iPhone 앱과 정보를 공유 하는 경우에 특히 문제가 됩니다.Where this specifically becomes an issue is when the watch app is doing any type of network connection or sharing information with its companion iPhone app. 이 경우 트랜잭션이 수행 되는 동안 대기 표시기가 나타날 수 있으며,이는 빠른 상호 작용 중에는 바람직하지 않습니다.This can often lead to a waiting indicator while the transaction is taking place, which is not desirable during a quick interaction. 다음 예제를 참조하세요.Take the following example:

  1. 사용자가 시계에서 구매할 항목을 선택 합니다.The user chooses an item to purchase on the watch.
  2. 구입 단추를 탭 합니다.They tap the buy button.
  3. 앱은 네트워크 트랜잭션을 시작 하 고 로딩 표시기를 표시 합니다.The app starts the network transaction and displays a loading indicator.
  4. 잠시 후에 트랜잭션이 완료 되 고 앱이 구매를 표시 합니다.Some time later, the transaction completes and the app displays a purchase conformation.
  5. 사용자가 앱을 사용 하 여 손목 및 disengages를 삭제 합니다.The user drops their wrist and disengages with the app.

사용자가 트랜잭션이 완료 될 때까지 사용자가 구매 단추를 탭 할 때 로드 표시기를 확인 하는 손목 발생 합니다.From the time the user taps the buy button until the transaction is completed, they have their wrist raised looking at a loading indicator. 이러한 상황을 해결 하기 위해 Apple에서는 로드 표시기를 표시 하는 대신 개발자가 사용자에 게 즉각적인 피드백을 제공 해야 한다고 제안 합니다.To solve this situation, Apple suggests that the developer should present instant feedback to the user instead of showing a loading indicator.

Apple의 제안 된 모델을 사용 하 여 동일한 빠른 상호 작용을 다시 살펴보겠습니다.Using Apple's suggested model, take a look at the same quick interaction again:

  1. 사용자가 시계에서 구매할 항목을 선택 합니다.The user chooses an item to purchase on the watch.
  2. 구입 단추를 탭 합니다.They tap the buy button.
  3. 앱은 네트워크 트랜잭션을 시작 하 고 구매가 성공적으로 시작 되었다는 메시지를 표시 합니다.The app starts the network transaction and displays a message saying that the purchase has successfully started.
  4. 사용자가 앱을 사용 하 여 손목 및 disengages를 삭제 합니다.The user drops their wrist and disengages with the app.
  5. 나중에 트랜잭션이 성공적으로 완료 되 면 앱은 성공적인 구매를 사용자에 게 알리는 로컬 알림을 표시 합니다.When the transaction successfully completes some time later, the app displays a Local Notification to inform the user of a successful purchase.

이번에는 사용자가 구입 단추를 탭 하면 구매가 시작 되었음을 알리는 메시지가 표시 됩니다. 그러면 손목를 안전 하 게 삭제 하 고이 시점에서 빠른 상호 작용을 종료할 수 있습니다.This time, as soon as the user taps the buy button they are shown a message stating that the purchase has started, so they can confidently drop their wrist and end the quick interaction at this point. 나중에 사용자 알림에서 트랜잭션의 성공 또는 실패에 대 한 알림을 받습니다.Later they are informed of the success or failure of the transaction in a User Notification. 이러한 방식으로 사용자는 프로세스의 "활성" 단계 중에 앱과만 상호 작용 합니다.In this way, the user is only interacting with the app during the "active" phases of the process.

네트워킹을 수행 하는 앱의 경우 백그라운드 NSURLSession를 사용 하 여 다운로드 작업을 통해 네트워크 통신을 처리할 수 있습니다.For apps that are doing networking, they can use a background NSURLSession to handle the network communication with a download task. 그러면 앱이 백그라운드에서 해제 다운로드 된 정보를 처리할 수 있습니다.This will allow the app to be woken up in the background to process the downloaded information. 백그라운드 처리가 필요한 앱의 경우 백그라운드 작업 어설션을 사용 하 여 필요한 처리를 처리 합니다.For app that require background processing, use a Background Task Assertion to handle the required processing.

빠른 상호 작용 디자인 팁Quick Interaction Design Tips

빠른 상호 작용의 원하는 길이는 2 초 이내 이므로 개발자는 디자인 프로세스의 시작 부분에서 앱의 상호 작용 디자인에 집중 해야 합니다.Since the desired length of a Quick Interaction is two seconds or less, the developer should focus on the design of the app's interactions from the very beginning of the design process. 위에서 설명한 기술을 사용 하 여 이러한 상호 작용을 간소화 하 고 watchOS 3의 새로운 기능을 사용 하 여 앱을 신속 하 고 응답성을 높일 수 있는 영역을 찾습니다.Find areas where those interactions can be simplified (using the technique presented above) and use the new features of watchOS 3 to make the app quick and responsive.

Apple은 다음을 제안 합니다.Apple suggests the following:

  • 앱의 가장 많이 사용 되는 기능을 앞으로 가져와 빠르게 상호 작용에 집중 합니다.Focus on Quick Interactions by bringing the most used features of the app forward.
  • 복잡 한 사용자 알림을 사용 하 여 일반적인 기능 및 기능을 노출 합니다.Use Complications and User Notifications to surface common features and functions.
  • SceneKit 및 SpriteKit를 사용 하 여 풍부한 glanceable 사용자 인터페이스를 만듭니다.Create rich, glanceable User Interface with SceneKit and SpriteKit.
  • 가능 하면 앱 내에서 탐색을 단순화 합니다.Whenever possible, simplify navigation within the app.
  • 사용자가 대기 하지 않도록 하 고 가능한 한 빨리 손목을 삭제 하 고 앱과 함께 분리 하도록 허용 합니다.Never make the user wait, allow them to drop their wrist and disengage with the app as soon as possible.

요약Summary

이 문서에서는 watchOS 3에서 Apple이 추가한 빠른 상호 작용 기법 및 Apple Watch에 대 한 Xamarin.ios에서이를 구현 하는 방법에 대해 설명 했습니다.This article has covered the quick interaction techniques Apple has added in watchOS 3 and how to implement them in Xamarin.iOS for Apple Watch.