鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

XCode初心者が自分が欲しいタイマーアプリを作るまでの覚書

はじめに

パンケーキをよく焼きます。

そんなとき、まずは、生地をフライパンに落としてから、上を向いている面にふつふつと穴が空いて一通り熱が通る頃に、フライ返しでひっくり返しますよね。

その後、少し立って裏面もいい焼き色がついたら、お皿にあげます。

私は今の家の環境的に、だいたい表面を焼くときに、2分半、ひっくり返して、30秒を数えると、いい焼き具合に仕上がるなと思っています。

家のコンロは、タイマーがついていますし、スマホのタイマーもあるのですが、どちらもタイマーをいちいちセットするのが面倒です。

パンケーキは、一度に20枚くらい一気に焼きますので、表・裏で2倍とすると40回もタイマーをセットしないといけないのです。

スマホiPhoneなので、ボタンひとつで繰り返しする機能がありますが、表と裏では違う秒数なので、それもうまく使えません。

これをうまくこなすためには、2つの違う秒数をセットできて、そのセットを繰り返しできる、というタイマーが欲しいのです。

また、別の例を出してみますね。

軽いエキササイズとして踏み台昇降をすることがあるのですが、この時、足を右足から踏み出すと、右足から後ろへ降ります。

でもずっと右足からばかり踏み出していると、筋肉が偏ってついてしまいそうですよね。

なので、しばらく経つと、次は足を入れ替えて、左足から踏み出して、左足から後ろへ降りるようにしています。

この「しばらく」というのも、なんとなくでやっているので、案外、自分が楽な方の足で長く続けている可能性があると思います。

これをきっちりタイマーで測ってくれるようにしたいのです。

そのためには、一定の時間を測って、アラームを鳴らすけれど、それを止めなくても勝手に繰り返ししてくれて、セットした数続けてくれる、というタイマーがあるといいな、と思います。

これを、今持っているiPhoneのアプリとして、作ってみようと思い立ちました。

このゴールに向けて、全くのXCode初心者ですが、初めてみようと思います。

なんとなくルール

1つめ、遠回りしながら、少しずつ進めていきたいな、と思います。

よくわからないながら、作り上げるのは、もしかしたら簡単かもしれないのですが、せっかく特に締め切りもないわけですから、ゆっくりと、「なんだろこれ」と思うものは、思うままに調べてみて、いろんなチュートリアルなんかも挟みながら、楽しく、着実に、身につけていけたらいいなと思います。

2つめ、これを作り上げるまでは、時間がどれだけかかっても、少しずつでも進めていって、次にどんなステップに進むか? 感想、などを自分なりにまとめることを、最後の章を行って閉めることとしたいと思います。

3つめ、普通に考えて、複数設定できてセットで繰り返しができるタイマーアプリなんてものは、誰でもすぐに思いつくものなので、すでにあると思います。

おそらく、大量に。

Appleが審査で通してくれないレベルにたくさんあるかもしれませんね。

それを調べて、インストールするのは簡単ですが、目的は自分で作ってみて、できれば公開までのステップも踏んでみることにあるので、「タイマーアプリ」で検索するのだけは、なしにしたいと思います。

してしまっても、とにかく内容は見ずに、やり過ごします。

それではゆったりまったり初心者iOS開発、やっていきたいと思います。(ぱちぱちぱち)

開発環境

PC:Macbook Air iOS:macOS Big Sur(11.0.1) XCode:12.2 実施期間:2020.12.7〜

まずは操作画面

  • 左カラム:ナビゲーターエリア
  • 真ん中カラム:エディターエリア
  • 右カラム:ユーティリティエリア
  • 上のバー:ツールバー

これがまずわからないと、検索もできないですねw

右下のあいつがいない

これこれ。

チュートリアル記事とかでも大体何も説明なしに、「アイツ」から「ブツ」をどんどんドラッグ&ドロップしているのに、 その「アイツ」がいないと始まらない、というかもうそこでチュートリアル記事に沿って開発していくのもストップしてしまいます。

まさにいい記事を見つけたので、次はこれを読んでみます。

【Xcode】Xcode10からの変更で、右下のアイツがいない - Qiita

↓ 読みました。

「アイツ」は、オブジェクトライブラリ、というそうです。

XCode 9まで操作画面の右下にデフォルトで表示されていたようでした。

他にもメディアライブラリなど、色々なライブラリが表示されていて、タブのようにボタンで切り替えができたみたいです。

そのパートがXCode10以降ではなくなっていて、代替になるものとしては、

Command + Shift + L

で、オブジェクトライブラリの検索窓が開くようになったようでした。

XCode12で試した時のキャプチャが以下。

f:id:TACOSVilledge:20201210054020p:plain

これで検索して、配置できるということですね。

タイマーアプリを制作するうまく説明してくれているチュートリアル記事

を見つけました!

iOSアプリ開発:タイマーアプリ(まとめ) - Qiita

そのひとつ目の記事がこちら。

iOSアプリ開発:タイマーアプリ(1.タイマーの時間設定) - Qiita

これを初めてみました。

まずは「TimeManager」という名前でファイルを作成して、・・・・あれれ。

「Swift File」と「SwiftUI View」が選べるようになっている。どっちを選んだらいいのでしょうか。

Swiftファイルでひとまずファイルを作ってみると、import文に、 Foundation というものが入っています。

一方で、SwiftUI Viewファイルの方で新規ファイルを作ると、import文に、 SwiftUI というものが入っています。

しかも、その下に、

import SwiftUI

struct TimeManager: View {
    var body: some View {
        Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
    }
}

struct TimeManager_Previews: PreviewProvider {
    static var previews: some View {
        TimeManager()
    }
}

という文が勝手に入っていました。

チュートリアル記事を見ると、import文的には、後者(SwiftUI)が近いようです。

しかしながら、このファイルの違いはなんでしょうか。

検索してみました。

知恵袋で同じ質問をしている人がいました。(2019年10月頃)

Swiftとswiftuiって何が違うのですか? - これからswiftを、勉... - Yahoo!知恵袋

これによると、「Swift Fileは、プログラミング言語で、SwiftUI Viewは、コーディングとレイアウトを一緒くたにしたようなもの」とあります。

この時期がちょうどSwiftUI Viewの新規発表の時期だったようで、まだ日本語のチュートリアルはあまり出ていないとのことでした。

Storyboardというもので、これが発表される前は開発がなされていたようですね。

今はそれから1年ほど経っているので、おそらく日本語のチュートリアルも出ているでしょうが、

この記事の中で紹介されている、Appleの公式チュートリアルをみてみると、40minほどで読めると書いてあるので、

次はこれを読んでみようと思います。

Apple Developer Documentation