MacOSアプリ プログレスタイマーをリリースした話🎉
モバイルアプリの開発をしているkazy.devです。
最近、MacOSでプログレスタイマーアプリをリリースしたので、それについて書きます。
開発経緯
きっかけは、
Intel MacからM1 Macに移行した際に、長年使っていたタイマーアプリが動かなくなってしまったという、知人からの相談が始まりでした。
通常、そのアプリのアップデートが入れば、だいたいは最新バージョンの対応が入るはずですが、
そのアプリ自体、何年もメンテナンスされておらず、App Storeからも入手できなくなっていたという...
6年ほど愛用しているようで、非常に困っていました。
たまにある悲しいパターンですね...
彼が欲しいタイマー機能としては、
- Macで作業中にプログレスバーに表示されるタイマー
- 複数のウインドウを開いていても埋もれず、最前面にはっきりと表示されること
- 複雑な機能がなく、シンプルな設定
App Storeにはいくつか似たようなアプリはあるものの、ジャストマッチするアプリはありませんでした...
「ないなら作ってしまえー!」
というわけで、
以前からMacOSアプリを作ってみたいと思っていたことも相まって、
開発を着手するに至ったわけでした。
めでたしめでたし👏
MacOS(Cocoa)が難しくてつまずく
基本的には、iOSと同じようにコードを書いて進められましたが、
MacOSだとNSWindowControllerを意識しなければいけなかったり、UIKitではなくCocoaAPIになったりと、iOSではできていたはずのことがMacアプリだと、どうやってやればいいんだ!
なんてことはめっちゃありました。
調べても、iOSほど参考になる記事がヒットしないので、1度躓くと解決するまでにかなり時間がかかって辛かったです。
面白かったのはCocoaバインディングと呼ばれるMacOS独自の変更通知機構を使ったViewとModel/Controller層の同期機能を使って、シームレスな値の更新ができることを知ったことです。
この機能はかなり昔からありましたが、MacOSでしか使えないので触る機会が皆無でした。
参考: https://qiita.com/Takkiii0204/items/4c589b5e88457dd4f517
RxCocoa、RxSwiftやその後Combineが台頭してきたこともありますし、別に使わなくてもなんとかなるとは思いますが、Interface Builder上で各コンポーネントとCocoaバインディングを紐づけるだけで、UserDefaultに値を保存させることもできたりします。
こんな機能あるんだと個人的にはかなり感動しました。
そしてアプリが完成
正直、特別、アピールできる機能があるとか、とてつもなく便利とかそういったところはありません。
ただ、シンプルにプログレスバーで時間を知らせる、ただそれだけのアプリです笑
以下、Mac App Storeに掲載ている概要載せます。
プログレスタイマーは仕事や勉強のためのタイマーアプリケーションです。
作業中に視界に入ってくる時間の表示を極力排除し、プログレスバーの進み具合でタイマーの状況を視覚的に把握することで、作業に集中することができます。
また、このプログレスタイマーは、位置、幅、高さ、色をすべて自由に設定することができます。
画面の好きな位置に、好きな設定でタイマーをセットするだけで、仕事の邪魔にならない、最も感覚的でエレガントな時間管理ができます。Pomodoro、Remindなど、用途に合わせてご利用ください。
主な機能
- プログレスバー形式のタイマー
- お気に入りのタイマー時間を登録
- 時間表示
- プログレスバーのサイズと位置を保存
- タイマー前面にプログレスバーを固定表示
- カウントダウン時間経過時に警告音/プッシュ通知
- プログレスバーの位置、幅、高さ、色の変更
相談してくれた彼と同じように、作業の邪魔にならないプログレスバー形式でのタイマーを必要としている人がいればもしかしたらこれイイって思ってもらえるかもしれません。
そんなニッチな需要とマッチすれば嬉しい限りです。
最後に
通常は有料で配布していますが、リリースを記念して期間限定で無料配布中ですので、
ご興味のある方は気軽に試してみてください。
まだ改善すべきところは多々ありますが、とりあえずリリースできたのでよかったです。
引き続き、アプリの改善や英語を含む多言語対応などやっていこうと思います。
最後までお読みいただきありがとうございました。
プログレスタイマー使ってみたいという方がいましたら、Mac App Storeを覗いてみていただければと思います。
Obrigado
英語訳: https://medium.com/@kazy.dev/macos-progresstimer-app-released-1a63a6101004
Discussion