iOS介绍
概述
iOS(原名 iPhone OS,自 iOS 4 后改名为 iOS)是苹果公司为移动设备所开发的专有移动操作系统,所支持的设备包括 iPhone、iPod touch 和 iPad。与 Android 不同,iOS 不支持任何非苹果的硬件设备。
iOS以优秀的用户体验而闻名。苹果设备的配置并不比中高端的Android设备配置高。但是凭借着iOS
的加持,iOS的App运行相较于Android App更流畅,更稳定,细节处理更好。在2106年第三季度,
苹果的营业利润就占据了智能手机行业的103.6%。
每一年苹果都要在美国举办全球开发者大会(英语:Apple Worldwide Developers Conference,缩写:WWDC)。WWDC主要目的是向该公司产品的相关软件的开发者展示最新的软件和技术。
历史
iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。最初苹果公司并没有给随iPhone 发行的iOS一个独立的称谓,直到 2008 年才取名为 iPhone OS,并在 2010 年 6 月改名为 iOS。2012年发布四英寸设备iPphone 5,从此开启多屏幕适配的道路。WWDC 2013 中,苹果发布了 iOS 7,彻底更改了用户界面,将原本拟物的风格转变为平面化风格。今年是iPhone十周年,让我们期待今年会发生什么。
- 2007:第一个iOS版本;iPhone 1上市。
- 2008:操作系统系统取名为iPhone OS;iPhone 3G上市。
- 2010:iPhone OS改名为iOS;iPhone 4上市。
- 2012:iPhone 5上市
- 2013:iOS 7发布。
- 2017:……
iOS可以通过iTunes对设备进行升级,在iOS 5及以上版本中也可以利用OTA(On the Air)的方式进行软件更新。iPhone手机系统升级必须要通过苹果服务器进行验证,验证方式可通过iTunes(iOS 5及以上版本亦可通过 iCloud 服务验证)。验证通过才能进行升级系统。每个iOS的版本苹果公司都会先放出Beta版本进行公测,在一段时间内用户可以进行升级、降级。等稳定之后苹果公司会关闭低版本的验证服务。从而确保用户手机是最新的版本。
iOS越狱
iOS是苹果公司一手打造的操作系统。iOS是类Unix操作系统,iOS的权限管理比较严格。这使得我们不能随便安装软件,只能通过App Store进行安装软件。为了能充分的利用设备,有些技术大牛就利用系统漏洞获取了iOS的最高权限,这就是iOS越狱。越狱之后我们可以安装任何App而不用通过App Store购买安装。也可以安装苹果不允许上架的应用,比如骚扰电话过滤的App,手机助手App,SSH等。
开发语言选择:Objective-C VS. Swift
历史
Objective-C,通常写作ObjC或OC,是扩充C的面向对象编程语言。1980年代初布莱德·考克斯(Brad Cox)在其公司Stepstone发明Objective-C。
Swift是Apple在WWDC2014所发布的一门编程语言,可以用来编写iOS应用程序。在设计Swift时.就有意和Objective-C共存。苹果宣称Swift的特点是:快速、现代、安全、互动,且全面优于Objective-C语言。2015年06月09日,苹果通过WWDC大会上宣布Swift开源。这意味着可以用它来进行开发跨平台的应用。现在已经有人使用Swift来开发服务端程序了。
这些看上去都十分美好。但是Swift经历的时间毕竟太短,版本变化太快,甚至于1.0,2.0简直就是2个语言。何况很多公司的项目都是Objective-C进行编写的,要想一下子转成Swift进行开发还是有较大的难度的。所以本课程会以Objective-C为主要语言。在课程技术的时候补充下Swift语言语法。学一门编程语言其实难度不大,难得是需要去学习框架,了解框架,这些都需要花大量的时间。一旦我们学会了UIKit等框架之后用Swift编写App是很容易上手的。
趋势
下面这张是16年12月份的语言排名的图。在2015年的时候Swift是排在Objective-C前面的,这也说明大家对Swift是比较期待和看中的。而16年Objective-C又排到Swift的前面,说明Swift还有一段路要走,远没有达到用户的期望。
总体来说我也对Swift是充满期待的。但是Objective-C是我们短时间内不能忽视的语言,即使使用Swift进行开发新功能,我们也需要在未来一段时间内对使用Objective-C开发的旧功能进行维护。
Xcode介绍
Xcode是苹果公司开发的一款产品,提供给开发者用来开发iOS App的集成开发环境(IDE)。Xcode只能运行与苹果系统。所以要想开发iOS App必须要有一台苹果电脑。
按键介绍
按键 | 备注 |
---|---|
⌘ | command 键 |
⌥ | option / Alt 键 |
⇧ | Shift 键 |
⌃ | Ctrl 键 |
⏎ | Return 键 |
⌫ | Delete 键 |
界面介绍
Xcode工作页面主要分成5个区域。从上而下从左到右分别是工具栏(ToolBar),标签栏(TabBar),导航区(Navigator),编辑区(Editor),工具区(Utilities)。
工具栏(ToolBar)提供运行/停止程序,编辑模式选择,Xcode界面布局设置。
标签栏(TabBar)和浏览器的网页一样,主要可以用来在多个页面之间进行切换。
导航区(Navigator)提供各种类型的导航,包括源文件,符号,搜索,警告问题,单元测试,调试信息,断点信息,报告信息。
编辑区(Editor)编写代码的地方。
工具区(Utilities)提供对文件的设置,包括类型,位置,编码等。还可以通过它来拖拉创建类,使用代码片段,使用控件,使用资源等。
工具栏
窗口控制
红黄绿三个小按钮用来控制窗口。红色的按钮可以把窗口关闭。黄色的按钮是把窗口最小化。绿的的按钮会把窗口最大化。
快捷键
按键 | 备注 |
---|---|
⌘+w | 关闭窗口 |
⌘+m | 最小化窗口 |
⌃+⌘+f | 最大化窗口 |
运行/停止
长按左边红框内按钮会弹出一个列表。点击左边按钮停止运行App。
- Build for Running: 构建并且运行App。
- Build for Testing: 构建并运行测试用例。
- Build for Profiling: 构建并进行性能分析。
- Analyze: 静态检查代码。
快捷键
按键 | 备注 |
---|---|
⌘+r | Build for Running |
⌘+u | Build for Testing |
⌘+i | Build for Profiling |
⌘+⇧+b | Analyze |
目标选择
选择运行的目标。一个工程可以有多个目标。多个目标之间可以共享代码,资源文件。
真机/模拟器
iOS模拟器性能比较好,大部分情况下,我们可以通过模拟器来测试App,查看代码效果。只有一些特殊的情况比如用到了摄像头,3D Touch这些与硬件相关的功能时,需要在真机上进行测试。还有一点需要注意的是在App开发完成之后,必需要在真机上进行性能测试。模拟器的性能比较好有些问题不容易暴露出来。
点击真机/模拟器按钮会弹出一个列表。
- Device: 显示连接的设备。
- Build Only Device: 不可以运行,只能为真机构建App。
- iOS Simulators: 显示可以使用的模拟器。
- Add Additional Simulators: 添加模拟器。
- Download Similators: 下载模拟器。
状态显示
Xcode的编译,运行,索引等状态都会在这里显示出来。
编辑模式
Xcode有三种编辑模式,分别是标准模式、辅助模式、版本模式。
标准模式就是我们最常用的一个编辑模式。中间只有一个主要的编辑器。
辅助模式可以打开多个编辑器,可以在不切换标签的情况下编辑多个文件。长按按钮会弹出几种布局方式供选择。
版本模式可以进行代码比对,代码提交人,提交日志。
- Comparison: 显示两个提交版本,很容易发现不同的地方。
- Blame: 显示代码的提交人。
- Log: 显示提交记录。
快捷键
按键 | 备注 |
---|---|
⌘+⏎ | 切换到标准模式 |
⌥+⌘+⏎ | 切换到辅助模式 |
⌥+⇧+⌘+⏎ | 切换到版本模式 |
Xcode布局
三个按钮依次控制导航区、调试区、工具区的显示。蓝色表示显示,灰色表示不显示。
快捷键
按键 | 备注 |
---|---|
⌘+0 | 显示导航区 |
⇧+⌘+c | 显示Debug Cosole |
⇧+⌘+y | 显示Debug区 |
⇧+⌥+⌘+0 | 显示工具区 |
标签栏
打开了多个文件,就会显示出标签栏。点击不同的标签可以切换到不同的文件。
快捷键
按键 | 备注 |
---|---|
⇧+⌘+] | 切换到左边的标签 |
⇧+⌘+[ | 切换到右边的标签 |
⌘+w | 关闭标签,如果是最后一个关闭窗口 |
导航区
导航区可以显示8种不同类型的导航(Navigator)。从左往右依次介绍。
- Project Navigator: 根据工程文件显示源文件列表。其组织形式不一定和物理结构一致。
- Symbol Navigator: 符号导航。显示类的列表。
- Find Navigator: 查找导航。显示查找结果。
- Issue Navigator: 问题导航。显示编译,静态检查问题。
- Test Navigator: 测试导航。显示测试用例。
- Debug Navigator:调试导航。显示调试信息。
- BreakPoint Navigator: 断点导航。显示断点信息。
- Report Navigator: 报道导航。显示一些事件,比如测试用例失败,编译成功等。
快捷键
按键 | 备注 |
---|---|
⌘+1 | 切换到Project Navigator |
⌘+2 | 切换到Symbol Navigator |
⌘+3 | 切换到Find Navigator |
⌘+4 | 切换到Issue Navigator |
⌘+5 | 切换到Test Navigator |
⌘+6 | 切换到Debug Navigator |
⌘+7 | 切换到BreakPoint Navigator |
⌘+8 | 切换到Report Navigator |
⌘+n | 新建文件 |
⌘+j | 跳转到编辑区 |
编辑区
编辑区主要是对文件的编辑。没有多少好介绍的,这里重点介绍一些快捷键。让你提高一些开发效率。
快捷键
按键 | 备注 |
---|---|
⇧+⌘+o | 快速打开文件 |
⌘+l | 快速跳转到行号 |
⇧+⌘+j | 跳转到导航区 |
⌘+↑ | 跳转到文件顶部 |
⌘+↓ | 跳转到文件地部 |
⌘+← | 跳转到行首 |
⌘+→ | 跳转到行尾 |
⌃+⌘+↑ | .h .m文件互换 |
⌃+⌘+↓ | .h .m文件互换 |
⌃+⌘+← | 返回前面打开的文件 |
⌃+⌘+→ | 返回后面打开的文件 |
⌘+[ | 左移代码 |
⌘+] | 右移代码 |
⌥+⌘+[ | 上移代码 |
⌥+⌘+] | 下移代码 |
⌃+i | 格式化代码 |
⌘+f | 文件内搜索 |
⇧+⌘+o | 全局搜索 |
工具区
其实如果不使用StoryBoard、XIB进行构建UI,工具区使用的场景并不多。在工具区可以修改文件名,文件类型,文件所在的组,文件编码方式,还可以对资源文件进行国际化。
工具区的下半部分是一些列表方便通过拖拽来生成代码。
- 模版库: 可以拖拽到导航区生成一个文件。
- 代码片段库: 可以拖拽到编辑区中生成代码片段。
- 对象库:在可视化编辑时有效,可以拖拽到StoryBoard, XIB上。
- 多媒体库: 可以快速搜索资源文件。
一些技巧
保存代码块
- 首先将代码放入代码片段库
- 对代码片段进行编辑,用<#提示信息#>替换掉不通用的内容。
- 编辑代码介绍,平台,语言类型,快捷键,代码适用范围等。
- 在编辑器中输入刚才填的快捷键就可以快速填充代码片段。
- 使用control+/快速移动到替换内容处进行代码替换。
代码不自动提示解决方法
从Xcode->Windows->Projects,然后选择不自动提示的项目。
删除 Derived Data ,立刻关闭xcode 然后重启xcode。等待Xcode索引完成,一般就能解决这个问题了。