LoginSignup
12
12

More than 5 years have passed since last update.

2時間でApple Watchプロジェクトを作ってみる

Last updated at Posted at 2016-12-25

Swift3でアプリを作るまで。

新幹線内でアプリを一本作ろうと思いたちました。
2時間の一人ハッカソンです。

プロジェクトを作る

スクリーンショット 2016-12-22 16.41.22.png
Xcodeのプロジェクト作成よりwatchOSを選択

スクリーンショット 2016-12-22 16.42.09.png
Project NameとOrganization Nameを入力。
今回のProject NameはxmasTheEndとします。

スクリーンショット 2016-12-22 16.45.39.png

こんな感じでファイルが生成されるのですが、watchOS用のファイル群は存在していないので作成します。
プロジェクト名を右クリックしてAdd Targetを選択

スクリーンショット 2016-12-22 16.46.23.png

watchOSタブを選択してWatchKit Appを選択します。

スクリーンショット 2016-12-22 16.48.18.png

watchOS用のプロジェクト名はwatchXxxxxxといったようにwatchをサファックスするのが習わしみたいです。
今回はwatchXmasTheEndとします。
※スクショではタイポしています。

Swiftを書く

プロジェクトの作成がメインなのでコードの紹介は控えめにします。
アプリの概要はボタンをタップするとサンタが消滅する、タップしないと増え続けるといったものです。

スクリーンショット 2016-12-25 21.55.07.png

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()を繰り返し呼び出します。

実行する

スクリーンショット 2016-12-25 22.13.41.png

Xcode左上の▶︎をクリックすればビルドされ、エミュレータ(もしくは実機)にでバックモードで実行されます。
簡単ですね。

新幹線の中ではこれが限界でしたがアプリ一本を作ることはできたので満足しました。

タイトルなし2.gif

12
12
0

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
12
12