本文是对官方文档Drawing and Printing Guide for iOS的一个翻译学习记录。
Practical Drawing for iOS Developers(Quartz 2D Programming Guide)
WWDC
Practical Drawing for iOS Developers主要讲了怎样用 Core Graphic 相关 API ,开头讲了一些精美的App, eg:股市、天气、iBooks、YouTube 等等,着重讲怎么完成股市 App 的相关绘制效果:渐变背景、数据表格等,提到的相关技术点有
Core Animation Essentials(Core Animation Programming Guide)
Core Animation Essentials,主要讲了 Core Animation 的一些基础知识。
讲了一个点击图片 item 有各种效果的 demo 。
- 点击动画变大 (change bound)
- shrink and grow (UIKit 定时器改变 bound , CA 可以用 CAMedia timing protocol and repeated animation)
- 边框闪烁,颜色变化 (layer.border color is animation property, repeated animation)
- flip 到中心然后回到原处 (2.5D perspective transform)
- 边框粒子闪烁效果
然后后面就是讲 Core Animation 一些基础,所以下面就把Core Animation Programming Guide的内容大致过一下。
Understanding UIKit Rendering(View Programming Guide for iOS)
WWDC
Understanding UIKit Rendering 主要讲了显示青蛙的一个 demo ,讲了 round rotate anti-aliased shadow 等效果,先讲了之前做的为什么会错误,后面讲了正确的做法,这个 session 比较简单,相关内容,后续关于渲染的 session 都有讲到。
从 Block 谈堆栈
在面试的时候,我们会碰到 Block
相关的问题:MRC 下为什么要用 copy 修饰? 为什么 ARC 下就不要这样处理呢?,所以打算把堆栈的内容和 Block
一起讲解。
内存优化
**转载请注明出处!http://joakimliu.github.io/2018/03/17/Memory-optimization/ 谢谢! **
使用了大量内存会降低性能。所以内存优化对于注重用户体验的 App 来说是比较重要的,本文讲讲内存优化中需要注意的点。
虚拟内存
**转载请注明出处!http://joakimliu.github.io/2018/03/16/Virtual-Memory/ 谢谢! **
地址空间
应用程序需要一个简单的执行环境(地址空间+CPU),地址空间我们可以把它想象成一个很大的数组,每个数组的元素就是一个字节,这个数组大小由地址空间的长度决定。比如 32 位的地址空间大小为 2^32 byte = 2^22 KB = 2^12 MB = 2^2 GB = 4BG,用16进制表示就是 0x00000000~0xFFFFFFFF,32位 iPhone 机型里面的应用地址空间如下图所示。地址空间分为两种:虚拟地址空间(Virtual Address Space)和物理地址空间(Physical Address Space)。物理地址空间是实实在在存在的,可以把它理解为物理内存,如 32 位的机器,它的物理空间就是 4GB。而虚拟地址空间是虚拟的,人们想象出来的,它并不存在。
写在被苹果被拒6次后
浅谈 Diffie-Hellman 密钥交换
之前在讲密钥配送的时候,有提到 Diffie-Hellman 密钥交换,今天来简单的谈谈它。 Diffie-Hellman 密钥交换(Diffie-Hellman key exchange)通信双方仅通过交换一些可以公开的信息就能够生成共享的数字,而这一秘密数字就可以被用作对称密码的密钥。下面先来讲讲它的步骤。
浅谈 RSA
上篇文章中讲到了密码学的相关知识,今天来简单谈谈 RSA。之前有提到过,对称密码通过将明文转换为复杂的形式来保证其机密性的,而公钥密码则是基于数学上困难的问题来保证机密性的。 RSA 就是利用了大整数的质因数分解问题的困难度。在谈它之前,我们先来谈谈时钟(只有指向小时的一根指针)运算。