"リマインダー"の繰り返しを
自由に設定する

Cocoa勉強会	#64	/	2014-02-08	/	木村渡

Powered by Rabbit 2.1.1 and COZMIXNG
リマインダー

http://support.apple.com/kb/HT4970?
viewlocale=ja_JP
リマインダー
iOS/OS Xの標準アプリ
指定の期日にアラーム/通知
iCloudやiTunes経由で同期できる
これでタスク管理をしようとすると
「むきー!」となるので注意
背景
iOS7になってからリマインダーを使
いはじめた。
「3週間ごとの繰り返し」を設定し
たいモノができた。
既定の繰り返しからしか選べない?
背景
EventKit
第55回の発表参照。
カレンダーとリマインダーへのアクセ
スを提供するフレームワーク。
Calendar and Reminders Programming Guide
(Mac Developer Library)
邦訳	カレンダーとリマインダーのプログラミングガイド
EKRecurrenceRule
EKRecurrenceFrequency
interval
Days of the Week
どうみても、いろんな繰り返しが指定
できそう。
EKRecurrenceRule
ドキュメントを見た感じではさまざま
な設定が可能。
実際に試して、確認する必要がある。
現在利用可能なもの以外の繰り返し
の指定を受け入れるか。
リマインダーアプリがその繰り返し
で動作するか。
EventKit超概要(リマインダー)
このような階層になっている。
EKEventStore - リマインダー	or イ
ベント
EKCalendar - "ビジネス"、"買い
物"などの種類。
EKReminder - 個々のリマインダー
RubyCocoa+irbで試してみる
% irb1.8 -rosx/cocoa --simple-prompt
>> include OSX
>> require_framework 'EventKit'

※デモはirbでなくpryです。
ストアとカレンダーを取得
>> store =
EKEventStore.alloc.
initWithAccessToEntityTypes(
EKEntityTypeReminder)
>> calendars =
store.calendarsForEntityType(
EKEntityTypeReminder)
>> calendar = calendars.find {|cal|
cal.title == "テストだよ!"}
新規のリマインダーを作成

>> reminder = EKReminder.
reminderWithEventStore(store)
>> reminder.title = "3週間ごとに実⾏する!
>> reminder.calendar = calendar
リマインダー期限を設定

>> due_date = NSDateComponents.alloc.i
>> due_date.year = 2014;
due_date.month = 2;
due_date.day = 8
>> due_date.hour = 18;
due_date.minute = 30
>> reminder.dueDateComponents = due_da

NSDateでいいじゃん…
3週間ごとの繰り返しを作成

>> rule = EKRecurrenceRule.alloc.
initRecurrenceWithFrequency_inter
end(EKRecurrenceFrequencyWeekly,
3, nil)
>> reminder.addRecurrenceRule(rule)
保存する
>> result, err = store.saveReminder_
commit_error(reminder, true)
=> [true, nil]
アプリで確認。
3週間ごとになっているかを確認
完了させて次の繰り返しへ。
3週間ごとになっているかを確認
もう一度。

3週間ごとになってる!
いろんな設定を試してみる
EKRecurrenceRuleの長ーいイニシャ
ライザ。array渡す。
initRecurrenceWithFrequency:
interval:
daysOfTheWeek:daysOfTheMonth:
monthsOfTheYear:weeksOfTheYear:
daysOfTheYear:
setPositions:end:
月2回(15日,	月末)
frequency:
EKRecurrenceFrequencyMonthly
daysOfTheMonth: [15, -1]
毎月第1、第3水曜日
frequency:
EKRecurrenceFrequencyMonthly
daysOfTheWeek:
EKRecurrenceDayOfWeek.dayOfW
eek_weekNumber(4, 1),..
まとめとか感想とか
プログラムからはかなり自由に繰り
返しを設定できる。
ただしアプリの表示は「カスタムの
繰り返しパターン」に。
まとめとか感想とか
RubyCocoa便利ですよ!(宣伝)
10.5 Leopard以降のOS Xに標準イ
ンストール済み。
irb/pryで対話的に試行錯誤でき
る。コンパイル不要。
ruby 2.0や2.1への対応作業中…
終

Powered by Rabbit 2.1.1 and COZMIXNG

More Related Content

PPT
Android Hacks - 合宿 Activity
PPTX
最小セット
PDF
20180927 enebular meetup#3_kitazaki
PDF
Ansible Module Topic
PDF
OSC 2012 Tokyo Spring
PPT
第五回テックヒルズ登壇資料 git移行の3つの山 (株)モバイルファクトリー 阿部氏
PDF
値変換
PDF
Xcode4 project template (slide)
Android Hacks - 合宿 Activity
最小セット
20180927 enebular meetup#3_kitazaki
Ansible Module Topic
OSC 2012 Tokyo Spring
第五回テックヒルズ登壇資料 git移行の3つの山 (株)モバイルファクトリー 阿部氏
値変換
Xcode4 project template (slide)

Viewers also liked (12)

PDF
らくらくアップデートSparkle
PDF
ClangでObjective-Cを静的解析
PDF
InputMethodKitで入力プログラムをつくろう
PDF
Hotkeyslib3 Cocoaでホットキー
PDF
Quickcursorに見る、アプリケーション間通信
PDF
InputMethodKit超入門
PDF
Precipitateに見る、外部リソースのSpotlight化
PDF
PSMTabBarControl
PDF
SIMBLでCocoaアプリをパワーアップ
PDF
Three20のTTURLRequest
PDF
OS X DYLD_* environments
PDF
Clang Modules
らくらくアップデートSparkle
ClangでObjective-Cを静的解析
InputMethodKitで入力プログラムをつくろう
Hotkeyslib3 Cocoaでホットキー
Quickcursorに見る、アプリケーション間通信
InputMethodKit超入門
Precipitateに見る、外部リソースのSpotlight化
PSMTabBarControl
SIMBLでCocoaアプリをパワーアップ
Three20のTTURLRequest
OS X DYLD_* environments
Clang Modules
Ad

Similar to リマインダーの繰り返しを自由に設定する (EventKit) (13)

PDF
Pebble開発について大いに語る
PDF
iPhoneアプリ無料勉強会 vol3
PDF
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
PDF
Cakephp
KEY
Unityの夕べ in Fukuoka
PPTX
Visual studio 2015 update1 ctpとcsi
PPTX
Watch kit解説と実際のtips
PDF
Jsug 20160422 slides
PDF
NSNotification in Swift #cocoa_kansai
PPTX
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
PDF
[DSO] Machine Learning Seminar Vol.8 Chapter 9
PDF
iOSやAndroidアプリ開発のGoodPractice
Pebble開発について大いに語る
iPhoneアプリ無料勉強会 vol3
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
iPhoneアプリ開発の歩き方〜Swift編〜
Cakephp
Unityの夕べ in Fukuoka
Visual studio 2015 update1 ctpとcsi
Watch kit解説と実際のtips
Jsug 20160422 slides
NSNotification in Swift #cocoa_kansai
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
[DSO] Machine Learning Seminar Vol.8 Chapter 9
iOSやAndroidアプリ開発のGoodPractice
Ad

Recently uploaded (8)

PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
PPTX
Vibe Codingを触って感じた現実について.pptx .
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Vibe Codingを触って感じた現実について.pptx .
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由

リマインダーの繰り返しを自由に設定する (EventKit)