第1章介绍iOS 8应用程序开发和Swift
1.1简介
1.2iPhone和iPad的销售数据
1.3手势
1.4传感器
1.5辅助功能
1.6iPhone 6和iPhone 6 Plus
1.7关于iOS操作系统的历史和相关特性
1.7.1iPhone操作系统
1.7.2iPhone OS 2:引入了第三方应用程序和应用程序商店
1.7.3iPhone OS 3
1.7.4iOS 4
1.7.5iOS 5
1.7.6iOS 6
1.7.7iOS 7
1.8iOS 8
1.9Apple Watch
1.10应用商店
1.11Objective-C
1.12Swift:苹果公司未来的编程语言
1.12.1关键特性
1.12.2性能
1.12.3避免错误
1.12.4Swift标准库
1.12.5Swift应用程序和Cocoa框架以及Cocoa Touch框架
1.12.6Swift和Objective-C的相互调用
1.12.7其他苹果公司的Swift资源
1.13能够只使用Swift吗
1.13.1Objective-C程序员利用Swift开发新App
1.13.2Objective-C程序员使用Swift增强现有App功能
1.13.3刚开始开发iOS应用程序的Java、C++和C#程序员
1.13.4快速发展的愿景
1.13.5混合Swift和Objective-C代码
1.14Cocoa Touch框架
1.15Xcode 6集成开发环境
Swift实战之旅:精通iOS应用开发 1.16面向对象编程回顾
1.16.1把汽车当作一个对象
1.16.2方法和类
1.16.3实例化
1.16.4重用
1.16.5消息和方法调用
1.16.6特性和属性
1.16.7封装和信息隐藏
1.16.8继承
1.16.9协议
1.16.10设计模式
1.17在iPhone和iPad模拟器上测试小费计算器(Tip Calculator)应用程序
1.18是什么成就一个伟大的应用程序
1.19iOS安全
1.20iOS出版物和论坛
1.21小结
ⅩⅩ
第2章欢迎应用程序
2.1介绍
2.2技术概要
2.2.1Xcode和Interface Builder
2.2.2标签和图片视图
2.2.3资源和图片集
2.2.4运行应用程序
2.2.5辅助功能
2.2.6国际化
2.3用Xcode创建一个通用应用程序
2.3.1运行Xcode
2.3.2工程和应用程序模板
2.3.3创建和配置一个工程
2.4Xcode的工作台窗口
2.4.1导航区域
2.4.2编辑区域
2.4.3工具区域和查看器
2.4.4调试区域
2.4.5Xcode工具栏
2.4.6工程导航栏
2.4.7键盘快捷键
2.5使用Storyboard创建欢迎应用程序的用户界面
ⅩⅩⅠ
2.5.1给应用程序配置横竖屏
2.5.2提供应用程序图标
2.5.3为应用程序的图片创建一个图片集
2.5.4Storyboard概述和Xcode 的工具区域
2.5.5添加一个图片视图到用户界面
2.5.6用查看器配置图片视图
2.5.7添加并配置标签
2.5.8使用自动布局支持不同尺寸的屏幕和方向
2.6运行欢迎应用程序
2.6.1在iOS模拟器上测试
2.6.2在设备上测试 (只有付费苹果公司开发者成员才可以)
2.7为应用程序添加辅助功能
2.7.1打开图片视图的辅助功能
2.7.2用模拟器的辅助功能查看器配置辅助功能文本
2.8国际化应用程序
2.8.1在翻译过程中锁定用户界面
2.8.2导出用户界面的字符串资源
2.8.3翻译字符串资源
2.8.4导入和翻译字符串资源
2.8.5用西班牙语测试应用程序
2.9小结
第3章小费计算器
3.1介绍
3.2技术概览
3.2.1Swift语言
3.2.2Swift应用程序和Cocoa Touch框架
3.2.3在Swift中使用UIKit和Foundation框架
3.2.4用Interface Builder创建标签、文本输入框和滑动条
3.2.5视图控制器
3.2.6在用户界面控件和Swift代码之间建立连接
3.2.7视图加载之后运行的任务
3.2.8用NSDecimalNumber 做财务计算
3.2.9根据特定地区的货币和比率来格式化数字
3.2.10Swift和Objective-C类型之间的桥接
3.2.11Swift操作符重载
3.2.12变量初始化和Swift可选值(Optional)类型
3.2.13值类型和引用类型
3.2.14代码编辑器中的代码补全提示
3.3创建应用程序的用户界面
3.3.1创建工程
3.3.2通过配置Size Classes来设计一个竖屏iPhone应用程序
3.3.3添加UI控件
3.3.4添加自动布局约束
3.4用Interface Builder创建Outlet
3.5用Interface Builder创建行为(Action)
3.6ViewController类
3.6.1import 声明
3.6.2ViewController 类定义
3.6.3ViewController的@IBOutlet 属性
3.6.4ViewController的其他属性
3.6.5覆写 UIViewController 的viewDidLoad方法
3.6.6ViewController 的calculateTip动作方法
3.6.7ViewController.swift文件中定义的全局工具函数
3.7小结
ⅩⅩⅡ
第4章Twitter搜索应用程序
4.1介绍
4.2测试应用程序
4.3技术概述
4.3.1主-从应用程序模板
4.3.2网页视图――在应用程序中展示网页内容
4.3.3Swift:数组和字典集合
4.3.4NSUserDefaults――为应用程序设置存储本地键-值对
4.3.5使用NSUbiquitousKeyValueStore类在iCloud中存储键-值对
4.3.6社交框架
4.3.7模型-视图-视图控制器(MVC)设计模式
4.3.8Swift:遵循协议
4.3.9Swift:暴露方法给Cocoa Touch库
4.3.10用于提醒对话框的UIAlertController类
4.3.11长按手势
4.3.12这个应用程序中使用到的iOS设计模式
4.3.13Swift:外部参数名
4.3.14Swift:闭包
4.4创建应用程序的用户界面
4.4.1创建工程
4.4.2检查默认的主-从应用程序
4.4.3配置主视图和详情视图
4.4.4创建模型类
4.5模型类
4.5.1ModelDelegate 协议
4.5.2模型类的属性
4.5.3Model类的初始化和同步方法
4.5.4tagAtIndex、queryForTag、 queryForTagAtIndex方法和数量属性
4.5.5deleteSearchAtIndex方法
4.5.6moveTagAtIndex方法
4.5.7updateUserDefaults方法
4.5.8updateSearches方法
4.5.9performUpdates方法
4.5.10saveQuery方法
4.6MasterViewController类
4.6.1MasterViewController类的属性和modelDataChanged方法
4.6.2awakeFromNib方法
4.6.3覆写UIViewController类的viewDidLoad方法和addButtonPressed方法
4.6.4tableViewCellLongPressed和displayLongPressOptions方法
4.6.5displayAddEditSearchAlert方法
4.6.6shareSearch方法
4.6.7覆写UIViewController类的prepareForSegue方法
4.6.8urlEncodeString方法
4.6.9UITableViewDataSource的回调方法
4.7DetailViewController类
4.7.1覆写 UIViewController类的viewDidLoad方法
4.7.2覆写 UIViewController 类的 viewDidAppear方法
4.7.3覆写 UIViewController 类的viewWillDisappear方法
4.7.4UIWebViewDelegate协议方法
4.8小结
ⅩⅩⅢ
第5章国旗竞猜应用程序
5.1介绍
5.2测试国旗竞猜应用程序
5.3技术预览
5.3.1从头开始设计一个Storyboard
5.3.2UINavigationController类
5.3.3Storyboard连线(Segues)
5.3.4UISegmentedControl控件
5.3.5UISwitch控件
5.3.6Outlet集合
5.3.7使用应用程序的主NSBundle获取图片名称列表
5.3.8使用Grand Central Dispatch 在未来执行任务
ⅩⅩⅣ
5.3.9给视图添加一个动画
5.3.10Darwin模块――使用预先定义的C函数
5.3.11生成随机数
5.3.12介绍Swift的一些特性
5.4创建图形用户界面
5.4.1创建工程
5.4.2设计Storyboard
5.4.3配置视图控制器类
5.4.4为QuizViewController类创建用户界面
5.4.5为 QuizViewController类的用户界面设置自动布局
5.4.6QuizViewController的 Outlet属性和相关的行为方法
5.4.7创建SettingsViewController的用户界面
5.4.8SettingsViewController类的Outlet和行为方法
5.4.9创建Model类
5.4.10添加国旗图片到应用程序
5.5Model类
5.5.1ModelDelegate协议
5.5.2Model类的属性
5.5.3Model类的初始化和 regionsChanged 方法
5.5.4Model类的计算属性
5.5.5Model类的toggleRegion、setNumberOfGuesses和notifyDelegate方法
5.5.6Model类的 newQuizCountries方法
5.6QuizViewController类
5.6.1属性
5.6.2覆写UIViewController的viewDidLoad方法并介绍settingsChanged和resetQuiz方法
5.6.3nextQuestion和countryFromFilename方法
5.6.4submitGuess方法
5.6.5shakeFlag 方法
5.6.6displayQuizResults方法
5.6.7覆写 UIViewController 类的prepareForSegue方法
5.6.8数组的扩展方法shuffle
5.7SettingsViewController类
5.7.1属性
5.7.2覆写 UIViewController 类的viewDidLoad方法
5.7.3事件处理和displayErrorDialog方法
5.7.4覆写UIViewController的viewWillDisappear方法
5.8小结
第6章大炮游戏应用程序
6.1介绍
6.2测试大炮游戏应用程序
6.3技术预览
6.3.1Xcode游戏模板和 SpriteKit
ⅩⅩⅤ
6.3.2使用AVFoundation框架和AVAudioPlayer类给游戏添加声音
6.3.3SpriteKit框架类
6.3.4SpriteKit的游戏循环和动画帧
6.3.5物理
6.3.6冲突检测和SKPhysicsContactDelegate协议
6.3.7CGGeometry结构体和相关函数
6.3.8覆写UIResponder 的touchesBegan方法
6.3.9根据屏幕的大小确定游戏元素的大小和速度
6.3.10Swift语言的特性
6.3.11NSLocalizedString函数
6.4创建工程和类
6.5GameViewController类
6.5.1覆写UIViewController 的viewDidLoad方法
6.5.2为什么AVAudioPlayer是全局变量
6.5.3删除GameViewController类中自动生成的方法
6.6拦截器类
6.6.1BlockerSize 枚举和拦截器类的属性
6.6.2拦截器的初始化方法
6.6.3startMoving、playHitSound和blockerTimePenalty方法
6.7目标(Target)类
6.7.1TargetSize和TargetColor 枚举类
6.7.2目标类的属性
6.7.3目标类的初始化
6.7.4startMoving、playHitSound和targetTimeBonus方法
6.8大炮类
6.8.1大炮类的属性
6.8.2大炮类的初始化
6.8.3rotateToPointAndFire方法
6.8.4fireCannonball和createCannonball方法
6.9游戏场景类
6.9.1CollisionCategory结构体
6.9.2场景类的定义以及它的相关属性
6.9.3覆写SKScene类的didMoveToView方法
6.9.4createLabels方法
6.9.5SKPhysicsContactDelegate协议的didBeginContact和支持方法
6.9.6覆写UIResponder的touchesBegan方法
6.9.7覆写SKScene的update和 gameOver方法
6.10GameOverScene类
6.11可编程的国际化
ⅩⅩⅥ
6.12小结
第7章涂鸦应用程序
7.1介绍
7.2测试涂鸦应用程序
7.3技术总览
7.3.1用UIView的子类,drawRect方法、UIBezierPath类和 UIKit图形系统来进行绘图
7.3.2处理多点触摸事件
7.3.3监听移动事件
7.3.4将绘制作为一个图片进行显示
7.3.5Storyboard加载初始化
7.4创建应用程序的用户界面和添加自定义类
7.4.1创建工程
7.4.2创建初始化视图控制器的用户界面
7.4.3创建颜色视图控制器的用户界面
7.4.4创建画笔视图控制器的用户界面
7.4.5添加涂鸦类
7.5ViewController类
7.5.1ViewController类的定义、属性和委托方法
7.5.2覆写UIViewController类的prepareForSeque方法
7.5.3ViewController 类的undoButtonPressed、clearButtonPressed和displayEraseDialog方法
7.5.4覆写UIResponder 的motionEnded方法
7.5.5ViewController类的actionButtonPressed方法
7.6Squiggle 类
7.7DoodleView类
7.7.1DoodleView的属性
7.7.2DoodleView的初始化方法
7.7.3DoodleView类的undo和clear方法
7.7.4覆写UIView 的drawRect方法
7.7.5覆写UIResponder类的处理触摸事件的方法
7.7.6DoodleView的图片计算属性
7.8ColorViewController类
7.8.1ColorViewControllerDelegate协议和 ColorViewController类的开始部分
7.8.2覆写UIViewController 类的viewDidLoad方法
7.8.3ColorViewController 的colorChanged和done方法
7.9StrokeViewController类
7.9.1UIView 的SampleLineView子类
7.9.2StrokeViewControllerDelegate协议和StrokeViewController类的开始部分
7.9.3覆写UIViewController类的viewDidLoad方法
7.9.4StrokeViewController类的lineWidthChanged和done方法
7.10小结
第8章地址簿应用程序
8.1介绍
8.2测试地址簿应用程序
8.3技术预览
8.3.1添加 Core Data支持
8.3.2数据模型和 Xcode的数据模型编辑器
8.3.3Core Data框架的类和协议
8.3.4UITableViewController 的单元格样式
8.3.5包含静态单元格的UITableViewController
8.3.6监听表示键盘显示和隐藏的通知
8.3.7通过编程的方式来滑动一个UITableView
8.3.8UITextFieldDelegate协议的相关方法
8.4创建工程并配置数据模型
8.4.1创建工程
8.4.2编辑数据模型
8.4.3生成NSManagedObject的子类联系人类
8.5创建用户界面
ⅩⅩⅦ
8.5.1自定义MasterViewController类
8.5.2自定义DetailViewController类
8.5.3添加AddEditViewController类
8.5.4添加InstructionsViewController类
8.6MasterViewController类
8.6.1MasterViewController类、属性和awakeFromNib方法
8.6.2覆写UIViewController 类的viewWillAppear方法和displayFirstContact.OrInstruction
方法
8.6.3覆写UIViewController 类的viewDidLoad方法
8.6.4覆写UIViewController类的prepareForSegue方法
8.6.5AddEditTableViewControllerDelegate协议的didSaveContact方法
8.6.6DetailViewControllerDelegate协议的didEditContact方法
8.6.7displayError方法
8.6.8UITableViewDelegate协议的相关方法
8.6.9自动生成的NSFetchedResultsController对象和NSFetchedResultsControllerDelegate
协议的相关方法
8.7DetailViewController类
8.7.1DetailViewControllerDelegate协议
8.7.2DetailViewController类的属性
8.7.3覆写UIViewController类的viewDidLoad和displayContact方法
8.7.4AddEditTableViewControllerDelegate协议的didSaveContact方法
8.7.5覆写UIViewController类的prepareForSegue方法
8.8AddEditTableViewController类
8.8.1AddEditTableViewControllerDelegate协议
8.8.2AddEditTableViewController类的属性
8.8.3覆写UIViewController类的viewWillAppear和viewWillDisappear方法
8.8.4覆写UIViewController类的viewDidLoad方法
8.8.5keyboardWillShow和keyboardWillHide方法
8.8.6UITextFieldDelegate协议的textFieldShouldReturn方法
8.8.7返回值为@IBAction的saveButtonPressed方法
8.9AppDelegate类
8.9.1UIApplicationDelegate协议的application:didFinishLaunchingWithOptions:方法
8.9.2UISplitViewControllerDelegate协议的相关方法
8.9.3支持应用程序的Core Data功能的一些属性和方法
8.10小结
第9章应用商店和应用业务问题
9.1介绍
9.2iOS开发者计划:为了测试和提交应用程序,设置用户的开发者账号
9.2.1设置你的开发者团队
9.2.2为测试应用程序配置一个设备
9.2.3使用TestFlight进行Beta测试
9.2.4创建明确的应用程序ID
9.3iOS人机界面指南
9.4通过iTunes Connect提交应用程序
9.5给应用程序定价:收费还是免费
9.5.1付费的应用程序
9.5.2免费的应用程序
9.6应用程序如何赚钱
9.6.1使用应用内购买来销售虚拟商品
9.6.2应用内广告服务iAd
9.6.3App Bundles
9.6.4为企业开发定制应用程序
9.7用iTunes Connect管理应用程序
9.8iTunes Connect需要的一些信息
9.9iTunes Connect开发者指南:提交应用程序到苹果公司的步骤
9.10推广应用程序
9.11其他一些流行的移动应用平台
9.12跨平台的应用程序开发工具
9.13小结