WatchOS 소개Introduction to watchOS

참고

체크 아웃 합니다 watchOS 3 소개 최신 기능에 대 한 개요입니다.Check out the Introduction to watchOS 3 for an overview of the latest features.

WatchOS에 대 한About watchOS

WatchOS 앱 솔루션에 3 프로젝트:A watchOS app solution has 3 projects:

  • 확장 보기 – watch 앱에 대 한 코드를 포함 하는 프로젝트입니다.Watch Extension – A project that contains the code for the watch app.
  • 앱 보기 – 사용자 인터페이스 스토리 보드 및 리소스를 포함 합니다.Watch App – Contains the user-interface storyboard and resources.
  • 부모 앱 iOS –이 앱은 일반 iPhone 앱.iOS Parent App – This app is a normal iPhone app. Watch 앱 및 확장은 사용자의 보기에는 배달에 대 한 iPhone 앱으로 제공 됩니다.The watch app and extension are bundled into the iPhone app for delivery to the user's watch.

WatchOS 1 앱에서 iPhone에서 실행 되는 확장의 코드 – Apple Watch 효과적으로 외장 디스플레이입니다.In watchOS 1 apps, the code in the extension runs on the iPhone – the Apple Watch is effectively an external display. watchOS 2 및 3 앱 Apple Watch 완전히 실행합니다.watchOS 2 and 3 apps run entirely on the Apple Watch. 이러한 차이 아래 다이어그램에 표시 됩니다.This difference is shown in the diagram below:

WatchOS 버전을 대상으로 하는 것에 관계 없이 Solution Pad Mac 용 Visual Studio에서 완벽 한 솔루션을는 다음과 비슷합니다.Regardless of which version of watchOS is targeted, in Visual Studio for Mac’s Solution Pad a complete solution will look something like this:

합니다 부모 앱 는 watchOS 솔루션은 일반 iOS 앱입니다.The Parent App in a watchOS solution is a regular iOS app. 표시 되는 솔루션의 프로젝트만 이것이 휴대폰합니다.This is the only project in the solution that is visible on the phone. 자습서, 관리 화면 및 중간 계층 필터링 cacheing 등이 앱에 대 한 사용 사례가 포함 됩니다. 하지만 설치 하지 않고 watch 앱/확장을 실행 하는 사용자에 대 한 가능 적이 부모 앱 난, 따라서 부모 앱이 일회 초기화 또는 관리에 대 한 실행 되도록 해야 하는 경우 해야 watch 프로그램 앱/사용자에 게 알리고 확장입니다.Use-cases for this app would include tutorials, administrative screens, and middle-tier filtering, cacheing, etc. However, it is possible for the user to install and run the watch app/extension without ever having opened the parent app, so if you need the Parent app to run for one-time initialization or administration, you need to program your watch app/extension to tell the user that.

부모 앱 watch 앱 및 확장을 제공, 하지만 다른 샌드박스에서 실행 됩니다.Although the parent app delivers the watch app and extension, they run in different sandboxes.

WatchOS 1에서 정적 함수 또는 공유 앱 그룹을 통해 데이터를 공유할 수 있습니다 WKInterfaceController.OpenParentApplication을 트리거하는 합니다 UIApplicationDelegate.HandleWatchKitExtensionRequest 부모와 앱에서 메서드 AppDelegate (참조 부모 앱을 사용 하 여 작업).On watchOS 1 they can share data via a shared app group or via the static function WKInterfaceController.OpenParentApplication, which will trigger the UIApplicationDelegate.HandleWatchKitExtensionRequest method in your parent app’s AppDelegate (see working with the Parent app).

조사식 Connectivity framework 부모 앱과 통신 하는 watchOS 2 이상에서 사용 하는 WCSession 클래스입니다.On watchOS 2 or later the Watch Connectivity framework is used to communicate with the parent app, using the WCSession class.

응용 프로그램 수명 주기Application Lifecycle

조사식 확장의 서브 클래스에는 WKInterfaceController 각 스토리 보드 장면에 대 한 클래스를 만듭니다.In the watch extension, a subclass of the WKInterfaceController class is created for each Storyboard scene.

이러한 WKInterfaceController 클래스는 비슷합니다는 UIViewController iOS 프로그래밍에서 개체 있지만 동일한 수준의 보기에 액세스할 수 없습니다.These WKInterfaceController classes are analogous to the UIViewController objects in iOS programming but do not have the same level of access to the view. 예를 들어 동적으로 컨트롤을 추가 하거나 UI를 재구성할 수 없습니다.For instance, you cannot dynamically add controls to or restructure your UI. 그러나 숨기기 및 컨트롤 표시를, 일부 컨트롤에서 해당 크기, 투명성 및 모양 옵션을 변경 합니다.You can, however, hide and reveal controls and, with some controls, change their size, transparency, and appearance options.

