Dispatch queues and GCD in Swift 3
libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
jverkoey/iOS-Framework
Awesome iOS
iOS Dev Tools - The Greatest iOS Development Tools
Smooth UITextView auto scroll to bottom of frame
UICollectionView Self Sizing Cells with Auto Layout
stackoverflow.com/questions/25895311/uicollectionview-self-s … ↗
AudioKit - Powerful audio synthesis, processing, and analysis, without the steep learning curve.
A Selection of Swift iOS Libraries https://github.com/Alamofire/Alamofire…
A Selection of Swift iOS Libraries …iOS Design Patterns
Beware the UIKit Visitors!
blog.benjamin-encz.de/post/disassembling-uikit-tintcolor-vis … ↗
Hopper + lldb for iOS Developers: A Gentle Introduction
bartcone.com/new-blog/2014/11/26/hopper-lldb-for-ios-develop … ↗
Little things that can make your iOS development easier in 2016
merowing.info/2015/12/little-things-that-can-make-your-life- … ↗
jverkoey/iOS-Framework
iPhone OpenGL Speed Tip – Turn Off Thumb Instructions
cocoaswirl.com/developer-topics/iphone-opengl-speed-tip-turn … ↗
Getting the UDID of an iOS device [[UIDevice currentDevice] uniqueIdentifier]
Getting the UDID of an iOS device [[UIDevice currentDevice] uniqueIdentifier]MBProgressHUD
Great guide for memory-debugging in Instruments
corbinstreehouse.com/blog/2007/10/instruments-on-leopard-how … ↗
A nice article on iPhone application internationalization
Clean & rebuild Oh, boy.
Clean & rebuild Oh, boy. I’d been struggling with this for a while. I loaded a view from a nib, and my app kept crashing with an exception saying: loaded the “foo” nib but the view outlet was not set. I was like WTH, I definitely connected the view outlet to the …NSTimer invalidate When you create an NSTimer, and specify it to be a non-repeat…
NSTimer invalidate When you create an NSTimer, and specify it to be a non-repeat timer, you don’t have to invalidate it after it fired. When you created a repeating timer, you send the invalidate message to it to remove it from the NSRunLoop object it was added to, and thus …