S Link
iOS Learning Weekly Newsletter
iOS Learning Weekly is a weekly curated newsletter focused on quality learning resources for the iOS and OS X platform. I feature links to tutorials, articles, video tutorials, video talks, books, courses you name it. If it helps hobbyists and indie developers learn from scratch or just keep up with the latest releases on the internet, then thatâs what iOS Learning Weekly is for.
Be The First To Get iOS 9 & Swift 2 Developer Course For $19 Today! Build Flappy Bird & Whatsapp Clone
With this course you'll get * Lifetime access to over 20 hours of fun, practical, video lessons explaining, from scratch, how to make great and highly functional apps for iOS 9 with Xcode 7. * A collection of over 1,000 icons - Graphic Assets (worth $200) to make your apps look great and professional. * An ebook on âHow to make $10,000 as an App Developerâ * A theme worth $50 for building your website to market your apps. * Full one-on-one support with instructor * Build iOS Apps on your PC * Build Flappy Bird and Whatsapp Clone
You can get access to a $199 course for $19, plus you can support other levels at different price points and receive rewards such as 1100 extra icons, and another gives you access to this course and another course. There is a reward of an early access so get iOS 9 course before anyone else. Heck, one level even gives you access to everything this author is putting out now and in the future, as well as full one-on-one support with the author himself.
Check it out, and help make a great iOS 9 & Swift 2 with Xcode 7 Course for yourself and others!
Swift Around the Web
Dynamic Swift
And the moment we've all been waiting for (or dreading?)... performSelector
is now available in Swift. Oh, and NSClassFromString
seems to work now... I would have been happy about this last year when Swift first came out, but I've actually been enjoying Swift being static - it's forces me to write better code. Of course, Swift never claimed to be a pure static language, so expect a lot more to come to Swift in this area!
Swift protocol extension method dispatch
A super helpful chart and write-up of how protocol method dispatch works in Swift 2. Must read to avoid some super tricky issues!
Coding
Moving from Objective-C to Swift with Core Data
A beautiful example of Swift 2 protocol extensions and error handling applied to Core Data. Wow!
Notes from WWDC 2015: Cocoa Touch Best Practices
A nice and sweet summary of the Cocoa Touch Best Practices WWDC 2015 Session for those (including me) who haven't gotten to watching it yet!
Apple News
Xcode 7 beta 4!!!!
And the biggest Swift improvement in Xcode 7 beta 4 is the addition of indirect enums as promised at WWDC. Here are some great summaries to read on the changes:
- Beta 4: We want more! #swiftlang
- Changes to the Swift standard library in 2.0 betas 2..<5
- Linked lists, enums, value types and identity
But perhaps the least noticed, yet more important changes are the great improvements to Xcode stability. Thanks Swift team for the dedication!
Using Swift with Cocoa and Objective-C: Adopting Cocoa Design Patterns
There is now documentation for Cocoa Design Patterns in Swift! This covers the following crucial patterns:
- Delegation
- Error Handling
- Key-Value Observing
- Target-Action
- Singleton
- Introspection
- API Availability
Strings in Swift 2
The Swift blog is back, covering a huge change to Strings in Swift 2:
In Swift 2, the String type no longer conforms to the CollectionType protocol, where String was previously a collection of Character values, similar to an array. Now, String provides a characters property that exposes a character collection view.
Read about the logic behind this change and how to use it.
Design
4 iOS Design Rules to Break
Following style guides is almost always recommended. But there are some cases where the âofficialâ design does not work well in practice. Nonetheless, for reasons unknownâmaybe the recommendation was a trade-off, it wasn't thoroughly researched, or it seemed to be the best possible a solution to a very difficult design challengeâit still made it in the style guide.
The following are 4 common iOS patterns that Apple has used extensively in its apps and that have been followed by many other designers. Some of them are part of the iOS human-interface guidelines. Time and again, we have seen these designs cause usability problems. The Apple gods may strike us down with lightning, but we recommend against following these patterns because they fail in usability testing:
- Page control: dots to indicate pages
- Form Submit button at the top
- Plus (+) icon
- Move icon
Other Cool Stuff
you can do it
Since we're all learning Swift over and over again as it changes and evolves, here is some great inspiration as we all travel on this learning journey together.
If youâre doing it right, you will continually learn. This is a journey. There will definitely be milestones along the way (you built a website! a script! an app! an Apple Watch complication!), but thereâs no point at which youâll be able to put your fists on your hips and proclaim, "I am the Master of the Development Universe!"
In Case You Missed It
Swift 2.0: Understanding flatMap
I wrote an article with a problem I was facing where the functional solution wasn't the answer only to learn that I could solve it with flatMap
in Swift 2 (follow the discussion on Twitter here). Since it became very clear to me that I don't understand flatMap
, especially how it applies to optionals, I wrote a more detailed account of what I learned about flatMap
.
And since I'm no expert on this stuff, here are some additional articles that might help you understand flatMap
better:
Swift: How To Name Your Extensions
One of my favorite patterns in iOS programming with Swift is to create multiple extensions throughout my files to keep related methods together. The only thing missing from this pattern was that I was unable to name the extensions. Instead, I had to use // MARK: everywhere to keep track of the groupings. I mentioned this to @allonsykraken the other day, and he showed me a simple trick for this â using typealias! To clarify, I'm not saying I'm going to do it this way -> think of this post as an interesting exploration.
Tutorials
Parallax image scrolling using Storyboards
Parallax scrolling is always so much fun! Here is a tutorial on how you can easily implement it in your own app.
Swift + JSON
Weebly/JSONValue
An interesting concept of what JSON parsing could look like in Swift 2.0. With lots of (too many?!!) guards!
Updating Aldwych (Part 1): Parsing JSON with recursive enums in Swift
Another interesting JSON parsing concept - this time using the new indirect enum.
WATCH
Swift Code
Swift Language Available in Chinese - fascinating numbers here!
ResponseDetective - ResponseDetective is a non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and your server for debugging purposes.
PhotoSlider - PhotoSlider can a simple photo slider and delete slider with swiping.
EasyTipView - A tooltip view written in Swift.
swift-linechart - LineChart library for iOS written in Swift
Swift Thoughts
One of the things I've been thinking a lot about ever since I attended Camp Grounded this summer is the importance of play in our everyday lives as adults. Unfortunately, play takes a back seat once we "grow up". And no, drinking at a bar during happy hour does not count.
The kind of play I'm talking about is the kind we had as kids and the kind I enjoyed at Camp Grounded - walking through a river in summertime, hula hooping in a field, playing bubble soccer, running around in a cape, drawing before someone told us what we're drawing isn't right, etc.
As app developers and designers, we have the power to inspire that sense of play and wonder in our users. One way many apps get this wrong is through too much gratuitous UI animation (also looking at all of you heavy JavaScript sites!).
However, there is one app that did it for me this week - Level Money. On the sign-in screen, there is a really cute snail that unassumingly crawls from one side of the screen to the other. Unlike many animations, it's unintrusive, yet so playful and wonderful. Thanks @allonsykraken for pointing this out to me!
As you're considering designing for the Apple Watch, think of how you can add that element of playfulness to your app. The Designing for Apple Watch WWDC 2015 Session has some delightful examples to get inspired by - I recommend watching the whole thing, but skip to 47:15 if you only have 5 minutes today. Toby đ!