2019独角兽企业重金招聘Python工程师标准>>>

Start Developing iOS Apps Today系列之后续

十二、iOS 技术

之前您已了解了如何编写一个具有简单用户界面和基本行为的应用程序。现在您或许在考虑实现更多的行为,使项目成为一款功能完备的应用程序。

在思考要添加哪些功能之前,谨记一条:您无需一切从头开始。iOS 提供了定义特殊功能集的框架,从游戏、媒体到密保和数据管理,每样均可以整合到您的应用程序中。您已使用 UIKit 框架来设计应用程序的用户界面,并使用 Foundation 框架将常见数据结构和行为归并到代码。这是 iOS 应用程序开发中两个最常用的框架,而您能使用的远不止这些。

本章节大致概述了可能在应用程序中采用的技术和框架。您不妨将本章节当做探索可行技术的起点。有关 iOS 中可用技术的完整概述,请参阅《iOS Technology Overview》(iOS 技术概述)。

用户界面

iOS 具有许多框架和技术,用于创建和润色应用程序的用户界面。

UIKit。

      UIKit 框架提供的类可用于创建触摸式用户界面。所有 iOS 应用程序都基于 UIKit,因此您无法在没有框架的情况下交付应用程序。UIKit 提供基础结构,用于在屏幕上绘图、处理事件,以及创建通用用户界面元素。通过管理屏幕上显示的内容,UIKit 还能组织复杂的应用程序。有关更多信息,请参阅《UIKit Framework Reference》(UIKit 框架参考)。

Core Graphics。

Core Graphics 是一种基于 C 语言的低层次框架,在处理高品质矢量图形、基于路径的绘图、变换、图像和数据管理等方面,它将是您的得力助手。当然,在 iOS 中创建图形,最简而有效的方法是将预渲染的图像与 UIKit 框架的标准视图和控制配合使用,并让 iOS 完成绘图。毕竟,UIKit 是一种高层次的框架,它同时还提供用于自定绘图的类,包括路径、颜色、图案、渐变、图像、文本和变换,请尽可能地使用它们来代替 Core Graphics。有关更多信息,请参阅《Core Graphics Framework Reference》(Core Graphics 框架参考)。

Core Animation。

      Core Animation 是一种能让您制作高级动画和视觉效果的技术。UIKit 提供的动画,是建立在 Core Animation 技术之上的。如果您需要超出 UIKit 功能的高级动画,可以直接使用 Core Animation。Core Animation 接口包含在 Quartz Core 框架中。借助 Core Animation,您将能创建不同层次的层对象,并对它们进行操控、旋转、缩放、变换等等。通过使用大家所熟悉的 Core Animation 视图式抽象,您可以创建动态用户界面,而无需使用底层的图形 API,如 OpenGL ES 等。有关更多信息,请参阅《Core Animation Programming Guide》(Core Graphics 框架参考)。

游戏

在开发 iOS 游戏时,您需要尝试多种技术。

Game Kit。

      Game Kit 框架提供了排行榜、成就和其他功能,可添加到 iOS 游戏中。有关更多信息,请参阅《GameKit Framework Reference》(Game Kit 框架参考)。

Sprite Kit。

      Sprite Kit 框架在使任意纹理图像或角色产 生动画效果方面提供图形支持。它不仅是一台图形引擎,还能提供物理支持使对象变得更加生动。对于游戏和其他要求复杂动画链的应用程序,Sprite Kit 不失为一个好的选择。(其他类型的用户界面动画,则可使用 Core Animation 代为处理。)有关更多信息,请参阅《SpriteKit Programming Guide》(Sprite Kit 编程指南)。

OpenGL ES。

      OpenGL ES 是一种底层框架,它为硬件加速的 2D 和 3D 绘图提供工具支持。Apple 实施的 OpenGL ES 标准,能与设备硬件紧密协作,从而为全屏幕游戏类应用程序提供很高的帧速率。OpenGL ES 是一种底层的、专注于硬件的 API,因此具有较高的学习难度,并将对您的应用程序的整体设计产生显著影响。(对于要求高性能图形以用于更多特定用途的应用程序,请考虑使用 Sprite Kit 或 Core Animation。)有关更多信息,请参阅《OpenGL ES Programming Guide for iOS》(iOS 的 OpenGL ES 编程指南)。

Game Controller。

      Game Controller 框架能让您快速找到接入 Mac 或 iOS 设备的控制器。在设备上找到控制器后,您的游戏会将控制输入读取为正常游戏设置的一部分。这些控制器为玩家操作游戏提供了新的方式。Apple 具有为硬件控制器专设的技术规格,以确保控制器的控制元素类别一致,玩家和游戏设计者们均可以此为依据。有关更多信息,请参阅《Game Controller Framework Reference》(Game Controller 框架参考)。

数据

处理应用程序数据时,请思考现有框架中有哪些可用的功能。

Core Data。

      Core Data 框架管理应用程序的数据模型。借助 Core Data,您可以创建模型对象(称为被管理的对象)。管理那些对象之间的关系,并通过框架更改数据。Core Data 利用内建的 SQLite 技术,高效地储存和管理数据。有关更多信息,请参阅《Core Data Framework Reference》(Core Data 框架参考)。

