S Link
Indie iOS Focus Weekly
Looking for a free hand curated newsletter full of great links for iOS developers? From Xcode hacks to pricing strategies, if you develop apps, there’s something for you. Indie iOS Focus Weekly avoids the big stories you’ve already read and digs deeper into the iOS ecosystem to uncover cool iOS tools, tricks, tutorials, and marketing strategies you can use to grow your knowledge and apps. Get issue #31 straight to your email this Thursday.
The Swift Algorithms Book
Written for students and professionals, The Swift Algorithms Book blends modern code, illustrations and computer science to help you pass the interview or build your next app. Perfect for the classroom or the office, the book takes a fresh approach to explain concepts that power search engines, databases and social networks.
Swift Around the Web
Match Me if you can: Swift Pattern Matching in Detail.
Seriously, this is EVERYTHING you ever wanted to know about pattern matching in Swift (with 2.0 stuff included). In addition to a deep dive on advanced pattern matching, @terhechte included a bunch of real-world examples. Bookmarking!
Switching Your Brain to Swift
If you haven't started to Swift yet, it's time! Just look at that amazing visualization of Swift awesomeness on a chart with unlabeled axes.
Coding
CoreMotion Controlled 3D Sketching on an iPhone with Swift
Wow! @FlexMonkey sure has a way of capturing the imagination when it comes to iOS development and Swift - love this!
Using Identifiers to Debug Autolayout
Yet another great Autolayout debugging tip (check out the great tip from last week in case you missed it). While I was hoping that StackViews would solve all my problems, after trying them out this weekend, I'm not completely sold on the lack of control.
Autolayout will still be needed in a lot of cases (even if to position the StackView properly). Autolayout has it's issues, but it's gotten much better. Of course, powerful debugging tools for it are key.
Design
The Notification Problem
With notifications being the biggest interaction point of the Apple Watch, it is more important than ever to get users to agree to receive them. In this post, Hopper walks through a few ways they've on-boarded their users to increase conversion on accepting notifications.
However, ultimately, I agree with @kimahlberg's tweet - get the user to agree to notifications when they go through the app and get to the point where they actually need them to move forward! They've already put in the effort, and will understand the value of receiving the notifications a lot more than the tutorial way.
The icon for Voice Memos is a waveform representation of the word “Apple.”
Love this little detail by Apple designers. It's one of those things that nobody would notice, but it's there anyway. Beautiful!
Other Cool Stuff
In Case You Missed It
Swift 2.0: Protocol-Oriented MVVM
Ever since the mind-blowing Protocol-Oriented Programming in Swift WWDC Session, I’ve been thinking a lot about using protocols. But in reality, I haven’t really been using them as much. I’m still digesting what protocol-oriented programming means, and where in my code I should be using it instead of my other go-to programming patterns. So I was very excited where a HUGE use-case came to mind. MVVM!
Tutorials
Perfect smooth scrolling in UITableViews
How to use the whole potential of one of the most popular mobile devices on the planet for making really smooth applications. A lot to learn here.
Videos
Overloading Comparison, with Ray Wenderlich
I've had several people mention this talk to me last week (including an senior Android engineer co-worker), so I made sure to watch it. While I tend to be very intrinsically motivated, it's hard to watch the "Twitter parade" without feeling incompetent. Remember, the more people that are out there who are better than you, the more people you have to learn from!
Functional Voodoo
Lazy Filters and Maps
Good tip: "Simply wrapping items in a lazy()
call will convert our Sequence
into a LazySequence
. This gives us the performance benefits of the more iterative-style approach with the benefits of the semantically broken out operations."
Why I cannot say FRP but I just did
If you're intimidated by the term FRP (Functional Reactive Programming) like I am, this is a good read. I like the ideas behind FRP - they make so much sense, but the terminology itself is almost the barrier to entry.
WATCH
NKWatchActivityIndicator
An activity indicator library for Apple Watch and a sample to push the limit of animation in watchOS 2.
Swift Code
Shark - Swift Script that transforms the .xcassets folder into a type safe enum (also check out Misen for Swift 1.2)
Popover - Popover is a balloon library like Facebook app. It is written in pure swift.
PennyPincher - A fast gesture recognizer based on the PennyPincher algorithm, written in Swift.
NVActivityIndicatorView - Collection of nice loading animations
RubberBandEffect - Recreating Apple’s rubber band effect in Swift
Business
Is your app iOS 9 ready?
It's almost September, and you know what that means... If you haven't tested your app on iOS 9 yet, now is the time. But first, read this "last-minute survival guide for stressed mobile PMs". And here is another one in case you want to freak out even more. Summer is definitely over 😰.
Good, Great, and 10x
Love this: "the 10x programmer is one who makes the 5 closest programmers twice as effective."
Swift Thoughts
During the past week, I got to work a lot more with Swift 2.0. I know, I'm late to the game! And as I'm starting my week by going back to Swift 1.2, there are two features I'm going to feel 😢 without: guard and protocol extensions.
@ayaka posted a great tweet that summarizes my feelings as well:
"You know a new feature is good when you have to go back to the previous version for something and you really miss it."
Can't wait until Xcode 7 GM 🚀! Only a few short weeks to go...