Как встроенное в iOS приложение «Календарь» синхронизируется с различными источниками календаря?

Я пытаюсь создать приложение календаря, такое как приложение Sunrise и iOS Calendar. Как приложение Календарь iOS синхронизируется с различными источниками календаря, такими как Google, Exchange, iCloud и т. д.? Какой протокол они используют? Калдав? Если я собираюсь сделать приложение, как это? Как мне сделать так, чтобы события календарей моего приложения синхронизировались с этими источниками календаря?


person yong ho    schedule 11.05.2015    source источник


Ответы (1)


Календарь iOS использует CalDAV для синхронизации с iCloud и Календарем Google, а также AFAIK EWS для синхронизации с Exchange. Вся синхронизация выполняется некоторым демоном EventKit, работающим в фоновом режиме.

Вы можете либо просто использовать EventKit для хранения своих событий и получить всю синхронизацию бесплатно, либо реализовать протоколы самостоятельно. Текущий EventKit имеет некоторые серьезные ограничения, поэтому он может оказаться неправильным подходом для реализации полнофункционального календаря.

Это хорошее введение в создание клиента CalDAV: http://sabre.io/dav/building-a-caldav-client/.

person hnh    schedule 11.05.2015
comment
Итак, мне нужно сделать клиент CalDAV только в том случае, если я хочу синхронизировать только с Календарем Google? - person yong ho; 12.05.2015
comment
Если вы хотите синхронизироваться только с GCal, вы можете создать либо клиент CalDAV, либо клиент GData. Преимущество первого состоит в том, что он работает с большим количеством других серверов. - person hnh; 12.05.2015