I’ve been working on iOS development for a long time. In the past, I used my brain to memorize technical articles and the code of technical implementations. But when a person’s brain exceeds a certain storage limit, stack overflow occurs (actually, I’m just not that smart). Later, I gradually started to remember which blog was written by whom, or the code of how a technique was implemented… But then I found that not only was the stack overflowing, the heap could barely hold the vast number of iOS technical articles anymore… Sigh. So I kept all the classic article bookmarks and browser URLs in my Chrome. Now I want to organize them and put them in my blog, to make it easy to look up the code of a certain technical implementation (in fact, even my former intern colleagues at Baidu Cloud were amazed at how I could store a certain technique in such detail). OK, let’s start the iOS knowledge point technical navigation.
The iOS technical categories are as follows:
- Audio
- Camera & Photos
- Graphics & Images
- Animation
- UI Transitions
- ASDK (AsyncDisplayKit)
- Swift-related
- Math & Graphics
- Architecture
- Masonry
- CocoaPods
- File-related
Audio
iOS Audio Playback (1): Overview
iOS Audio Playback (2): AudioSession
iOS Audio Playback (3): AudioFileStream
iOS Audio Playback (4): AudioFile
iOS Audio Playback (5): AudioQueue
iOS Audio Playback (6): Implementation of a Simple Audio Player
iOS Audio Playback (7): Playing Songs from the iPod Library
iOS Audio Playback (8): NowPlayingCenter and RemoteControl
iOS Audio Playback (9): Play While Caching
The above content comes from 码农人生. I’ve had exchanges with this guy; his knowledge of low-level audio technology is quite thorough, suitable for beginners and intermediate developers to study, learn, and use.
Graphics Processing
Basics a series of tutorials that can be read straight through
GPUImage library
iOS GPUImage Source Code Analysis (1) Open-Sourcing a Camera App Published on the App Store
Graphics & Images
Face Recognition Based on OpenCV
Image Editing
Animation
Analysis of the Draggable Unread Bubble Dismissal in QQ
iOS Custom Pull-Down Line Animation
A Library Covering All iOS Animation Effects pop
To learn animation, the most reliable way is to start with the animation posts of 骑滔(Kitten)
The above are general animation posts, 2 of which are from Kitten
Continually updated
Transition Animation
WWDC 2013 Session Notes - ViewController Transitions in iOS 7 This post by 喵神 is a must-read
UIPresentationController Tutorial: Getting Started requires a VPN (翻墙)
(By the way, let me explain the term “翻墙” (climbing the wall). The formal term for it is 科学上网 (scientific internet access); in slang it’s called 自备梯子 (bring your own ladder), because at first everyone used 云梯VPN to access foreign websites. Our country set up a huge local-area network behind a crappy firewall. Although it has hindered the development of world civilization and technology, it also blocks some unhealthy content — for instance, what if one day you build a lathe and make a submachine gun, haha. So getting over that firewall is commonly known as “翻墙” (wall climbing).)
| __[Custom View Controller Transition Animation and a Small Pull-Down Menu Demo | AppCoda Translation Series](http://wxgbridgeq.github.io/blog/2015/08/10/custom-transition-animation/)__ |
You can also search GitHub for Transition
There are many such transition animations; I won’t introduce them one by one.
ASDK (AsyncDisplayKit)
Official Documentation (requires a VPN)
Chinese Translation
AsyncDisplayKit 2.0 Tutorial: Getting Started
AsyncDisplayKit 2.0 Tutorial: Automatic Layout
Translation of the Official AsyncDisplayKit Documentation
AsyncDisplayKit Source Code Analysis (1): Outline
AsyncDisplayKit Source Code Analysis (2): Asynchronous Rendering
Performance Tuning with ASDK - Improving the Rendering Performance of iOS UIs
The posts above come from raywenderlich
The source code analyses come from 折腾范儿の味精 , the blog of a colleague from the Baidu Read team
Here I want to share my views on ASDK. I’ve tried to read the source code and the official documentation, and I found that this is not something you can just start using right away. It’s almost like having a beginner learn UIKit all over again — integration is quite simple, but just the layout system alone is enough for a developer to study for a while, and you can’t use Masonry with it. However, for a page with simple functionality that needs performance tuning, it’s worth considering.
Swift-related
喵神’s website It seems to have stopped updating. In the iOS development field, 喵神 is truly a god-like presence.
Swift Random Numbers from 南峰子 老驴, a former Baidu colleague who now works at JD Finance, I believe. I’ve had technical exchanges with him; a really impressive guy.
A Must-Read for Swift 3: Understanding the New GCD API Through Use Cases I haven’t gotten to know this guy, but many of his articles are well written. Hope to have a chance to exchange ideas in the future.
Continually updating…
Math & Graphics
Mathematics for Graphics e.g., Fourier transform
Architecture
I have to comment on this Casa guy. He’s the only iOS architect I truly admire. In my words, this is what a real architect in a programmer’s mind looks like, not those so-called architects who merely sound impressive. When I worked at Baidu Cloud (the one you see as Baidu Netdisk), there was a T8 architect sitting right across from me. That architect was so idle every day that I really wanted to kick his ass. He modified the iOS program without even removing the xib references, which eventually caused a crash in production. I actually really want to give him a piece of advice: no matter how awesome your skills are, you should keep writing code every day. Remember the words of Confucius: 『吾尝终日而思矣,不如须臾之所学也』(I once spent all day pondering, but it wasn’t as good as a moment of learning).
This Casa guy showed me what an architecture engineer and a business engineer are. He’s someone who can truly write architecture code and then throw it to the business engineers, saying: follow this approach.
Masonry
Interesting AutoLayout Examples - Implemented with Masonry
Interesting AutoLayout Examples 2 - Implemented with Masonry Interesting AutoLayout Examples 3 - Implemented with Masonry Interesting AutoLayout Examples 4 - Implemented with Masonry
Interesting AutoLayout Examples 5 - Implemented with Masonry
iOS Auto Layout Framework - Masonry in Detail
Masonry — Using Pure Code for Adaptive Auto Layout in iOS Apps Chinese translation
By the way, I personally think that to learn Masonry, you only need to read the Chinese translation first and then go through 土土哥’s (Brother Tutu’s) tutorial, and you’ll get it. 土土哥’s Masonry tutorial is basically the Chinese documentation. Very well written.
CocoaPods
Using CocoaPods for Dependency Management in iOS Programs A must-read article by 巧神