iOS企业级应用开发技术 作者:和凌志
iOS企业级应用开发技术 出版社:电子工业出版社
iOS企业级应用开发技术 内容简介
本书聚焦在APP“产品”的设计、开发和运营层面,特别强调架构和设计模式的重要性,有意识地将设计模式应用到代码的编写中,重点介绍iOS企业级应用开发的设计思维方式,并与全栈开发技术结合起来。 全书分为iOS基础篇、Web与Native混合开发模式篇和全栈开发技术篇。iOS基础篇主要介绍iOS基础知识、多种设计模式下的视图控制器之间的传值、App与服务器接口的定义、CollectionView的应用;Web与Native混合开发模式篇主要介绍Block的应用、iOS网络请求、JavaScript基础、Web与Native的交互;全栈开发技术篇主要介绍Node.js、Express、AngularJS、MongoDB、MEAN全栈技术的实现。
iOS企业级应用开发技术 目录
前言
我的iOS授课经历
忍不住也来说说iOS的设计模式
iOS基础篇
第1章 iOS基础知识
1.1 Objective-C语法简介
1.2 Objective-C的对象类型与基本数据类型
1.3 不可变数组与可变数组
1.4 不可变字典与可变字典
iOS企业级应用开发技术1.5 iOS应用程序概述
1.6 iOS定制化控件
1.7 视图的层级管理
1.8 iOS编程规范
1.9 小结
第2章 视图控制器之间的传值
2.1 通过Delegate实现ViewController之间的传值
2.2 通过单例实现ViewController之间的传值
2.3 通过KVO实现ViewController之间的传值
2.4 通过NSNotification实现ViewController之间的传值
2.5 小结
第3章 App与服务器接口的定义
3.1 关于JSON的认识
3.2 App与服务器接口的定义
3.3 JSON与Model的转换
3.4 小结
第4章 CollectionView的应用
4.1 CollectionView与TableView孰优孰劣
4.2 什么是UICollectionView
4.3 实现一个简单的UICollectionView
4.4 UICollectionViewCell视图层级
4.5 UICollectionViewDataSource
4.6 关于Cell的重用
4.7 UICollectionViewDelegate
4.8 UICollectionViewLayout
4.9 实现一个简单的瀑布流
4.10 自定义瀑布流的应用场景
4.11 自定义Flow Layout进行瀑布流布局
4.12 CollectionView与TableView的区别
4.13 图片轮播的实现思路
4.14 CollectionView注意事项
4.15 小结
Web与Native混合开发模式
第5章 Block的应用
5.1 Block缘起
5.2 Block概述
5.3 Block的声明、实现与调用
5.4 Block的应用场景
5.5 通过Block实现视图控制器之间的逆向传值
5.6 小结
第6章 iOS网络请求
6.1 iOS网络请求概述
6.2 AFNetworking的应用
6.3 AFNetworking的序列化问题
6.4 异步请求数据并刷新UI页面
6.5 远程文件下载
6.6 小结
第7章 JavaScript基础
7.1 JavaScript语法
7.2 变量的声明与赋值
7.3 如何判断两个字符串是否相等
7.4 创建JavaScript对象的三种方法
7.5 函数声明与函数表达式
7.6 可立即调用的函数表达式
7.7 循环的实现
7.8 防止JavaScript自动插入分号
7.9 严格模式
7.10 如何运行与调试JavaScript代码
7.11 JavaScript的面向对象设计思想
7.12 JavaScript的异步编程模式
7.13 如何在HTML中嵌入JavaScript
7.14 JavaScript与JSON
7.15 小结
第8章 Web与Native的交互
8.1 混合开发模式概述
8.2 网页调用iOS的原生方法
8.3 iOS调用JavaScript
8.4 JavaScript调用Objective-C代码
8.5 小结
全栈开发技术
第9章 Node.js入门指南
9.1 概述
9.2 Node.js生态
9.3 Node开发环境的搭建
9.4 Node.js验证
9.5 第一个Node.js工程
9.6 小结
第10章 Express——后端框架
10.1 概述
10.2 Express工程的创建
10.3 Express中的GET与POST请求
10.4 小结
第11章 AngularJS——Google前端框架
11.1 AngularJS概述
11.2 AngularJS指令概述
11.3 AngularJS构建单页面应用
11.4 AngularJS的加载
11.5 AngularJS控制器
11.6 $scope用法
11.7 小结
第12章 MongoDB——文档数据库
12.1 MongoDB概述
12.2 MongoDB的安装与应用
12.3 用mongoose操作MongoDB
12.4 小结
第13章 MEAN全栈技术的实现
13.1 应用场景
13.2 安装Express
13.3 创建Express工程
13.4 构建登录页面
13.5 构建注册页面
13.6 小结
参考文献
iOS企业级应用开发技术 精彩文摘
作为一名“码农”,掌握几种编程语言易如探囊取物。只要接触过一门编程语言,再学习其他的编程语言,就会容易很多。因为从本质上讲,编程语言大同小异,Objective-C也不例外。
所有的编程语言,尽管表达方式不同,但大多都是相通的。比如,基本的数据类型、表达式、函数的声明和调用等。这里,我们不拿Objective-C与其他编程语言对比,越是对比,越让人迷惑。
我们先从字面上理解Objective-C。顾名思义,Objective-C就是一种特殊的C语言,也有人把Objective-C简称为OC。
Objective-C语言看上去怪怪的,是因为它有几个不常见的符号,比如,中括号[]、冒号:、加号+等。在iOS编程中,常看到类似下面的语句。
可以看出,这里不仅仅是一对中括号,而是多对中括号,一层套一层。
在iOS工程文件中,用得最多的文件就是.h文件和.m文件。
.h文件是头文件,源自英文Header;与此对应的是.m文件,.m文件是实现文件。.m文件是Objective-C编程语言所特有的文件类型。至于为什么以.m来命名,苹果官方文档没有给出说明。既然.m文件是实现文件,据此推测,m应该是implementation(实现)的缩写。
.h和.m文件如同一对孪生兄弟,总是成对出现的。当创建一个.h文件时,同时也会创建一个同名的.m文件。也就是说,.h和.m拥有相同的文件名,但其文件类型是不同的,一个是.h类型,一个是.m类型。
这里给出一个代码示例,初次感受下.h和.m文件的代码结构是怎样的。在Xcode中,创建一个新文件:在Xcode菜单栏,逐一选中“File→New→File…”,选择“文件类型(NSObject)”。这里,以创建Card文件为例,Xcode会自动生成两个文件:Card.h和Card.m。
Card.h文件如下:
在面向对象的编程语言中,一个最基本的概念就是类(Class)。事实上,创建.h和.m的过程,就是创建一个类的过程,这里创建了一个Card类。类是具有继承关系的,NSObject也是一个类。Card与NSObject的关系是:Card继承了NSObject,换言之,NSObject是Card的父类。父类又称为SuperClass。关于NSObject,有一点要特别说明:iOS所有的类都继承了NSObject。通俗地讲,在iOS中,NSObject是所有类的“祖宗”。
从语法上讲,@interface与@end是一对。@interface表明类的开始,而@end表明类的结束。通过Xcode创建的类,会自动生成类的结构。如果通过手动的方式自行创建的话,注意不要忘记加上@end。
接着,我们再来解读Card.m文件。
.m文件以@implementation开始,以@end结尾。乍一看,.m文件与.h文件没什么区别,其实,二者之间有一个很大的区别:.m文件中的Card没有继承NSObject。
在.m文件中,必须通过#import将对应的.h文件包含进来。之后,.m文件就可以引用.h文件中的@property(属性)和method(方法)了。.m文件如下。
接下来,开始为.h文件添加一个属性(@property),代码如下。
如果是初次接触iOS编程,总会感到有些奇怪。声明一个变量(严格来说,是声明一个属性或实例变量),为什么还要在变量前面添加这么多的东西呢?@property(nonatomic,strong)是干什么用的呢?这就引入了Objective-C的另一个基本概念:@property的声明与使用。
1.1.2 如何声明一个实例变量
关于Objective-C中的实例变量(Instance Variable),初次接触这个概念,难免会产生一些疑惑:实例变量有什么特别的呢?不就是一个变量吗?其实不然,如果仅仅是个变量的话,就不会有@property了。有了@property,其功能也就强大了很多。
本文来自吃鸡只用平底锅投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。