通过前边几章,你已经学会了如何编写一个带有简单用户界面和基本行为的应用。现在,你可能正思考实现额外的行为,从而把你的项目变成一个功能完善的应用。
在你考虑为应用添加哪些功能的时候,要记住你不需要从零开始执行所有的事情。iOS提供的框架定义了特定的功能--从游戏和媒体到安全和数据管理,你可以把现有的整合到你的应用中。你已经使用了UIKit框架来设计app的用户界面,使用了Foundation框架把常见的数据结构和行为应用到你的应用中。在iOS app开发过程中有两个最常见的框架,但还有很多其他的框架。
在这里我还是要推荐下我自己建的iOS开发学习群:680565220,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程,欢迎进阶中和进想深入iOS的小伙伴。
本章是一个更高层次的技术和框架的概览,你可能会考虑应用到你的app中。本章可以作为一个探究可能性技术的起点。本章全部概览可用于iOS上,你可以参看iOS Technology Overview。
用户界面
iOS有很多框架和技术可用来创建和优化的app用户界面。
UIKit
UIKit框架提供了可创建基于触摸的用户界面的类。由于所有的iOS应用都是基于UIKit,所以你不能发布一款没有使用该框架的应用。UIKit提供了绘制到屏幕、处理事件以及创建用户界面所需的基础设施。UIKit也可以通过管理展示在屏幕上的内容来组织一个复杂的应用。更多关于UIKit的信息,可查看UIKit Framework Reference。
Core Graphics
Core Graphics是一个低层级的基于C的框架,可用来处理高质量的矢量图、基于路径的绘制、图像、数据管理以及其他等等。当然,在iOS中创建图形最简单最高效的方法是使用预渲染图片与UIKit中的标准视图和控件,这让iOS可以完成绘图的任务。由于UIKit是一个更高层级的框架,它也提供了用于自定义绘图的类,包括路径、颜色、模式、渐变、图片、文本以及过渡等。尽可能地用UIKit代替Core Graphics使用。更多信息可查看Core Graphics Framework Referencee。
Core Animation
Core Animation是一项允许你做出高级动画和视觉效果的技术。UIKit提供的动画是构建在Core Animation技术之上,如果你想要超出UIKit能力范围内的动画,那你可以直接使用Core Animation。Core Animation接口包含在Quartz Core框架内。使用Core Animation,你能创建一个可以操作、旋转、缩放等的对象布局层级。通过使用Core Animation常见的view-like概念,你可以创建动态的用户界面,无需使用low-level图形API,比如OpenGL ES。更多信息可查看Core Animation Programming Guide。
游戏
在为iOS开发游戏时,你有很多不同的技术需要研究。
Game Kit
Game Kit框架提供了排行榜、成就以及其他可添加到iOS游戏中的功能。更多信息可查看Game Kit Framework Reference.
Sprite Kit
Sprite Kit框架为动画任意纹理图像或精灵提供了图形支持。除了作为图形引擎外,它还包含给对象赋予活力的物理支持。对于游戏或者那些需要复杂动画链的应用来说,Sprite Kit是个很好的选择。更多信息可参看Sprite Kit Programming Guide。
OpenGL ES
OpenGL ES是一个低级别的框架,为支持硬件加速2D和3D绘图提供工具。苹果的OpenGL ES标准实现与设备硬件紧密集合,从而为全屏展示的游戏类应用提供高帧率。由于OpenGL ES是一个低级别的,更关注硬件的API,所以它有一个陡峭的学习曲线,并且对应用程序的整体设计有着显著影响。对于需要高性能图形做专业用途的应用,可以考虑使用Sprite Kit或Core Animation。更多信息可参看OpenGL ES Programming Guide for iOS。
Game Controller
Game Controller框架可以很容易地找到连接在Mac或者iOS设备上的控制器。当在你设备上发现控制器时,游戏会读取控制输入作为正常的游戏设置的一部分。游戏控制器为玩家找到了控制游戏的新途径。苹果已经有了相应的硬件控制器设计规范,以确保所有的控制器都有玩家和设计师可以信赖的一致的控制元素。更多信息可参看Game Controller Framework Reference。
Data
当使用app的数据时,你需要考虑现有的框架中有什么功能可以使用。
Core Data
Core Data框架管理着你的数据模型。通过Core Data,你可以创建模型对象,称为管理对象。你管理着这些对象间的关系,并通过该框架对数据作出更改。Core Data利用了内置的SQLite技术来高效地储存和管理数据。更多信息可查看Core Data Framework Reference。
Foundation
在该教程的刚开始的章节中,你已经使用过Foundation框架了。该框架定义了Objective-C类的基础层。除了提供一套有用的原始对象类之外,该框架还介绍了几个定义Objective-C没有覆盖的行为的范例。在这其中,该框架包含了代表基本数据类型的类,比如字符串和数字,以及储存其他对象的集合类。更多信息可参看Foundation Framework Reference。
媒体
媒体框架为你的应用提供了处理音频和视频的能力。
AV Foundation
AV Foundation是用来播放和创建time-based视听媒体的框架之一。比如,你可以使用AV Foundation来检查、创建、编辑或者重新编码媒体文件。你也可以用它从设备获得输入流,并在实时捕获和回放期间操作视频。更多信息可参看AV Foundation Framework Reference。