【AppleWatch】簡単なカウントアプリを作ってみた
昨年の8月に購入したAppleWatchだけど、プロビジョニングファイルの諸々の設定が前に使っていたAppleIDに紐付いていたりしてなかなか開発できていなかった。もともと開発用に買ったのに…
今日、少しスイッチがはいったので久しぶりにコード書いてみた。
とりあえずソースコード
ほぼほぼ見たまんま書いてるのであまり参考にはならないですが、とりあえずソースコード載せておきます。
// // InterfaceController.swift // HelloWatch Extension // // Created by mjk on 2016/01/06. // Copyright © 2016年 Kirie Miyajima. All rights reserved. // import WatchKit import Foundation class InterfaceController: WKInterfaceController { @IBOutlet var myLabel: WKInterfaceLabel! @IBOutlet var plusBtn: WKInterfaceButton! @IBOutlet var minusBtn: WKInterfaceButton! var num:Int = 0 override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) myLabel.setText(String(num)) myLabel.setTextColor(UIColor.whiteColor()) plusBtn.setTitle("+1") plusBtn.setBackgroundColor(UIColor.redColor()) minusBtn.setTitle("-1") minusBtn.setBackgroundColor(UIColor.blueColor()) //FourceTouch時の設定 addMenuItemWithItemIcon(WKMenuItemIcon.Decline, title: "reset", action: Selector("SelectMenu")) } func SelectMenu(){ num = 0 myLabel.setText(String(num)) } override func willActivate() { // This method is called when watch view controller is about to be visible to user super.willActivate() } override func didDeactivate() { // This method is called when watch view controller is no longer visible super.didDeactivate() } @IBAction func plus(){ num++ myLabel.setText(String(num)) } @IBAction func minus(){ num-- myLabel.setText(String(num)) } }
これを動かすとこうなります
基本的な構造
AppleWatchのアプリはStoryBoardを使わないと開発できない。僕はiOSアプリを開発するときにStoryboardを使わない派だったので、単純にStoryboardの使いかたがわからずちょっと悩んだw
UIKitは使えず、WatchKitをimportする
なのでUILabelとかUIButtonとかは使えなくて、その代わりWKInterfaceLabelやWKInterfaceButtonというクラスが用意されている
awakeWithContextがいってみればviewDidLoadみたいな感じかな
とりあえずここに書いておけば動く
...ちゃんと調べますすみません
forceTouch
forceTouchの実装って大変なのかなって思ってたけどなにも難しくなかった
addMenuItemWithItemIcon(WKMenuItemIcon.Decline, title: "reset", action: Selector("SelectMenu"))
これだけ。forceTouchするとアプリのMenuが呼ばれる仕組みになっているので、addMenuItemsしてしまえば勝手になってくれるらしい
便利だ
ちなみに、WKMenuItemIconっていうのにはあらかじめ用意されているアイコンを載せることもできるし、自分でimageを貼り付けることもできる
こちら一覧です
【AppleWatch】コードからコンテキストメニューを生成する | 株式会社スカイセンス
【追記 2016/01/07】
GitHubにソースコード置きました
github.com