Cocoa和Cocoa Touch:如何开始构建Mac和iOS应用

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Cocoa是Mac OS X操作系统固有的开发API。 Cocoa Touch是与iOS密切相关的类似平台。它是用Objective-C编写的,并充当每个操作系统的“顶层”.

可可可被认为是一个应用程序平台或应用程序开发框架,但与Linux或Windows环境中的任何一个相比,它都更集成到操作系统中.

API,操作系统和(当然)苹果自己的硬件之间的这种紧密集成旨在提供无缝的开发环境并实施“ Apple的做事方式”.

可可的历史

可可从字面上开始.

在1980年代初期,一对名为Brad Cox和Tom Love的开发人员试图将对象定向添加到C编程语言中,当时该语言不支持OOP。.

他们的解决方案是创建一个预处理器,以将带有类似Smalltalk的附加内容的C代码呈现为可编译的C代码。 (Smalltalk是一种早期的面向对象语言。)

该预处理器迅速演变为功能完善的语言扩展,并被称为Objective-C。 NeXT软件是由史蒂夫·乔布斯(Steve Jobs)于1985年从苹果公司解雇后创立的,由其创建者授权使用Objective-C,并将其用作多个开发框架的基础.

这些形成了NeXTSTEP和OpenStep应用程序平台,NeXT分别在80年代和90年代出售了这些平台.

苹果在1996年收购了NeXT,史蒂夫·乔布斯(Steve Jobs)再次出任首席执行官。 NeXTSTEP框架进入了Mac操作系统.

苹果已经为另一个项目终止了可可的商标。为了在苹果的新版本框架中快速添加商标商标,他们将其称为Cocoa.

自1990年代末以来,可可就一直是苹果所有操作系统的一部分,并且自那时起就与操作系统和新设备平台一起发展。.

可可做什么?

可可可以做很多事情,但从广义上讲,可分为四类:

  • 充当Objective-C的扩展标准库,为Objective-C设计中没有的更丰富的对象和现代计算语言的功能提供支持.

  • 提供统一的用户界面和用户体验.

  • 允许应用程序访问其他应用程序,服务和设备功能.

  • 鼓励特定的架构和数据管理模式.

这些广泛的设计目标在多个“框架”中得以实现。这个术语可能有点令人困惑。用当代的话来说,可可更像是一个单一的框架,带有多个模块或库。但是苹果称这些库为“框架”。

让我们稍微探讨一下这些功能性目标,以及各种可可框架如何实现它们.

可可作为标准图书馆

Objective-C有一个标准库。在Cocoa环境中,标准库和运行时实际上是由Cocoa提供的。此外,基础套件提供了一组扩展的语言功能,实际上,该功能充当事实上的标准库.

与Objective-C中通常提供的语言功能相比,它提供了更多的高级语言功能。这包括针对常用对象类型的各种基本类,包括数字,日期,字符串,URL,正则表达式和错误消息.

该Foundation Kit框架对于用Objective-C编写的应用程序至关重要。但是,随着Apple推广其较新的Swift开发语言,Apple平台中的应用程序开发已从Objective-C移开。.

Swift本身提供了Foundation Kit添加的许多现代语言功能,目前尚不清楚Foundation和Objective-C在以Swift为中心的未来中将扮演什么角色.

可可作为UI / UX界面

对于应用程序开发人员来说,可可的这一方面也许是最重要的.

在OS X版本的Cocoa中,用户体验API由称为AppKit的框架提供。在iOS的Cocoa Touch中,这称为UIKit.

在这两种情况下,它们都提供图形元素,用户界面控件,窗口和面板管理,多点触摸界面以及用户与系统之间交互的所有其他详细信息.

使用AppKit和UIKit可以使应用程序具有Apple系统固有的外观,并以“正确”的方式响应输入(手势,点击,移动).

Cocoa和Cocoa Touch之间的最大区别是AppKit和UIKit之间的区别。尽管Apple致力于统一平台上的用户体验,但您与iPhone的交互仍然不同于台式机Mac。.

除了略有不同的GUI元素外,UIKit还支持罗盘方向,GPS,加速度计(设备移动)和触摸屏等功能.

可可作为操作系统接口

Apple应用程序还需要能够与其他应用程序和操作系统服务进行交互.

如果您希望能够在聊天应用程序中单击一个电话号码并发出电话,则应用程序必须能够彼此通话.

