In many ways, the story of Apple has been about fusing together technologies through happy accidents of history to create something better than before: OS X as a hybrid of MacOS & NeXTSTEP. Objective-C as the combination of Smalltalk's OOP paradigm and C. iCloud as the byproduct of MobileMe and actual clouds (presumably).Continue Reading
C uses preprocessor directives capable of unspeakable evil. Swift has a safe subset of preprocessor directives. So how do we check system version for API compatibility?
Did you know that
UIActionSheet (as well as their respective delegate protocols) are deprecated in iOS 8? It's true.
Objective-C required us to wax philosophic about the nature of equality and identity. To the relief of any developer less inclined towards handwavy treatises, this is not as much the case for Swift.
Yesterday's article described various techniques for resizing images using APIs from the UIKit, Core Graphics, Core Image, and Image I/O frameworks. However, that article failed to mention some rather extraordinary functionality baked into the new Photos framework which takes care of all of this for you.
Since time immemorial, iOS developers have been perplexed by a singular question: 'How do you resize an image?'. This article endeavors to provide a clear answer to this eternal question.
Swift enumerations are a marked improvement over the
NS_ENUM macro in Objective-C. Unfortunately,
NS_OPTIONS does not compare as favorably.
Understanding the concept of nothingness is as much a philosophical issue as it is a pragmatic one. We are inhabitants of a universe of somethings, yet reason in a logical universe of existential uncertainties. As a physical manifestation of a logical system, computers are faced with the intractable problem of how to represent nothing with something.
NSString is the crown jewel of Foundation. But as powerful as it is, one would be remiss not to mention its toll-free bridged cousin, CFMutableString—or more specifically, CFStringTransform.
Conversion is the tireless errand of software development. Most programming tasks boil down to some variation of transforming data into something more useful.
A skilled Objective-C developer is able to gracefully switch between Objective and Procedural paradigms, and use each to their own advantage.
- IBAction / IBOutlet / IBOutletCollection
- KVC Collection Operators
- Key-Value Observing
- Multipeer Connectivity
- NSCoding / NSKeyedArchiver
- NSFastEnumeration / NSEnumerator
- NSHashTable & NSMapTable
- NSNotification &
- NSTemporaryDirectory /
- NSURL /
- NSUUID /
UIDevice -uniqueIdentifier /
- NS_ENUM & NS_OPTIONS
- Search Kit
- UIApplicationDelegate launchOptions
- UIReferenceLibraryViewController /
- Associated Objects
- BOOL / bool / Boolean / NSCFBoolean
- C Storage Classes
- Clang Diagnostics
- Extended File Attributes
- Method Swizzling
- Object Subscripting
- Type Encodings
- Unit Testing
- nil / Nil / NULL / NSNull
- rand(3) / random(3) / arc4random(3) / et al.
- Swift Comparison Protocols
- Swift Default Protocol Implementations
- Swift Documentation
- Swift Literal Convertibles
- Swift Operators
- Swift System Version Checking
- Open Source
- AFNetworking 2.0
- Core Data Libraries & Utilities
- Launch Arguments &
- Network Link Conditioner
- XCTestCase /
- Xcode Key Bindings & Gestures
- Xcode Plugins
- Xcode Snippets
- Back Row
- Configuration Profiles
- Image Resizing Techniques
- Inter-Process Communication
- Reader Submissions -
New Year's 2014
- Reader Submissions -
New Year's 2013
- iOS 7
- iOS 8