iOS开发的学习笔记

引言

之前做过半年的iOS开发,从完全不懂的移动开发的菜鸟,到完成前端UI开发的菜鸟,做的一些笔记,希望对大家有用,也希望这些总结的东西对以后会有作用。

开发环境

iOS的系统框架分为四个层次:

  • 核心操作系统层(Core OS):包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。可以直接和硬件设备进行加互。
  • 核心服务层(Core Services):可以通过它来访问iOS的一些服务,比如网络连接、文件访问、数据库和用户定位等。
  • 媒体层(Media):通过它可以在应用程序中使用各种媒体文件,进行音频和视频的录制,图形的绘制以及制作基础的动画效果。
  • 可触摸层(Cocoa Touch):这一层为应用程序开发提供了各种游泳的框架,并且大部分与用户界面有关,本质上来说,它负责用户在iOS设备上的触摸交互操作。

    ios_system_structure

开发语言

Object-C

根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。完全兼容C语言,后缀为.m类型。

swift

  • 简介:Swift在天朝译为“雨燕”,它跟Objective-C一样,可用于开发iOS、MAC应用程序。苹果公司从2010年7月开始设计Swift语言,耗时4年打造。苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。

  • 特点:Swift是一门完全面向对象的语言,它抛弃了C/C++的历史包袱,就是基本的类型如char、Int、Long等类型都是一个结构体对象, 引入在Java、C++、Python中使用的操作符重载、泛型、名字空间、闭包等特性。

    本质上讲:Swift语言是对OC语言的优雅包装,它的底层还是使用Cocoa Touch,Foundation框架,只是在语言层面上让开发变得更简单了。

  • 面向对象(OOP):是现代流行的程序设计方法,是一种主流的程序设计规范。其基本思想是使用对象、类、继承、属性、方法等基本概念来进行程序设计,从现实世界中客观存在的事物出发来构建软件系统,并且在系统构造中尽可能运用人类的自然思维。swift语言中的面向对象类型如下:

    swift_objective

    苹果公司声称新的Swift语言拥有快速、现代、安全、互动的新特性,并且性能全部优于OC。

    swift_performance

  • swift与OC语言在编程时的区别

    • 不像 C语言和 OC语言一样都必须有一个主函数 main()作为程序入口,swift程序从第一句开始向下顺序执行。一直到最后。
    • 每个语句结束后可以不加分号,但是多条语句不能写在同一行
    • 在声明常量或者变量的时候直接初始化可以省略其类型,否则需要在变量名称后跟冒号加类型。实际开发中建议全都加上,以免出现错误

开发环境

  • 软件环境:

    • 运行环境:iOS(苹果公司开发的移动操作系统);
    • 开发环境:mac OS Sierra 10.12.1(swift语言开发最低要求为Mac OS X10.9.3版本以上);
    • 开发工具:Xcode 7.3版本(要求Xcode 6.0以上);
  • 硬件环境:

    • Mac苹果电脑

开发流程

开发者证书

Certification

Cocoa框架

Cocoa是创建Mac OS X和iOS程序的原生面向对象API,为这两者应用提供了编程环境。 通常称为“Cocoa框架”,事实上Cocoa本身是一个框架的集合,它包含了众多子框架。

cocoa

  • Cocoa中最最核心的有两个

    • Foundation框架:Foundation框架为所有的应用程序提供基本系统服务,Foundation框架包含所有和界面显示无关的类。包含:

      • 创建和管理集合,比如数组和字典
      • 访问存储在应用程序里的图片和其它资源
      • 创建和管理字符串
      • 提交和接收通知
      • 创建日期和时间对象
      • 自动发现IP网络上的设备
      • 操作URL流
      • 执行异步代码
    • Application Kit(AppKit)框架(Cocoa Touch中叫UIKit框架):Application Kit 框架包含实现图形的、事件驱动的用户界面需要的所有对象:窗口、对话框、按键、菜单、 滚动条、文本输入框—-这个列表还在不断增加。包含:

      • 构建和管理你的用户界面
      • 捕获触摸和基于移动的事件
      • 呈现文字和web内容
      • 优化你的多任务程序
      • 创建定制的用户界面元素

第三方库

除了需要核心框架,在APP开发过程中还会用到一些辅助框架,如Alamofire(网络请求)、JLToast(动态弹出框)等。

在开发项目中,需要使用第三方库,Cocoapods是最有影响力的OS X 和iOS项目依赖管理工具,于2011年发布,经过多年的发展,他已经非常完善了。Cocoapods支持项目中采用Object-C或者swift语言。

Cocoapods会将第三方库的源代码编译为静态链接库.a文件或者是动态框架.framework文件的形式,并将它们添加到项目中,建立依赖关系。

CocoaPods被建立在Ruby上,而自从OS X 10.7之后的Mac OS X版本带有Ruby,这样使用起来非常方便。

设计架构

design_model

代码实现流程

  • OC

    oc_development

  • Swift

    swift_development

进展

ios_process

参考资料

  1. iOS开发简介.pdf
  2. iOS系统架构及OC开发流程.pdf
  3. swift语法学习笔记.pdf
  4. 基于swift的iOS开发学习笔记.pdf
  5. 《iOS开发指南 从Hello World到App Store上架》(第4版).关东升 著;
  6. 《从零开始学Swift》.关东升 著;
  7. 《swift开发实战 权威指南》欧阳坚等 著;
  8. 《iOS成长之路》
文献5-6的源码:链接: https://pan.baidu.com/s/1PCOYYjwhMZTrGQ-D9Bh6vA 密码: bsas