Upload
fumiya-sakai
View
2.108
Download
2
Embed Size (px)
Citation preview
カレンダーを自作する大概ライブラリ使うけど自分で作ってみる
自己紹介酒井文也(さかい ふみや)
今までの仕事履歴(本業)
石川県金沢市生まれ・東京(大塚)住まいの30歳本業はサーバーサイドのプログラマ ※Railsを使っています
26歳~30歳:PHP / Rubyプログラマ
23歳~25歳:Webデザイナー兼ディレクター
Objective-C歴:3ヶ月くらい Swift歴:50日
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向けと食べ物系コンテンツのお仕事が多い…
→ やっと1個アプリをリリースできました
カレンダーでもこんなのしたいなんで自分でつくってみたいと思ったの?
参考にしたもの
既存のカレンダーライブラリは…・日本の祝祭日に対応してない
機能:ジョルテ(Androidアプリ)デザイン:Fril
・デザインの変更をもっと簡単にしたい・次の画面に値を引き継いで渡したい
ポイントは「ボタンを並べてカレンダー風に」すること
・上位バージョンで使えないかもしれない・ソースを見たらマジで地獄だった
objective-cを始めて5日目の僕はこうなった
・よさげなのはあったけど中国語だった上記のような悲劇は嫌なので もう自分でつくることにした 期間:1day Swift移植6hour
では実際にサンプルを!こちらのページからダウンロードをどうぞ
今後の拡張予定
https://github.com/fumiyasac/handMadeCalendar
・上記ページの「Download ZIP」よりどうぞ!
・デザイン変更&画面遷移サンプル(近日更新予定)
・日本の祝祭日対応(3年後までは検証済み)※Objective-Cのみ
・こちらは今後も更新は随時行う予定です。
※ 上記の使用例はリリースしたアプリがありますので、 アプリ名「Coffre」で検索してみてください!
https://github.com/fumiyasac/handMadeCalendarOfSwift
軽く処理の説明に関して※プログラムがはじめての方は「ふーん」程度でも大丈夫です
※「Swift版」はまだ祝祭日計算ロジックないです…すみません!※基本的な作り方はこちらのURLに解説を掲載しています。
通称:ハンドメイドカレンダーデフォルトのデザインは「円」と「ピンク」がベースです
※「Swift版」「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: その月の最終日
※日付が入る場合: ボタンにタグを仕込む (タグ=日の値となる)
祝祭日の計算ロジック※数学的な話になります
計算で出す際にハマったポイント※ハッピーマンデー法
※未来の祝祭日※ゴールデンウィーク&シルバーウィーク
※春分の日・秋分の日
参考にしたもの★Wikipedia(祝祭日のパターン抽出のため)
★こちらのサイト⇒ 法律の改正等があるかも知れないので調べた
http://p-ho.net/index.php?page=22
⇒ PHPのコードをObjective-Cへ移植 (※秋分・春分の考慮もここを参考にしています)
ありがとうございました m(_ _)m まだまだ未熟で申し訳ないです