Mac技术预览之<2>为Mac平台创建软件产品

应用程序是Mac软件中最常见的类型,但是你也可以创建许多其他类型的软件。以下的部分介绍了你在Mac平台下可以创建软件产品的种类以及给你创建特定种类软件的建议。

1.应用程序

迄今为止,为Mac,或者其他平台,创建的软件的主导形式是应用程序。你可以使用Cocoa来创建新的Mac应用程序。为了学习更多关于Cocoa中的特点和框架,请看Cocoa Application Layer

总体上,有三种基本类型的Mac应用程序:

  • 单窗口的实用应用程序:在一个窗口里帮助用户执行主要的任务。尽管单窗口的实用应用程序可能也会打开另一个窗口,例如偏好设置窗口,但是用户主要待在主窗口中。计算器就是单窗口的实用应用程序的一个例子。
  • 单窗口的”鞋盒(shoebox)”应用:”鞋盒”应用程序的定义特点是它给用户一个展示内容的特定视图的方式。例如,iPhoto用户在Finder中并没有发现他们的照片,相反,他们管理相片完全在应用程序中。
  • 多窗口的基于文档的应用程序:例如Mac中的Pages,为用户创建的每个文档或视图打开一个新的窗口。这种类型的应用程序不需要一个主窗口(尽管它可能打开一个偏好设置或者辅助窗口)。

应用程序扩展:

无论你编写那种类型的应用程序,你可以使用应用程序扩展来将编写的这个应用程序的功能和内容扩展到系统的其他部分,甚至是其他应用程序。扩展的类型包括:

  • Today。展示你的应用程序的信息,或者在通知中心的Today视图中执行一个快速的任务。
  • Share。通过将信息发送到一个网站,社交服务或者用其他的方式将数据发送出去来和别人分享信息。
  • Action。创建一个上下文来允许用户在其他应用程序中来操作或者查看你应用程序中的数据。
  • Finder。在Finder中展示同步的状态信息。

App Store

无论你选择哪种样式的应用程序,你的目标可能是让你的应用程序进入Mac App Store。如果你想实现这个目标,你就会与写代码和行政任务打交道。

这篇文档会让你大致了解下你可以在你的应用程序中使用到的Mac技术。为了进一步了解开发过程中的其他任务,请阅读App Distribution Quick Start

2.开发语言

OS X 的工具支持许多种不同的语言。除了Swift,Object-C,C++,C,和其他此类的语言,Xcode还提供了对许多种脚本语言的支持。想了解更多,请看下面的Scripts。

用来开发OS X程序最常见的语言是Swift和Object-C。下面讲解一个这两种语言开发的主要特定。(这里就不翻译了,大家可以找专门的书籍来学习这两种编程语言)

3.其他类型的软件

你可以为Mac开发许多其他种类的软件,大多数这些软件产品没有用户界面(UI),相反,提供了继承自其他软件功能的服务,例如第三方应用程序或者系统自身。

<1>框架(Frameworks)

框架是一种特殊类型的资源包,用来传播分享的资源,包括库代码,资源文件,头文件,和参考文档。框架提供了一种更灵活的方式来传播分享的代码,例如,图片文件和本地化字符串,框架也有一个版本控制机制,这样的话,在同一个框架资源包中传播多个版本的框架就成为了可能。

苹果使用框架来传播OS X(和 iOS)的公共接口,它们被打包放在了软件开发工具集中。软件工具集(SDK)收集了框架,头文件,工具集,和其他资源,这些对于在一个平台的特定版本总开发软件是很有必要的。你也可以使用框架来传播你的公共代码和接口。

你可以使用任何编程语言来创建你自己的框架,但是最好选择那种对于后期来说很容易更新框架的语言。苹果框架通常使用 ANSI C,Swift或者Objective-C来到处语法接口。这些语言有一个定义很好的到处结构,所以,在框架的不同版本中保持兼容性就变得很容易了。

为了学习框架的结构和成分,请看一下 Framework Programming Guide

<2>插件(Plug-ins)

插件是扩展许多应用程序和系统行为的标准方式。插件就是一个资源包,在一个应用程序运行的时候动态加载进去的。因为插件是动态加载的,所以他可以被用户添加或删除。

下面列出的应用程序和系统插件展示了许多机会,对于开发插件来说。

  • Address Book action plug-ins
  • App plug-ins
  • Automator plug-ins
  • Core Audio plug-ins
  • Image units
  • Input methods
  • Metadata importers
  • Quartz Composer plug-ins
  • Quick Look plug-ins
  • Safari plug-ins

