どうも、よし(yoshi2045)です。
Apple Watchを5月に購入し、ふと「アプリ開発してみたい!」と思い立ち、完全独学ながらも5ヶ月目にしてようやくリリースまでこぎつけました。
この記事では作ったアプリ、開発の動機や感想などを書き残しておこうと思います。
Apple Watchアプリを個人開発してみようかな〜と思っている人に向けて1ミリでも参考になれば幸いです!
いや〜色々苦労したけど、楽しかった♪プログラミングってやっぱ楽しい!
作ったアプリ
作ったのは『LockinTimer - ロッキンタイマー』という、Apple Watch専用のタイマーアプリです。
Apple Watchでポモドーロ・テクニックが使えるというアプリですが、正直特筆すべき機能や特徴はありません(汗)
本職現役バリバリのエンジニアなら1週間くらいで出来ちゃうようなレベルだと思っています。
期間・時間
開発期間:2021/5/5 〜 2021/10/9
1日あたり平均作業時間:だいたい2時間くらい
総作業時間:約150時間
5月にApple Watch SEを購入し5/5より開発着手。アプリの審査出して無事通過したのが10/9でした。
おおよその流れはこんな感じです。
- 5月
各種チュートリアルやサンプルコードお試し。ざっくり要件定義と設計 - 6月
個別機能をアジャイルのSprintちっくに実装 - 7月
要件見直し(iPhoneアプリも作る予定から、Apple Watchのみに変更。機能も縮小) - 8月
Apple Watch通知機能、コンプリケーション実装 - 9月
リファクタ、申請準備 - 10月
申請。1回リジェクトくらったのち無事通過
動機
自分が欲しい機能を実現しているアプリがない!
というのが第一の動機です。アプリ開発の動機としては一般的かつ王道ですね。
Apple Watchを買った理由の一つは、仕事や勉強に集中するためポモドーロ・テクニックに対応したタイマーアプリをApple Watchで使いたい、というものでした。
なぜApple Watchなのか?というと、例えばスマホアプリだとタイマー終了時にスマホ操作が必要になりますよね?
そのためにいちいち画面ロックを解除するのが面倒でした。
スマホのロック画面で操作できるタイプのアプリもあるかと思いますが、そもそも集中したい時にスマホを触りたくなかったんです。気が散るので。
デスクトップアプリもありますが、それだとパソコン使わないタスクの場合に計測しにくいんです。
ということで、Apple Watchを購入し、いくつかポモドーロ・テクニック対応のタイマーアプリを試して使っていました。
一番使いやすかったのは『Flat tomato』というアプリでした。ただ、微妙に使い勝手がドンピシャ求めているものと違ったんです。
僕がApple Watchでやりたかったのは大きく以下の2点でした。
- ポモドーロ回数を指定してタイマーを開始する
- 仕事やワークアウトなどのカテゴリーごとに時間を記録し、後でiPhoneでレポート表示する
Flat tomatoは1点目の機能がありませんでした。そして、このくらいの機能のアプリなら自分でも作れるかも!と思ったのがきっかけです。
最終的に2点目の機能は実力不足で作りきれませんでしたが、1点目は無事実装できました。
純粋にものづくりを楽しみたい!
僕は現在、フリーランス7年目の40代システムエンジニアで、普段はプロジェクト管理系の仕事をメインにしています。
なのでエンジニアと言いながら、業務ではここ数年まったくものづくりはしていません。
そんなこともあり、しょぼくてもいいから自分で1からプログラミングして、プロダクト作ってみたいという気が芽生えてきたのが2つ目の理由です。
また、収益化は狙わないことにしました。マネタイズできるレベルのアプリを作れるとは思えなかったのと、マネタイズするにはプログラミングとはまた別のスキルと労力が必要になりますからね。
開発してみて感じたこと4つ
その1.とにかく情報が少ない
Apple Watchアプリ開発中に一番感じたこと。
それは、、
とにかく情報が少ない!!!
この一言につきます。
僕は英語使えませんが、頑張って海外のサイトも含めて情報収集してみました。それでも圧倒的に情報が出回っていない、もしくは古すぎて参考にならないケースばかりでした。
入門書の類も情報が古く、最新のOSやSwift、Xcodeには対応していないので参考になりませんでした。
初代Apple Watchが発売された当初(2015年)から1、2年はアプリ開発してみよう!という人達もちらほらいたものの、スマホアプリの時のようには盛り上がらず下火になってしまっているような感じかなと想像しています。
一応、アプリ開発の基本的な部分はiOSアプリ開発と共通しているので、iOSアプリ開発関連の情報を参考にできる部分はあるものの、例えばコンプリケーションの実装やiOSとwatchOSの連携部分などの情報収集には苦労しました。
その2.Swift / SwiftUIは開発しやすい
僕は普段、WEBシステム系の仕事をしているのでアプリ開発は素人ですが、数年前に一度、勉強がてらiPhone向けアプリを開発&リリースした経験があります。
当時はObjective-Cで開発したので、今回初めてSwiftに触れました。
InterfaceもStoryboardではなくSwiftUIを選択しました。
Swift、そしてSwiftUIはObjective-Cと比べて格段に開発しやすいですね!モダンな言語と言われるだけあるなと感じました。(浅い感想ですが・・・)
今は移行期なのだと思いますが、これから新規で開発する場合はSwiftが主流になっていくのでしょうね。
その3.実機で動くとめちゃくちゃ嬉しい
20代の頃の、プログラマとしてコード書いていた頃の気持ちが蘇りました。
書いたコードがちゃんと動いてくれる喜び。それに加え、今回はApple Watchというデバイス上で自分が作ったアプリが動いている。これはテンション上がります。
その4.覚えること・やることが超大量にある
Swiftという言語で書くのが初めて、Xcodeでアプリ開発するの超久しぶり、Apple Watchアプリの開発も初めてという状態だったので、分からないことだらけで学ぶことが大量にありました。
そして何度も心折れ挫折しそうになりました・・・。
また、アプリを開発してリリースするにはコードを書く以外のタスクがたくさんあります。
- アプリの名前とコンセプト
- アプリアイコン画像の作成
- アプリ申請のための準備もろもろ
といったタスクが、かなりの時間を要しました。
これから個人開発する人へのアドバイス
最後に、アプリの個人開発をしてみたいと考えている人に向けて、何点かアドバイスです。いずれもありきたりな内容ですが参考になれば嬉しいです。
目的をはっきりさせること
- 勉強のためか
- 自分が使いたいためか
- 多くの人にも使ってもらいためか
ざっくりこれらのどれに該当するかで、やるべきことが変わってきます。
特に自分以外の人にも使ってもらいたい!と思ったらやるべきことが激増します。
リリースしただけでは当然、誰もあなたのアプリの存在は知ることができません。周知・宣伝する必要があります。
アプリの存在を知ってもらえたとして、魅力的なアイコン・コンセプトがなければダウンロードしてもらえません。
ダウンロードしてもらえたとして、期待に沿うことができなければ満足してもらえません。
ということで自分以外の人にも使ってもらうにはマーケティングスキルが多分に必要になってきます。
やるなら最後までやり切る
アプリ開発以外にも言えることですが、やると決めたら最後までやり切ることが大事です。40代になって身にしみて感じます。
僕の場合、ストアへの申請までやって、その結果をブログに書くことを第一目標にしました。
実は開発当初は、Apple WatchアプリだけでなくiPhoneアプリも開発する予定でした。でも開発を進めていく中で今の自分の実力だと思っていた以上に時間がかかりそうだということが分かり、計画変更して要件を縮小しました。
これはストアへの申請までやることを優先したためです。おかげで何とか使用に耐えうる最小限の機能は盛り込んだうえで申請までたどり着けました。
自分だけが使う場合なら、ストアへの申請は不要ですし、勉強のためなら年会費が発生するApple Developer Programの登録も不要です。
どこまでをゴールとするかは目的次第です。そしてゴールを決めたら最後までやり切ることで、達成感を得ることができますし、自信もつきます。
開発メモは走り書きでもいいので残しておく
個人開発をする人の多くは、本来の仕事や学業があって、プライベートな時間を使って開発すると思います。
そうするとどうしても開発にかけられる時間が限られるため、開発期間も長くなります。
開発期間が長引くと、本業が立て込んだりモチベーションが下がったりする時期がでてきます。そしていざ再開しようと思った時に「あれ、どこまで作ってたんだっけ?」と、途中経過を忘れてしまっていることがあります。
そうするとせっかく再開しようと思ったのにやる気がそがれ、「もういいや、やーめた」と投げ出してしまう確率が高くなってしまいます。
それを防ぐためにも、どこまで何をやったかをメモに残しておくと後で非常に役に立ちます。
僕はノートアプリの『Notion』でタスク管理しました。
Notionはとてもよくできたアプリで、簡単なメモだけでなくTrelloやTodoistのようなタスク管理も可能です。カンバン方式のタスク管理にも対応しています。
アプリ開発でやることをざっと洗い出し、それをタスクとして登録しました。そして各タスクのページ内に、開発時に調べた内容やサイトへのリンク、感じたことや分かったことなどをなぐり書きしてました。
プログラミングスクールに通うのもあり
数年前に一度、iPhone向けアプリを開発&リリースした経験があると書きましたが、その時はプログラミングスクールに通って作りました。
スクールに通うメリットは、分からないところをピンポイントで教えてもらえるという点はもちろんですが、それに加えて
- 仲間ができる
- リリースした時に多少宣伝できる
といった点があげられると思います。
Apple Watchアプリ開発にも対応しているスクールは少なそうですが、iOSアプリ開発経験者であれば土地勘があるはずなので、初歩的な疑問やエラーは解決してもらえそうな気はします。
何事も経験してみるのが大事
今回、アプリの企画からストア申請まで一連の流れを実際に体験してみて、改めて開発の楽しさと大変さを身にしみて感じました。
エンジニアの人たちってホント、凄いことやってるよなぁ
おまけ:リリース後のDL数
最後におまけとして、リリース後から3週間ほど経った状態でのアプリダウンロード数をご紹介します。
「UNITS」というのがダウンロード数なので、6ですね。そのうち1つは自分なので実質は5です。ほぼ無風状態ですね!
宣伝も何もしていないとこうなります。。。てかむしろ自分以外にダウンロードできた人はどうやってたどり着いたんだろ・・・?