S Link
Indie or full-time? Swift? Watch? NSNorth 2015 is about evolution.
The markets for iPhone, iPad, Mac and Apple Watch developers are evolving rapidly. Come together with your peers to learn new perspectives, new technologies, and find more paths to profitability.
Swift Around the Web
The Importance of Being `final`
I didn't even know about the final keyword in Swift, but @jl_hfl points out how crucial it is for performance in objects: "You can prevent a method, property, or subscript from being overridden by marking it as final... Any attempt to override a final method, property, or subscript in a subclass is reported as a compile-time error." Must read!
Sequences and Generators
A very detailed explanation of how to create your own Sequences and Generators in Swift using Linked List as an example + more!
Coding
Run your iOS app without overwriting the App Store version
"Sometimes when you're developing a new version of your iOS app, you'd like to run it on your iPhone or iPad and still be able to run the current version that is released on the App Store. Normally when you run your app from Xcode on your device, it will overwrite any existing version." This one weird trick will solve all your problems (just kidding, there are way more than one step, and it's a lot of work).
Secret Diary of a Side Project: Coding Practices
Good tip: "Model Code Goes In A Separate Framework Target"
Faster Photos in Facebook for iOS
"We found a way to reduce the data used by Facebook for iOS by about 10% and show a good image 15% faster than before." The key was switching to the Progressive JPEG (PJPEG) image format.
Other Cool Stuff
Videos
Displaying Tabular Data (Video)
A very basic walk-through of building a Table in WatchKit. Great if you're just starting out with WatchKit.
Functional Voodoo
Function Composition in Swift
"This post is an exploration of several functional programming concepts... I’ll define several functions using concepts from functional programming: tail recursion, map, filter and reduce. Towards the end of the post, I’ll demonstrate how to combine the functions together using function composition to create more complex functions."
Typed Notification Observers
As @mjtsai summarized it: "they use phantom types to make sure that a given notification is always posted with the proper type of user info object." This seriously makes the NSNotification logic so much cleaner and easy to use!
WATCH
Using Apple WatchKit + HomeKit to Control an LED
"The first step was to find an Apple HomeKit enabled device on the market. The answer: There was none." Sounds like an opportunity to me...
Third-Party Tesla App Provides Look at Opportunities and Limitations of Apple Watch Development
Despite the limitations of WatchKit at the moment, I'm pretty impressed with this Tesla Apple Watch app. The limitations just mean we'll have to get more creative :)
Swift Code
Spring - A library to simplify iOS animations in Swift.
PageMenu - A paging menu controller built from other view controllers (like Spotify)
RandomColorSwift - An attractive color generator for Swift. Ported from randomColor.js.
Bond - A Swift binding framework
SwiftSpinner - A beautiful activity indicator and modal alert written in Swift. Using blur effects, translucency, flat and bold design - all iOS 8 latest and greatest
KeychainAccess - Simple Swift wrapper for Keychain that works on iOS and OS X
Swift Thoughts
From Tim Cook himself: "Development for Apple Watch is right on schedule, and we expect to be shipping in April." As David Smith points out, if you want to be the first on the Apple Watch, the conservative estimate is to have your app ready by March 20th. Hey, that's only 46 days away. Happy Hacking!