96
102

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

watchOS 2 の新機能のサンプルコード集

Last updated at Posted at 2015-06-15

WWDC15 にて watchOS 2 が発表され、ついに待望のネイティブ動作する Apple Watch アプリがつくれるようになりました。それに伴い、WatchKit には多くの機能が追加され、ClockKit や WatchConnectivity 等の新しいフレームワークも登場しました。さらにいえば、従来フレームワークもウォッチ側で動作するようになったことから、これらもある意味新APIであるといえます。

どんな機能が追加されたのかは既に多くのキーノートのまとめ記事などで紹介されてはいますが、新しいAPIはどう使うのか、実際に何がどこまでできるのか、快適に動作するのか、といった具体的なところが、英語のドキュメントや動画や記事をながめているだけだと正直あまりよくわかりません。やはり実際にコード書いて動かしてみるのが一番わかりやすい、ということで、

watchOS 2 の新機能のサンプルコード集『watchOS-2-Sampler

をつくりました。オープンソースなのでどなたでも GitHub から clone してお試しいただけます。

##Contents

今のところ18個のサンプルが入っています。まだまだ少ないですが、随時追加していく予定です。機能追加等のプルリク大歓迎です!

###Animated Properties

animateWithDuration:animations: メソッドを利用して、アニメーションで拡大縮小やフェードイン/アウト、移動(実際には Alignment)を行うサンプル。

###Table Animations

WKInterfaceTable のセル(row)をアニメーション付きで insert / remove するサンプル。insertRowsAtIndexes:withRowType:, removeRowsAtIndexes: メソッドを利用。

###Picker Styles

WKInterfacePicker の全スタイル(List, Sequence, Stack)を試せるサンプル。

###Taptic Engine

WKInterfaceDevice の playHaptic メソッドに指定できる全タイプ(WKHapticType)を試せるサンプル。

ちなみに WKHapticType は次のように定義されています。

swift
enum WKHapticType : Int {
    
    case Notification
    case DirectionUp
    case DirectionDown
    case Success
    case Failure
    case Retry
    case Start
    case Stop
    case Click
}

###Audio Rec & Play

presentAudioRecordingControllerWithOutputURL:preset:maximumDuration:actionTitle:completion: メソッドを利用して音声を録音する UI を表示し、録音したファイルを presentMediaPlayerControllerWithURL:options:completion: メソッドを利用して再生するサンプル。

参考記事:

###Animation with Digital Crown

デジタルクラウンの回転に合わせ、WKInterfacePicker にセットしたアニメーションを表示するサンプル。setCoordinatedAnimations メソッドを利用。

###Draw Paths

Core Graphics を用いてパスを描画するサンプル。

###Gradations

Core Graphics を用いてグラデーションを描画するサンプル。

※Core Graphics を用いたパス描画やグラデーション描画についての詳細は、こちらの記事・スライドもご参照ください。

###Heart Rate

HealthKit を用いて心拍数を取得・表示するサンプル。

kitasuke さんより pull request いただきました。

###Accelerometer

Core Motion を用いて加速度センサの値を取得するサンプル。

###Gyroscope

Core Motion を用いてジャイロスコープの値を取得するサンプル。 1

###Device Motion

Core Motion を用いてデバイスのモーションデータを取得するサンプル。 2

###Pedometer

CMPedometer を用いて歩数や距離、階の昇り降り情報を取得するサンプル。

###Alert

presentAlertControllerWithTitle:message:preferredStyle:actions: メソッドで指定できる全アラートスタイル(WKAlertControllerStyle)を試せるサンプル。

ちなみに WKAlertControllerStyle は次のように定義されています。

swift
enum WKAlertControllerStyle : Int {
    
    case Alert
    case SideBySideButtonsAlert
    case ActionSheet
}

###Interactive Messaging

iPhone と Apple Watch で相互にメッセージをやりとりするサンプル。Watch Connectivity フレームワークを利用。

###Audio File Player

WKAudioFilePlayer を利用してオーディオファイルを再生するサンプル。

※要Bluetoothヘッドセット

###Open System URL

WKExtension の openSystemURL: メソッドを利用して、電話およびSMSアプリを開くサンプル。

###Network Access

NSURLSession を用いてネットワーク経由で画像データを取得するサンプル。KAMEDAkyosuke さんより pull request いただきました。

##おまけ:watchOS 2 で使えるようになった従来フレームワークのリスト

  • MapKit
  • UIKit
  • WatchKit
  • CoreGraphics
  • ImageIO
  • CFNetwork
  • Contacts
  • CoreData
  • CoreFoundation
  • CoreLocation
  • CoreMotion
  • EventKit
  • Foundation
  • HealthKit
  • HomeKit
  • MobileCoreServices
  • PassKit
  • SystemConfiguration
  • Core OS Layer
  • Security

##iOS-9-Sampler

iOS 9 の新機能のサンプル集はこちらにあります。

##関連

  1. 現行 Apple Watch では CMMotionManager の gyroAvailable が必ず false を返してくるので、今のところ実質的に利用できません。(API的には利用可能であるためサンプルに残してあります)

  2. 現行 Apple Watch では CMMotionManager の deviceMotionAvailable が必ず false を返してくるので、今のところ実質的に利用できません。(API的には利用可能であるためサンプルに残してあります)

96
102
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
96
102

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?