수명 주기를 WKInterfaceController 개체는 다음 호출을 포함 합니다.The lifecycle of a WKInterfaceController object involves the following calls:

  • 절전 모드 해제 : 이 방법에서는 대부분의 초기화를 수행 해야 합니다.Awake : You should perform most of your initialization in this method.
  • WillActivate : Watch 앱 사용자에 게 표시 하기 바로 호출 됩니다.WillActivate : Called shortly before the Watch App appears to the user. 이 메서드를 사용 하 여 마지막 순간 초기화를 수행 하려면 애니메이션 등을 시작 합니다.Use this method to perform last-moment initialization, start animations, etc.
  • 이 시점에서 Watch 앱 나타나고 확장을 입력 하 고 응용 프로그램 논리 당 Watch 앱의 표시를 업데이트 하는 사용자에 게 응답을 시작 합니다.At this point, the Watch App appears and the Extension begins responding to user input and updating the Watch App’s display per your application logic.
  • DidDeactivate Watch 앱 후 사용자가 해제 된,이 메서드를 호출 합니다.DidDeactivate After the Watch App has been dismissed by the user, this method is called. 다음 시간까지 사용자 인터페이스 컨트롤을 수정할 수 없습니다이 메서드에서 반환 된 후 WillActivate 라고 합니다.After this method returns, user interface controls cannot be modified until the next time WillActivate is called. IPhone에 대 한 연결이 끊어진 경우에이 메서드를 호출 합니다.This method will also be called if the connection to the iPhone is broken.
  • 확장이 비활성화 된 후 프로그램에 액세스할 수 없는 합니다.After the extension has been deactivated, it is inaccessible to your program. 보류 중인 비동기 기능이 것입니다 호출할 수 있습니다.Pending asynchronous functions will not be called. 조사식 키트 확장에는 백그라운드 처리 모드를 사용할 수 없습니다.Watch Kit Extensions may not use background processing modes. 첫 번째 메서드 호출 수는 프로그램은 사용자가 다시 활성화 하는 경우 운영 체제에서 앱으로 끝나지 않았습니다 WillActivate합니다.If the program is reactivated by the user but the app has not been terminated by the operating system, the first method called will be WillActivate.

사용자 인터페이스의 형식Types of User Interface

Watch 앱을 사용 하 여 사용자가 상호 작용 하는 방법은 세 종류가 있습니다.There are three types of interaction the user can have with your watch app. 모든 사용자 지정 하위 클래스를 사용 하 여 프로그래밍할 WKInterfaceController이므로 수명 주기 앞에서 설명한 순서 보편적으로 적용 됩니다 (하위 클래스를 사용 하 여 알림을 프로그래밍할 WKUserNotificationController의 하위 클래스는 직접 WKInterfaceController):All are programmed using custom sub-classes of WKInterfaceController, so the previously-discussed lifecycle sequence applies universally (notifications are programmed with sub-classes of WKUserNotificationController, which itself is a sub-class of WKInterfaceController):

일반적인 상호 작용Normal Interaction

Watch 앱/확장 상호 작용의 대부분의 하위 클래스를 사용 하 여 될 WKInterfaceController watch 앱의 백그라운드에서 일치 하도록 작성 하는 Interface.storyboard합니다.The majority of watch app/extension interaction will be with sub-classes of WKInterfaceController that you write to correspond to scenes in your watch app’s Interface.storyboard. 자세히 설명 합니다 설치 하 고 Getting Started 문서입니다.This is covered in detail in the Installation and Getting Started articles. 다음 이미지의 일부를 보여 줍니다.는 조사식 키트 카탈로그 샘플의 스토리 보드입니다.The following image shows a portion of the Watch Kit Catalog sample’s Storyboard. 여기에 대해 설명 했습니다 각 장면에는 해당 사용자 지정 WKInterfaceController (LabelDetailControllerButtonDetailController, SwitchDetailController등) 확장 프로젝트에서.For each scene showed here, there is a corresponding custom WKInterfaceController (LabelDetailController, ButtonDetailController, SwitchDetailController, etc.) in the extension project.

알림Notifications

알림 Apple Watch 대 한 주요 사용 사례는 합니다.Notifications are a major use-case for the Apple Watch. 로컬 및 원격 알림이 지원 됩니다.Both local and remote notifications are supported. 알림을 통해 상호 작용 단기 및 장기 확인 이라는 두 단계로 발생 합니다.Interaction with notifications occurs in two stages, called Short- and Long-Look.

짧은 같습니다 간단 하 게 표시 되 고 watch 앱 아이콘, 이름 및 제목 표시 (지정 된 대로 WKInterfaceController.SetTitle).Short Looks are displayed briefly and show the watch app icon, its name, and the Title (as specified with WKInterfaceController.SetTitle).

