Life is Party

大学院生やってます。VRの研究中。考えていることとか気になったことをまとめます。

iOSカレンダーの予定登録アプリ作ってみた[Swift]

こんにちは、ちゃっくるです。

 

今回はSwiftを用いたカレンダー、およびiOSの標準カレンダーアプリへのイベント登録アプリを作ってみました。

 

作ろうと思った理由

今はスマホのカレンダーアプリっていろいろありますよね。

普通の手帳もそれはそれでいいんだけど、やっぱり常に持ち歩くスマホのアプリを使った方が何かと都合がいいことも。

僕もスマホで予定管理していて、iPhoneにデフォルトで入っているカレンダーを使っています。

こちらですね。

 

f:id:chucky0620:20190822165444j:plain

 

このカレンダー、個人的にはシンプルだし自分のMacBookと同期できるからすごく気に入ってるんだけど、欠点を一つあげるとしたら、予定のコピペができないこと。

 

これが非常に不便で。

例えば僕はアルバイトをしているんですけど、シフトをカレンダーに登録するときに、

 

13日:早番

14日:遅番

18日:早番

20日:遅番

 

みたいなときに、同じ時間のシフトの時は、まとめて登録したいじゃないですか。

でもiPhoneだとそれができなくて、一つずつ手打ちでやるしかないんですよね〜。

 

そんな不便性を解消するために、作ってみました。

 

 完成品その1

はじめに作ってみたアプリがこちら

 

 

UIPickerViewを使って、日付とシフトを選んで、登録ボタンを押すとカレンダーにも登録することができる、というものです。

これで、同じシフトの日はシフトを固定したまま日付だけ変えれば、予定をまとめて登録することができますね!

 

実際に知り合いに使ってもらった感想

「便利。でも日付いちいち選ぶのめんどくさい

 

完全に想定内。僕もそう思ってた。ということで改良に励みます。

 

難しかったところ

  • ピッカーからカレンダーに登録する際のString型とDate型の変換

 

 完成品その2

前回作ってものに足りなかった部分は「直感性」。

便利にするために作ったけど結局日付を一つ一つ選ぶことになっていました。

そこで今回の追加要素としては、実際にカレンダーを表示して、登録したい日付を複数タップすることで、同じシフトの日を一気に登録できるようにしました。

 

実際に動いている様子がこちら

 

前回よりかは直感的な操作ができるようになったかな、という感じ。

まだまだ直さなきゃいけないところがたくさんあるけど、今の技術力の都合上、とりあえずカレンダーアプリはここでひと段落。

 

難しかったところ

  • カレンダーの作成
  • 選択したカレンダーのセルの数字を取り出して、Dateに変換するところ
  • カレンダーの選択したセルの色を変えるところ

 

未実装、または将来的に実装したいところ

  • 「登録」ボタンを押した後、黄色くなっているセルを白に戻す
  • バイトのシフトの時間やタイトル設定を個人で好きにできるようにする
  • 現在の月以外の月での動作

 

全体を通してUICollectionViewの扱いが難しかった印象。

実力をつけてまたリベンジしたいと思います。

 

参考にさせていただいたサイト

【Swift】Calendarアプリを作る - Qiita

SwiftでNSDateとStringの相互変換 - Qiita