カレンダーを自作する
大概ライブラリ使うけど自分で作ってみる
自己紹介
酒井文也(さかい ふみや)
今までの仕事履歴(本業)
石川県金沢市生まれ・東京(大塚)住まいの30歳
本業は某口コミサイトのプログラマ ※Railsを使っています
26歳∼30歳:PHP / Rubyプログラマ
23歳∼25歳:Webデザイナー兼ディレクター
Objective-C歴:2ヶ月くらい Swift歴:20日
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向けと食べ物系コンテンツのお仕事が多い…
→ まだまだ初心者っす。。
カレンダーでもこんなのしたい
なんで自分でつくってみたいと思ったの?
参考にしたもの
既存のカレンダーライブラリは…
・日本の祝祭日に対応してない
機能:ジョルテ(Androidアプリ)
デザイン:Fril
・デザインの変更をもっと簡単にしたい
・次の画面に値を引き継いで渡したい
ポイントは「ボタンを並べてカレンダー風に」すること
・上位バージョンで使えないかもしれない
・ソースを見たらマジで地獄だった
objective-cを始めて5日目の僕はこうなった
・よさげなのはあったけど中国語だった
上記のような悲劇は嫌なので
もう自分でつくることにした
期間:1day Swift移植6hour
では実際にサンプルを!
こちらのページからダウンロードをどうぞ
今後の拡張予定
https://github.com/fumiyasac/handMadeCalendar
・上記ページの「Download ZIP」よりどうぞ!
・デザイン変更&画面遷移サンプル(近日更新予定)
・日本の祝祭日対応(3年後までは検証済み)
・こちらは今後も更新は随時行う予定です。
※上記の使用例は現在作成中のアプリがありますので、
もしご覧になりたい方はお気軽にお申し付け下さい
https://github.com/fumiyasac/handMadeCalendarOfSwift
それでは軽く処理の説明をします
※プログラムがはじめての方は「ふーん」程度でも大丈夫です
※今回はせっかくですので「Swift版」で解説します
※今回はこちらのURLを元に解説を行います。
通称:ハンドメイドカレンダー
デフォルトのデザインは「円」と「ピンク」がベースです
※「Objective-C版」も用意しています
http://blog.just1factory.net/programming/179
カレンダー計算の説明
①7(横)×6(縦)の入れ物を作る for文で配置
このボタンにはi = 0, 1, … , 41の番号があるイメージ
※まるいやつはボタン
②1日の日付と曜日がカレンダー
 コンポーネントでとれるので
 ボタンに対して日を入れる。
曜日は日曜∼土曜が
1∼7の数値で取れる
1日の位置は、i == dayOfWeek - 1 で決定できる
③条件分岐は下記の3パターンに
 対して行う(日付が入る or 日
 付が入らない場合)
曜日とその月の最後
の日から条件を決定
case1) 日付が入らない: i < dayOfWeek - 1
case2) 日付が入る: i == dayOfWeek - 1 || i < dayOfWeek + maxDay - 1
case3) 日付が入らない: i == dayOfWeek + maxDay - 1 || i < 42
※変数:
dayOfWeek: 曜日
maxDay: その月の最終日
※日付が入る場合:
ボタンにタグを仕込む
(タグ=日の値となる)
質疑応答
※なんでもOKです!(参考書籍や勉強方法等も含む)
プライベートなことでも可能な限りお答えします。

ハンドメイドカレンダー(プレゼン用)