시스템 제공 결합 긴 찾습니다 섀시 영역 및 사용자 지정 스토리 보드 기반 콘텐츠를 사용 하 여 해제 단추입니다.The Long Look combines a system-provided sash area and Dismiss button with your custom Storyboard-based content.

WKUserNotificationInterfaceController 확장 WKInterfaceController 메서드를 사용 하 여 DidReceiveLocalNotificationDidReceiveRemoteNotification입니다.WKUserNotificationInterfaceController extends WKInterfaceController with the methods DidReceiveLocalNotification and DidReceiveRemoteNotification. 알림 이벤트에 반응 하는 이러한 메서드를 재정의 합니다.Override these methods to react to notification events.

알림 UI 디자인에 대 한 자세한 내용은 참조는 Apple Watch 휴먼 인터페이스 지침For more information on Notification UI design, refer to the Apple Watch Human Interface Guidelines

화면 크기Screen Sizes

Apple Watch 두 개의 얼굴 크기: (38mm 및 42 mm 모두를 5:4 표시 비율과 레 티 나 디스플레이 사용 하 여 합니다.The Apple Watch has two face sizes: 38mm and 42mm, both with a 5:4 display ratio, and a Retina display. 사용 가능한 크기는 다음과 같습니다.Their useable sizes are:

  • (38mm: 136 x 170 논리 픽셀 (272 x 340 물리적 픽셀)38mm: 136 x 170 logical pixels (272 x 340 physical pixels)
  • 42mm: 156 x 195 논리 픽셀 (312 x 390 물리적 픽셀)입니다.42mm: 156 x 195 logical pixels (312 x 390 physical pixels).

사용 하 여 WKInterfaceDevice.ScreenBounds 어느 디스플레이의 Watch 앱이 실행 중인지 확인 하려면.Use WKInterfaceDevice.ScreenBounds to determine on which display your Watch App is running.

일반적으로 하기가 더 제한적인된 (38mm 표시를 사용 하 여 텍스트 및 레이아웃 디자인을 개발 하 고 다음를 확장 합니다.Generally, it’s easier to develop your text and layout design with the more constrained 38mm display and then scale up. 대규모 환경의 시작 하기 까다로운 중복 또는 텍스트 잘림 축소 발생할 수 있습니다.If you start with the larger environment, scaling down may lead to ugly overlap or text truncation.

에 대해 자세히 알아보세요 화면 크기를 사용 하 여 작업합니다.Read more about working with screen sizes.

WatchOS의 제한 사항Limitations of watchOS

WatchOS watchOS 앱을 개발할 때 알아야 할 몇 가지 제한이 있습니다.There are some limitations of watchOS to be aware of when developing watchOS apps:

  • Apple Watch 장치 저장소가 제한 된-(예: 큰 파일을 다운로드 하기 전에 사용 가능한 공간에 주의Apple Watch devices have limited storage - be aware of the available space before downloading large files (eg. 오디오 또는 동영상 파일).audio or movie files).

  • 여러 watchOS 컨트롤 UIKit에서 유사한 기능을 갖지만 다른 클래스 (WKInterfaceButton 대신 UIButtonWKInterfaceSwitch 에 대 한 UISwitch등) 있고 해당 UIKit 비교할 메서드의 제한 된 집합 해당 하는 합니다.Many watchOS controls have analogues in UIKit, but are different classes (WKInterfaceButton rather than UIButton, WKInterfaceSwitch for UISwitch, etc.) and have a limited set of methods compared to their UIKit equivalents. 또한 watchOS에 일부 컨트롤 같은 WKInterfaceDate (날짜 및 시간을 표시)는 UIKit 없는 합니다.Additionally, watchOS has some controls such as WKInterfaceDate (for displaying a date and time) that UIKit does not have.

    • 시계만 알림을 또는 (라우팅을 통해 사용자가 컨트롤의 종류에 공지 되지 Apple에서)만 iPhone을 라우팅할 수 없습니다.You cannot route notifications to the Watch only, or the iPhone only (what kind of control the user has over routing has not been announced by Apple).

일부 다른 알려진된 제한 사항 / 질문과 대답:Some other known limitations / frequently asked questions:

  • Apple은 타사 사용자 지정 조사 얼굴을 허용 하지 않습니다.Apple will not allow 3rd-party custom watch faces.

  • 연결 된 휴대폰에서 iTunes를 제어 하려면 시계를 허용 하는 Api는 private입니다.The APIs that allow the Watch to control iTunes on the connected phone are private.

추가 정보Further Reading

Apple의 설명서를 확인해 보세요.Check out the documentation from Apple: