S Link
Bugsee - Free crash and bug reporting for iOS, with video, network and logs.
Get one minute of video of user actions prior to each bug or crash. Video is synchronized with network traffic and console logs. Integrate Bugsee for free by adding just one line of code. Check out our demo account and explainer video on our bugsee.com π
Swift Around the Web
Migrating to Swift 3: Advice, tips, and warnings
It's that time of the year... or at least getting close to it! Great tips to keep in mind before you migrate to Swift 3. It might be as "fun as fixing your CI servers for the Nth time and as exciting as waiting for an hours-long test suite to run on your local machine", but you get to write Swift 3 at the end of it π
A composable pattern for pure state machines with effects
A lot of code that we write is actually implicit state machine code, which can get pretty messy very quickly. Start learning how to extract the code into a very Swifty state machine that is composable and testable. Thanks @andy_matuschak!
Coding
Simultaneous Xcode 7 and Xcode 8 compatibility
"Youβre an iOS developer. Youβre excited about all the great new features iOS 10 brings, and youβre eager to implement them in your app. You want to start working on it right now so that youβre ready to ship on day one."
Great tips on how to deal with slightly different versions of Swift in Xcode 7 vs Xcode 8 for the next few months. To start, you'll have to stick with Swift 2.3 in Xcode 8 of course π£
Design patterns for safe timer usage
I'm mostly excited about this article due to the example being such a great demo of the latest Dispatch
API in Swift 3 π
Apple News
Writing High-Performance Swift Code
Tips and tricks for writing high-performance Swift code for compiler and standard library developers:
"Some of the tips in this document can help improve the quality of your Swift program and make your code less error prone and more readable. Explicitly marking final-classes and class-protocols are two obvious examples. However some of the tips described in this document are unprincipled, twisted and come to solve a specific temporary limitation of the compiler or the language. Many of the recommendations in this document come with trade offs for things like program runtime, binary size, code readability, etc."
Design
4 ways Iβve f***ed up as a designer π¬
Super entertaining (and very educational) design fail stories that are super easy to relate to, like the time a whole nation forgot how to swipe based on a new design...
Other Cool Stuff
Sea Lion pups roll in sand to protect themselves from the sun
Happy August! I hope you take some time to enjoy yourself these last few weeks of summer as much as these baby sea lions π
In Case You Missed It
Last week I had the pleasure of speaking and meeting all the amazing NYC iOS devs at the Brooklyn Swift Meetup. And I also blogged some. Enjoy!
Videos
Grokking Lazy Sequences & Collections
Great explanation of the confusion involved in implementing your own Collection in Swift 3 for lazily iterating through a list of expensive photos. Must watch π
Swift Evolution
[swift-evolution] Looking back on Swift 3 and ahead to Swift 4
Swift 4 is taking lessons-learned from the Swift 3 evolution process and will be super focused. The biggest priority and Stage 1 for Swift 4 will be ABI stability.
"This means that any features that donβt fundamentally change the ABI of existing language features or imply an ABI-breaking change to the standard library will not be considered in this stage."
Once ABI stability work is complete, other features will get priority in Stage 2. I'm personally excited about the Generics work!
Generics Manifesto
When starting out with Swift, Generics were definitely on my list of paradigms I haven't really used before that seemed too complicated to grasp. So I've been really surprised with myself by how natural and useful I've found Generics to be in Swift - I actually use them, and use them fairly often!
In fact, this Generics work planned for Swift 4 is something I'm personally most excited about π€
Functional Voodoo
Goodbye, Object Oriented Programming
"The problem with object-oriented languages is theyβve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle."
Swift Code
- AspectFillFaceAware - An extension that gives UIImageView the ability to focus on faces within an image when using AspectFill.
- UploadImage - It's a Extension helper for UIImageView to Upload a image when post to server
- PLCurrencyTextField - UITextField that support currency in the right way.
- CodelessComponents - iOS UI Components to use with no code at all.
Other Platforms
Swift on the Server - Where Are We Today?
Good overview of the current state of server-side Swift. Still not ready for production, but there are so many amazing people and companies working on it every day. And of course you can easily get involved too π
Swift Thoughts
Swift 3 evolution is officially done! π This marks the end of source-breaking changes for Swift 3.
"We also have a very strong desire to maintain source compatibility with Swift 3 and Swift 4 as much as possible to provide some stability for which Swift users to build upon."
And Swift 4's main focus will be on ABI stability.
If you haven't convinced your team to switch to Swift yet, now is the time!