Как начинающий OSX, какие у меня есть варианты для написания приложения, которое обрабатывает данные iCal? - PullRequest
1 голос
/ 11 января 2010

краткая справка: Я являюсь разработчиком .NET, главным образом для Web, но с некоторым опытом работы со старым skool VBA, WinForms, некоторыми WPF и множеством служб.

Я купил новый Mac (Snow Leopard), и мне его очень нравится, и у меня возникла первая потребность в собственном «приложении».

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

APP:

  1. Сначала приложение должно взять «Задачи» из календаря iCal.
  2. Затем необходимо обработать объекты «Задача» и превратить их в iCal «События», «События», как в событии календаря, например «перейти к стоматологу».
  3. Наконец, приложению необходимо вставить эти «события» в другой календарь iCal.

Хорошо, довольно просто. Очевидно, мне не нужна помощь с шагом 2, это просто бизнес-логика. Когда у меня в памяти есть какие-то объекты, я могу поиграть с ними и создать новые объекты или файлы ics или что-то еще.

Но мне нужна помощь с шагами 1 и 3, и вообще, как будет существовать приложение.

Например, какие есть варианты? Будет ли приложение "услугой"? Если так, то как? В идеале приложение будет выполнять действия только при изменении «Задачи» в первом календаре. Это возможно?

Наконец, как мне программно общаться с iCal, возможно ли то, что я хочу?

В идеале я хотел бы иметь возможность передать это приложение кому-то другому, без особой необходимости в настройке, кроме указания, разрешено ли его запускать или нет, и имен двух календарей.

В идеале, опять же, это вроде бы существует как приложение «Growl», которое просто запускается, работает и имеет форму «Настройки» в глобальных «Настройках» для OSX.

Круто, спасибо за любую помощь!

Ответы [ 4 ]

4 голосов
/ 11 января 2010

Самый простой способ общаться с iCal - это использовать его сценарий Apple Events. Наиболее распространенный способ сделать это - через AppleScript , но есть ряд других вариантов: я предпочитаю версию Python Appscript (она также поддерживает Ruby и Objective-C) .

Однако для любого из этих решений требуется iCal.app. Apple тщательно продумывает Framework Store Framework , API для прямого доступа к данным iCal. Как и во всех средах Cocoa, это для Objective-C, но есть обертки для него из других языков, например, PyObjC предоставляет Оболочку Python для Calendar Store .

На более низком уровне существуют библиотеки с открытым исходным кодом, которые занимаются чтением и записью файлов формата iCalendar , которые iCal знает, как импортировать и экспортировать. См. Например, vobject .

2 голосов
/ 11 января 2010

Это только частичный ответ, но чтобы запустить что-то вроде службы в Windows, используйте launchd . Создайте свое приложение как консольную программу.

Если вы знакомы с C #, рассмотрите возможность использования Mono и MonoDevelop . MonoDevelop предназначен для Visual Studio, а OpenOffice - для MSOffice. Это на самом деле довольно замечательная IDE и бесплатная. Он выглядит почти так же, как Visual Studio, и даже будет открывать и использовать файлы проекта / решения Visual Studio! Недостатком является зависимость, которая понадобится вашим клиентам, платформа Mono (в настоящее время 2.6.1.1). Но он доступен в виде стандартного Mac dmg / installer . А люди Mac / Linux все равно привыкли к зависимостям.

0 голосов
/ 28 января 2012

Ознакомьтесь с примером кода проекта моста сценариев iCal по адресу: http://developer.apple.com/library/mac/ipad/#samplecode/ScriptingBridgeiCal/Introduction/Intro.html.

0 голосов
/ 11 января 2010

Apple предоставляет Automator. http://www.apple.com/downloads/macosx/automator/

Вы читали об этом?

Он делает то, что вы хотите?

...