Foundation。

      您已在本指南的前文中接触过 Foundation。Foundation 框架定义了 Objective-C 类的最底层。除了提供一组基本且实用的对象类,本框架还介绍了数个范例来阐明 Objective-C 语言中未涉及的行为。与其他框架相比,本框架包括了表示基本数据类型的类(如字串和数字),以及用于储存其他对象的集类。有关更多信息,请参阅《Foundation Framework Reference》(Foundation 框架参考)。

Media

Media 框架提供多种功能,用于处理应用程序中的音频和视频。

AV Foundation。

      AV Foundation 可用于播放和创建基于时间的音频视觉媒体,是数个具有该功能框架中的一个。例如,您可以使用 AV Foundation 来检查、创建、编辑媒体文件,或对其进行重新编码。您还可以通过它获取设备的输入流,以及在实时捕捉和回放过程中处理视频。有关更多信息,请参阅《AV Foundation Framework Reference》(AV Foundation 框架参考)。

转载于:https://my.oschina.net/u/1782374/blog/373015

Start Developing iOS Apps Today系列(十二)相关推荐

  1. Start Developing iOS Apps Today系列(二)

    2019独角兽企业重金招聘Python工程师标准>>> Start Developing iOS Apps Today系列之入门 二.教程:基础 本教程描述了什么是应用程序.创建简单 ...

  2. Alamofire源码解读系列(十二)之请求(Request)

    本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...

  3. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  4. kotlin杂谈系列十二(Kotlin和Java的互操作)

    Kotlin杂谈系列十二 这次就主要来谈谈kotlin和java互操作的问题 kotlin出来的使命就是为了解决java的模板问题和一些冗长的问题所以kotlin天生就很好的支持了java 所以我们在 ...

  5. Reflex WMS入门系列十二:Reflex里的Location

    Reflex WMS入门系列十二:Reflex里的Location 玩过SAP系统里的人都知道,在SAP系统里库存管理分为IM Level和WM Level.IM Level的仓库,在SAP里被定义为 ...

  6. Highcharts翻译系列十二:gauge测量图

    Highcharts翻译系列十二:gauge测量图 说明 测量图需要highcharts-more.js的支持 属性 参数 描述 默认值 animation 动画 true color 主要颜色或序列 ...

  7. xen是服务器虚拟化,xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移

    xen虚拟化实战系列文章列表 xen虚拟化实战系列(十三)之xen虚拟机集中管理之convirt 1. 方案背景概述 本文是有对我们一个xen虚拟化生产环境将要改造的一个方案而来,在项目上线初期,没有 ...

  8. java死锁业务场景_【深入浅出多线程系列十二】:什么是死锁?(场景+代码示例)...

    在学习Java的道路上,是否路过多线程时总让你很迷惘:很不巧,我也是,而使我们感到很迷惘主要原因都源于没有对概念的深深的理解和实践.所以我决定漫步Java多线程,同你一起会会多线程. 多线程系列 多线 ...

  9. 数据与广告系列十二:接上一篇,见习算法工程师教程

    作者|黄崇远(题图:ssyer.com,CCO协议)  公号,数据虫巢(ID: blogchong) " 看完了这篇,你就是个见习级算法工程师了.你觉得可能吗?" 接上一篇< ...

最新文章

  1. 欧盟剑指科技巨头,意欲上调税款
  2. 用人铁律:高层看胸怀、中层看德行、基层看才能
  3. 书评 —— 深入网站开发和运营
  4. 2021年春季学期-信号与系统-第八次作业参考答案
  5. 在DWR中实现直接获取一个JAVA类的返回值的两种方法
  6. sandy引擎学习笔记: 创建一个立方体
  7. jBPM4.4 window下启动tomcat
  8. c++用tinyxml2读xml文件,转化为字节码,解析并保存
  9. 启发式搜索--八数码问题
  10. spring上传文件
  11. 人脸识别有趣应用3——抠出人脸并给人脸涂上戏剧脸谱
  12. Axure RP9基本操作
  13. Flink进行POJO报错
  14. 深度学习入门---(1)神经元和激活函数
  15. python凯撒密码e_凯撒密码python实现
  16. 混沌交易策略(鳄鱼线)
  17. 汉英谚语与中西方文化(转贴)
  18. 鲁棒优化入门(一)——工具箱Xprog和RSOME的安装与使用
  19. 漫画 | 一口气搞懂 Serverless !
  20. cdrx7拼版工具在哪里_coreldraw插件 魔镜二周年 印刷拼版教程

热门文章

  1. Ignite与Spark集成时,ClassNotFoundException问题解决
  2. python输入与输出165
  3. SpringBoot(十二):springboot如何测试打包部署
  4. ID3 Algorithm for Decision Trees
  5. eclipse离线安装插件过程
  6. 集美大学教务处验证码识别(一)
  7. Android自定义控件之轮播图控件
  8. static final public synchronized abstract
  9. Python3 命名规范
  10. springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...