Swift3でアプリを作るまで。
新幹線内でアプリを一本作ろうと思いたちました。
2時間の一人ハッカソンです。
プロジェクトを作る
Xcodeのプロジェクト作成よりwatchOSを選択 Project NameとOrganization Nameを入力。 今回のProject NameはxmasTheEndとします。こんな感じでファイルが生成されるのですが、watchOS用のファイル群は存在していないので作成します。
プロジェクト名を右クリックしてAdd Targetを選択
watchOSタブを選択してWatchKit Appを選択します。
watchOS用のプロジェクト名はwatchXxxxxxといったようにwatchをサファックスするのが習わしみたいです。
今回はwatchXmasTheEndとします。
※スクショではタイポしています。
Swiftを書く
プロジェクトの作成がメインなのでコードの紹介は控えめにします。
アプリの概要はボタンをタップするとサンタが消滅する、タップしないと増え続けるといったものです。
watchプロジェクトのstoryboardにアイテムを追加し、アイテムに対するコードを記述していきます。
今回使用したアイテムはLabelとButtonのみです。
今回はApple Watch単体で動作する単純なアプリなのでコードはControllerに書いてしまいます。
iOSとちゃうやんけ
iOSではUILabelやUIButtonといった名称のフレームワークを使用しますが
watchでは同じようなアイテムでも微妙に違うWKInterfaceLabelやWKInterfaceButtonといったフレームワークを使用します。
iOS開発者がいきなりwatchを触ると混乱する気がします。
厳密にはWatchKitに集約されています。
ただ、UIKitの記法で書くとXcodeが自動でWatchKitの記法に変換するので、使い方がわからない場合はiOSを参考にするといいと思います。
使ったアイテムの例
@IBOutlet var explosionButton: WKInterfaceButton!
Buttonを宣言します。
@IBAction func TouchExplosionButton() { 処理 }
ボタンタップに対する処理を記述します。
Timer.scheduledTimer(timeInterval:1.0, target:self, selector:#selector(InterfaceController.additionSanta), userInfo: nil, repeats: true)
タイマー処理です。
指定した秒数毎に処理を繰り返すことが可能になります。
ここでは1秒ごとにadditionalSanta()を繰り返し呼び出します。
実行する
Xcode左上の▶︎をクリックすればビルドされ、エミュレータ(もしくは実機)にでバックモードで実行されます。
簡単ですね。
新幹線の中ではこれが限界でしたがアプリ一本を作ることはできたので満足しました。