如果您希望音乐编辑应用程序能够从麦克风拾取声音并播放扬声器,则这些应用程序必须能够与操作系统服务进行交互.

Cocoa提供了完整的框架列表,这些框架提供了对应用程序和服务的访问。这些使应用程序不仅可以作为独立的可执行文件,而且可以在集成的生态系统中存在和运行.

可可建筑师

Cocoa支持两种重要的架构模式,一种在应用程序内,另一种在应用程序如何在自身之外进行通信方面.

Cocoa在编写时就牢记了Model-View-Controller体系结构范例,并支持所有级别的MVC开发.

视图由AppKit或UIKit框架实现。控制器模块通过基础套件中内置的一系列类来支持。模型及其与数据持久层的必需连接由另一个称为“核心数据”的框架处理。.

这种设计鼓励(可能有人说是强制执行)iOS和OS X应用程序中的模型-视图-控制器体系结构.

在不同的应用程序之间,以及在应用程序和服务之间,各种框架以本质上面向服务的方式协调交互。这使相互集成应用程序变得更加容易和安全,从而建立了一个强大的,有弹性的应用程序生态系统.

可可资源

线上

讲解

  • 可可和可可触摸的基本编程概念

  • 可可编码指南简介

  • 可可开发中心

  • 使用Cocoa为初学者编程Mac OS X.

工具类

  • 可可控件:适用于iOS和OS X的开源UI组件.

  • 可可豆:可可项目的包装经理.

社区与持续学习

  • CocoaHeads:致力于由可可和Cocoa Touch开发的全球本地会议和讨论组网络.

  • 可可粉.

图书

  • 使用Cocoa进行Swift开发:为Mac和iOS App Store开发

  • OS X的可可编程:大书呆子牧场指南

  • 用Objective-C学习可可

  • Ry的可可教程

  • 可可(开发人员参考)

  • 可可设计模式.

其他OS X和iOS开发资源

您不能在真空中使用Cocoa或Cocoa Touch。它是更大的Apple App开发环境的一部分,其中包括Xcode,Objective-C和Swift。这些不同的工具和技术共同形成一个开发生态系统.

Xcode

Xcode是构建OS X和iOS应用程序所必需的集成开发环境(IDE)。它与Swift,Cocoa,Apple App Store和更大的Apple生态系统紧密集成.

没有很多专门针对Xcode的教程,因为每种通用的Apple开发资源都涵盖了该教程。不过,此Xcode教程是一个很好的资源,它会随着新版本的Xcode的发布而定期更新.

目标C

  • 关于Objective-C:Apple Developer Center的入门教程

  • Objective-C程式设计

  • Objective-C编程:大书呆子牧场指南.

我们还有一个更完整的Objective-C资源清单.

迅速

  • Swift编程语言:Apple官方指南

  • Swift编程:The Big Nerd Ranch指南:关于该主题的权威书籍.

我们还有一份详尽的Swift资源清单.

通用苹果开发资源

有关Apple平台开发的信息和资源的第一位是Apple Developer网站.

Mac和iOS开发方面的许多最佳书籍都来自Big Nerd Ranch。上面提到了有关特定主题的书籍,您还应该查看有关Mac OS X高级编程和iOS编程的书籍。.

其他良好的常规资源:

  • 雷·温德利奇(Ray Wenderlich)教程:相对较少的提供程序之一,可在Apple更新平台时回溯并更新旧教程.

  • YouTube上的Apple编程频道:不是官方的,但非常有帮助.

  • WeHeartSwift:名义上是关于Swift的,但此站点涵盖了OS X和iOS开发的所有方面.

  • NSHipster:有关Mac和iOS开发的热门博客,其中包含许多有关“ Objective-C,Swift和Cocoa中被忽略的部分”的教程。他们在报道方面也很固执,这可能是一个优势.

  • ObjC.io:有关iOS和OS X开发的高级技术和实践的书籍和文章.

底线…

Cocoa和Cocoa Touch是Mac和iOS本地应用程序开发的基础.

对于iOS,还有其他方法可以使用HTML5和JS构建非本地移动应用,但这并不总是如预期的那样-确实.

如果要构建下一个大型iPhone应用程序,或创建与OS X很好地集成并符合用户期望的Mac应用程序,则确实需要深入研究Cocoa和Cocoa Touch。对于本机应用程序开发,确实没有替代品.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me