自分のカレンダーから空き時間を探すiOSアプリケーションを開発しました #pity #freetimepicker
友達との会話で「来週いつ暇?」とか打ち合わせの調整に「ご都合のよろしい日程を複数頂けますでしょうか」とか聞かれた時に自身のカレンダーとにらめっこをして空き時間を探した経験はないでしょうか?
開発した経緯
前に投稿したように絶賛転職活動中なのですが、その中で時間調整の機会がとても多いことに気づきました。空き時間をいい感じにテキストでリストアップできれば前述したようなメールやメッセージをもらった時にもさくっとスマートに返信ができるなと思ったので開発してみようと思いました。
開発したアプリケーション
iOS版
macOS版
機能紹介
まずは検索対象の日付を選択します。今日、明日、今週、来週、今月、来月、カスタム(検索開始日と検索終了日を設定)から選びます。次に最低限必要な空き時間を設定します。ここは該当する予定にかかりそうな時間をそのまま入力します。30~45分程度を想定している場合は45分を選択しておきます。次に検索対象時間を設定します。業務中の空き時間を探したい場合は、9:00~18:00を設定したり、業後の空き時間を探したい場合は18:00~23:00と設定したりすることを想定しています。次にその予定までに必要な移動時間を設定します。業務などで移動する必要が無い場合は0:00を設定しておくと良いと思います。1時間の移動が必要な場合は1:00といった感じです。終日イベントを検索対象としたく無い場合は終日を無視をONにし、平日のみを検索対象としたい場合は休日を無視をONにします。必要な項目が入力され、検索時間が正しい場合は検索するボタンが青色になるのでタップします。
そうすると上記のような検索結果がテキストで一覧になって表示されます。テキストは選択可能になっているのでそこでコピーしたり右上のシェアボタンをタップすることでコピーをしたりそのままシェアしたりすることができます。
日付のフォーマットは設定アプリからPityに遷移して日付のフォーマット部分を編集すれば変更することができます。
ただ、こちらはSwiftのDateFormatterに準拠しており、アプリ内ではDateFormatter.dateFormat(fromTemplate:options:locale:)というクラスメソッドで地域によって変換が入っているのでもしかしたら思った想定していないフォーマットになることがあるかもしれません。もしご自身で設定した厳密なフォーマットで利用したいことがある場合はご連絡いただければ対応するかもしれません。
SiriShortcut
SiriShortcutにも対応したので声で空き時間を探すことも可能です。上記の画像のようにすると検索結果がそのままクリップボードに入ってくるので便利です。
Today Extension
Today Extensionにも対応したのでアプリを開かずにさくっと空き時間を探すこともできます。
macCatalyst
iPhoneやiPadの対応だけではなくmacOS(Catalina以降)にも対応しました。Macでメールやメッセージをやり取りしている場合にはこちらを利用するのも良いかなと思います。(3/2現在: 近日中に公開予定)
GitHub
またこちらのアプリケーションですがGitHubでOSSとして公開しています。技術的にはSwiftUI/Combineを利用していますがそのまま表現が難しいUIはUIKitでカスタムした画面も利用しています。カレンダーのデータを取得するためにはEventKitを利用し、SiriShortcutに対応するためにIntents.frameworkを利用し、Firebase/AdMobを利用したりしています。もしバグや改善提案がある場合はIssuesを作っていただいたり、バグ修正や機能追加をしていただいた場合にはPull Requestを作っていただけるととても嬉しいです。FirebaseやAdMobの設定が必要なのでビルドまで多少面倒とは思いますがご興味があれば是非お願いします。
アイコン
アプリ名やアイコンは現職のデザイナーとわいわいしながら考えたり作ってもらいました。とても助かったし最終的に満足のいく名前・アイコンができて嬉しいです🙇🏻♂️mifuとTomoありがとう!
まとめ
転職活動中に感じた不便からシンプルな機能のiOS/macOS Catalyst対応のアプリケーションを開発しました。もしよかったらインストールしていただいて高評価レビューをしていただいたり、何か問題があればGiHub Issuesに書いたり、ご自身で改善してみた場合にはPull Requestを送っていただければ嬉しいです。