作为OSX初学者,我有哪些选择来编写处理iCal数据的应用程序?

时间:2010-01-11 00:00:28

标签: macos osx-snow-leopard

快速背景:我是一名.NET开发人员,主要是Web,但在旧skool VBA,WinForms,一些WPF和许多服务方面都有一些经验。

我现在买了一台新的Mac(Snow Leopard)并且喜欢它,并且首先需要一个自定义的“app”。

我不需要有关如何构建此应用程序的明确说明,但我需要一个起点,因为我对OSX的开发几乎一无所知。我真的很想写这个应用程序,即使有工具,也可以作为学习练习。

应用

  1. 应用程序首先需要从iCal日历中获取“任务”。
  2. 然后,它需要处理“任务”对象,并将其转换为iCal“事件”,“事件”,如日历事件,如“去看牙医”。
  3. 最后,应用程序需要将这些“事件”插入另一个iCal日历中。
  4. 好的,非常简单。显然我不需要第2步的帮助,这只是业务逻辑。一旦我在内存中有了一些对象,我就可以玩它们并创建新的对象,或者ics文件,或者其他什么。

    但我确实需要步骤1和3的帮助,以及一般应用程序的存在方式。

    例如,有哪些选择?该应用程序是一个“服务”?如果是这样,怎么样?理想情况下,应用程序仅在第一个日历中“任务”更改时执行操作。这可能吗?

    最后,我如何以编程方式与iCal进行通信,这是我想要的?

    理想情况下,我希望能够将此应用程序传递给其他人,而不需要配置,除了指定是否允许运行,以及两个日历的名称。

    理想情况下,它会像应用程序“Growl”一样存在,它只运行,工作,并在OSX的全局“设置”中有一个“设置”表单。

    很酷,谢谢你的帮助!

4 个答案:

答案 0 :(得分:4)

与iCal 通信的最简单方法是使用其Apple Events可编写脚本的界面。最常见的方法是通过AppleScript,但还有许多其他选项:我更喜欢Appscript的Python版本(它也支持Ruby和Objective-C)。

但是,任何这些解决方案都需要iCal.app运行。 Apple精心提供{{​​3}},一个直接访问iCal数据的API。与所有Cocoa框架一样,这是针对Objective-C的,但是其他语言包含了它,例如,Calendar Store framework提供了PyObjC

在较低级别,有一些开源库可以处理读写Python wrapper for Calendar Store格式文件,iCal知道如何导入和导出。例如,请参阅iCalendar

答案 1 :(得分:2)

这只是部分答案,但要在Windows上像服务一样运行,请使用launchd。将您的应用程序构建为控制台程序。

如果您熟悉C#,请考虑使用MonoMonoDevelop。 MonoDevelop是Visual Studio,因为OpenOffice是MSOffice。它实际上是一个非常棒的IDE和免费的。它感觉几乎与Visual Studio相同,甚至可以打开并使用Visual Studio项目/解决方案文件!缺点是客户需要的依赖,Mono框架(目前为2.6.1.1)。但它以standard Mac dmg/installer的形式提供。无论如何,Mac / Linux用户都习惯了依赖。

答案 2 :(得分:0)

Apple提供Automator。 http://www.apple.com/downloads/macosx/automator/

你读过这个吗?

它能做你想做的吗?

答案 3 :(得分:0)