想要了解如何使用Netscape API来创建Safari插件,请看WebKit插件编程话题和WebKit Framework Reference

<3>Safari Extensions

使用Safari Extensions为Safari web浏览器和Safari展示的内容上添加新特点。例如,你可以向浏览器的工具栏上添加自定义按钮,重新编排网页,过滤不想要的网址,和创建上下文菜单选项。扩展允许你向网页内容中注入脚本和样式表。

Safari Extensions就是HTML,JavaScript,CSS的集合,都支持HTML5和CSS3.。Safari Extensions在OS X和运行Safari5.0及以后版本的Windows系统中都支持。

为了学习更多关于Safari Extensions的知识,请阅读Safari Extensions开发指南,在Safari Developer Library

<4>代理应用程序(Agent Applications)

代理是一种特殊类型的应用程序,通常运行在后台,为用户或其他应用程序提供信息。例如,Dock就是一个由OS X运行的代理程序。

一个代理程序可能会被用户开启,但更有可能被系统或者其他应用程序开启。结果,代理程序不会显示在Dock、中,尽管代理偶尔会出现在前台,展示一个用户界面,但是它们没有一个菜单栏供选择命令。所有与代理应用的用户交互都是很简洁的,只需要完成特定的目的,例如偏好设置。

为了创建一个代理应用,你要创建一个带有资源包的应用程序,并且在他的属性列表(Info.plist)中包括键LSUIElement。 关于使用这个键的详细信息,请看
Information Property List Key Reference

<5>屏幕保护程序

屏幕保护程序是很小的程序,当电脑在特定的时间内不使用的话,屏幕保护程序就会控制屏幕。屏幕保护程序不仅可以提供娱乐,也可以不让屏幕暴露出来。OS X支持slidershows和编程方式来阐述屏幕保护内容。

slideshow是一种简单类型的屏幕保护,而它并不需要写代码来实现。为了创建一个slideshow,你要创建一个资源包,扩展名是.slideSaver。在这个资源包里面,你放一个资源目录,里面包含你想要展示在slideshow里面的图片。你的资源包也应当包含一个信息属性表(.plist),它声明关于这个资源包的基本信息,例如姓名,标识字符串,和版本。

OS X包含了几个slideshow 屏幕保护,你可以使用它们作为模板来创建自己的屏幕保护。这些屏幕保护位于/System/Library/Screen Savers。你自己的slideshows要么放在/Library/Screen Savers或者一个用户中的/Library/Screen Savers

编程实现屏幕是一个不断产生内容到屏幕上的屏幕保护。你可以使用这种屏幕保护来创建动画,或者创建一个可供用户配置的屏幕保护。编程实现屏幕保护的资源包扩展名为.saver

你可以选择Swift或者Object-C来实现对屏幕保护程序的编写。特别地,你创建一个ScreenSaverView的子类,父类提供了展示屏幕保护内容和配置选项的接口。信息属性列表向系统提供了自定义子类的名字。编程创建屏幕保护程序的更多知识,请看
Screen Saver Framework Reference

<6>服务(Services)

服务不是你写的分开的程序,相反,它们是你的应用程序导出来的特定,有利于其他应用程序。服务能够让系统中的其它程序来分享你应用中的资源和能力。用户可以通过服务菜单来获取服务,每个应用程序的菜单中都有服务菜单。

服务通常对当前选择的数据有作用。关于如何在你的应用程序中提供和使用服务,请看Services Implementation Guide

<7>设备驱动

设备驱动是一种特殊类型的内核扩展,能让OS X来与许多硬件设备进行通信,例如,鼠标、键盘和FireWire 驱动。设备驱动会将硬件状态告诉系统,促进特定设备的数据传输。OS X默认为许多种设备提供驱动,但这些可能不会满足所有硬件的开发者的需要。

苹果提供了你可以使用的代码作为你自定义驱动的基础。I/O Kit 提供了面向对象的框架来开发设备驱动,使用C++。为了学习更多关于I/O Kit ,请看IOKit Fundamentals

下面有的章节没有翻译:

  • Kernel Extensions
  • Scripting Additions for AppleScript
  • Launch Items and Daemons
  • Command-Line Tools
  • Mail Stationery
  • Dynamic Websites and Web Services

本文翻译自:Creating Software Products for the Mac Platform

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值