8
カレンダーを自作する 大概ライブラリ使うけど自分で作ってみる

ハンドメイドカレンダー第15回potatotips用

Embed Size (px)

Citation preview

Page 1: ハンドメイドカレンダー第15回potatotips用

カレンダーを自作する大概ライブラリ使うけど自分で作ってみる

Page 2: ハンドメイドカレンダー第15回potatotips用

自己紹介酒井文也(さかい ふみや)

今までの仕事履歴(本業)

石川県金沢市生まれ・東京(大塚)住まいの30歳本業はサーバーサイドのプログラマ ※Railsを使っています

26歳~30歳:PHP / Rubyプログラマ

23歳~25歳:Webデザイナー兼ディレクター

Objective-C歴:3ヶ月くらい Swift歴:50日

趣味:シルバーアクセサリー集め・スイーツ作り・開発

女子向けと食べ物系コンテンツのお仕事が多い…

→ やっと1個アプリをリリースできました

Page 3: ハンドメイドカレンダー第15回potatotips用

カレンダーでもこんなのしたいなんで自分でつくってみたいと思ったの?

参考にしたもの

既存のカレンダーライブラリは…・日本の祝祭日に対応してない

機能:ジョルテ(Androidアプリ)デザイン:Fril

・デザインの変更をもっと簡単にしたい・次の画面に値を引き継いで渡したい

ポイントは「ボタンを並べてカレンダー風に」すること

・上位バージョンで使えないかもしれない・ソースを見たらマジで地獄だった

objective-cを始めて5日目の僕はこうなった

・よさげなのはあったけど中国語だった上記のような悲劇は嫌なので もう自分でつくることにした 期間:1day Swift移植6hour

Page 4: ハンドメイドカレンダー第15回potatotips用

では実際にサンプルを!こちらのページからダウンロードをどうぞ

今後の拡張予定

https://github.com/fumiyasac/handMadeCalendar

・上記ページの「Download ZIP」よりどうぞ!

・デザイン変更&画面遷移サンプル(近日更新予定)

・日本の祝祭日対応(3年後までは検証済み)※Objective-Cのみ

・こちらは今後も更新は随時行う予定です。

※ 上記の使用例はリリースしたアプリがありますので、 アプリ名「Coffre」で検索してみてください!

https://github.com/fumiyasac/handMadeCalendarOfSwift

Page 5: ハンドメイドカレンダー第15回potatotips用

軽く処理の説明に関して※プログラムがはじめての方は「ふーん」程度でも大丈夫です

※「Swift版」はまだ祝祭日計算ロジックないです…すみません!※基本的な作り方はこちらのURLに解説を掲載しています。

通称:ハンドメイドカレンダーデフォルトのデザインは「円」と「ピンク」がベースです

※「Swift版」「Objective-C版」も用意しています

http://blog.just1factory.net/programming/179

Page 6: ハンドメイドカレンダー第15回potatotips用

カレンダー計算の説明①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: その月の最終日

※日付が入る場合: ボタンにタグを仕込む (タグ=日の値となる)

Page 7: ハンドメイドカレンダー第15回potatotips用

祝祭日の計算ロジック※数学的な話になります

計算で出す際にハマったポイント※ハッピーマンデー法

※未来の祝祭日※ゴールデンウィーク&シルバーウィーク

※春分の日・秋分の日

参考にしたもの★Wikipedia(祝祭日のパターン抽出のため)

★こちらのサイト⇒ 法律の改正等があるかも知れないので調べた

http://p-ho.net/index.php?page=22

⇒ PHPのコードをObjective-Cへ移植 (※秋分・春分の考慮もここを参考にしています)

Page 8: ハンドメイドカレンダー第15回potatotips用

ありがとうございました m(_ _)m まだまだ未熟で申し訳ないです