watchOS 소개Introduction to watchOS

참고

최신 기능에 대 한 개요는 watchOS 3 소개 를 확인 하세요.Check out the Introduction to watchOS 3 for an overview of the latest features.

WatchOS 정보About watchOS

WatchOS app 솔루션에는 3 개의 프로젝트가 있습니다.A watchOS app solution has 3 projects:

  • 조사식 확장 – watch 앱에 대 한 코드를 포함 하는 프로젝트입니다.Watch Extension – A project that contains the code for the watch app.
  • 앱 보기 – 사용자 인터페이스 storyboard 및 리소스를 포함 합니다.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의 Mac용 Visual Studio 대상 버전에 관계 없이 전체 솔루션은 다음과 같이 표시 됩니다 Solution Pad.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 등이 포함 됩니다. 그러나 사용자는 부모 앱을 열지 않고 시청 앱/확장을 설치 및 실행할 수 있으므로, 일회성 초기화 또는 관리를 위해 부모 앱을 실행 해야 하는 경우에는 감시 앱/확장 프로그램을 프로그래밍 하 여 확인 해야 합니다. 사용자입니다.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.

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

WatchOS 1에서 공유 앱 그룹 또는 정적 함수 WKInterfaceController.OpenParentApplication를 통해 데이터를 공유할 수 있습니다. 그러면 부모 앱의 AppDelegate에서 UIApplicationDelegate.HandleWatchKitExtensionRequest 메서드를 트리거합니다 ( 부모 앱 작업참조).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).

WatchOS 2 이상에서, Watch 연결 프레임 워크는 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 클래스는 iOS 프로그래밍의 UIViewController 개체와 유사 하지만 보기에 대 한 액세스 수준이 동일 하지 않습니다.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 앱의 표시를 업데이트 합니다.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 사용자가 감시 앱을 해제 한 후에는이 메서드가 호출 됩니다.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 확장은 백그라운드 처리 모드를 사용할 수 없습니다.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

사용자가 시청 앱에 사용할 수 있는 상호 작용에는 세 가지 유형이 있습니다.There are three types of interaction the user can have with your watch app. All은 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

대부분의 조사식 앱/확장 상호 작용은 조사식 응용 프로그램의 인터페이스. storyboard에서 장면에 해당 하는 사용자가 작성 하는 WKInterfaceController의 하위 클래스와 함께 사용 됩니다.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. 이 내용은 설치시작 문서에 자세히 설명 되어 있습니다.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 (LabelDetailController, ButtonDetailController, 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.

간략 한 모양은 잠깐 표시 되 고 보기 앱 아이콘, 해당 이름 및 제목을 표시 합니다 (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 DidReceiveLocalNotificationDidReceiveRemoteNotification메서드를 사용 하 여 WKInterfaceController를 확장 합니다.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 및 42mm의 두 가지 크기 (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를 사용 하 여 시청 앱이 실행 되 고 있는 표시를 확인 합니다.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 apps를 개발 하는 경우 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에 analogues 있지만 다른 클래스 (UIButton, UISwitch``WKInterfaceSwitch에 대 한이 아닌WKInterfaceButton)와 해당 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에는 UIKit에 포함 되지 않은 WKInterfaceDate (날짜 및 시간을 표시 하는) 등의 몇 가지 컨트롤이 있습니다.Additionally, watchOS has some controls such as WKInterfaceDate (for displaying a date and time) that UIKit does not have.

    • 알림도 보기만 또는 iPhone 으로만 라우팅할 수 없습니다 (사용자가 라우팅을 통한 제어의 종류는 Apple에서 발표 하지 않음).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.

  • 시계를 연결 된 휴대폰에서 제어 하는 데 사용할 수 있는 Api는 비공개입니다.The APIs that allow the Watch to control iTunes on the connected phone are private.

추가 정보Further Reading

Apple에서 설명서를 확인 하세요.Check out the documentation from Apple: