Swift Developments is a hand-curated newsletter containing a weekly selection of the best links, videos, tools and tutorials for people interested in designing and developing their own apps using Swift.
It’s a pretty busy few weeks coming up for me so this week has seen me heads down trying to produce some new articles for the website so that I can have a few in reserve should things turn out to be a little busier than I have planned.
In the mean time, I just wanted to say thank you to you if you are one of the people who have provided such positive feedback on the articles I’ve written so far. As you can imagine, they are a chunk of effort to write (mainly because I seem to be making them all so long) but I’m really happy to hear that people are finding them useful.
Anyway, enough from me, let’s get on with this weeks articles.
As I mentioned in last weeks newsletter, the infrastructure surrounding the Swift open source project is starting to come together. Last week saw the implementation of a continuous integration system and this week saw the announcement that Swift’s benchmark suite has now been open sourced. The new suite provides functions for performance testing as well as drivers to both run and display performance metrics and from what I can tell, there are also plans to integrate the CI system with this new benchmark suite in the future. A good step forwards.
I mentioned the slow demise of the Mac App Store a few months ago when Bohemian Coding pulled their best selling design app Sketch from the Mac App Store. This week has seen another relatively high-profile departure with @RogueAmoeba pulling their audio recording software Piezo. In their announcement they cite both the restrictive nature of app sandboxes as well as the ongoing issues with the Mac App Store as reasons for their departure. What still remains to be seen is whether Apple can do anything to halt this continuing exodus.
I’ve been following the Swift mailing lists since they started so it was with great interest that I read this article from @ospeedoflight. In it, he points out some of the potentially down-sides these mailing lists. It’s an interesting read.
How to Find More Time In Your Schedule to Learn a New Skill (And Get More Done)
For many, finding the time to learn a new language such as Swift or work on a new app or side-project can be a significant challenge. In this article, @heyseankim gives us a step-by-step approach for how you can shuffle your commitments to free up regular blocks of time to learn new skills and push your side-projects forward. I’ll definitely be taking some of the ideas on board.
Having read the article above you may be wondering what you are going to do with all that extra time. In this article, @jonasdowney gives us a good overview of the design side of the app design process as he recounts the development of his side project Hello Weather. It’s a good example of what can be achieved with a little time and perseverance. I’m not sure I’d recommend taking two years to do it though!
I’m a big fan of creating high-fidelity mockups of an app design prior to diving into the development of an application. As a result, I’m always on the look-out for design templates that can be used to get the look an feel for the application *before* the development process begins and with this in mind, I was pleased to come across these design resources from @facebook which provide high-fidelity mockups for Sketch that cover most of the common Apple devices as well as a number of other hardware platforms.
I’m always looking for ways to better structure my apps and in this article @ctarda looks at why tracking state inside your view controllers may not be the best of ideas as well as looking at some other approaches that may help.
Model-View-Binding in Swift
I’ve included a number of articles recently that covered the bulk of the popular architectural patterns used within iOS apps. MVC, MVP, MVVM and VIPER were all mentioned but in this article, the team at @Asynchrony walk us through a pattern that I hadn’t seen before – Model-View-Binding.
Following on from the Model-View-Binding article above, this week also saw the publication of this article from @ColinEberhardt. In this article, he walks us through the use of Bond, an open source framework that helps take some of the pain of wiring up your views to their underlying data.
Error handling is a critical aspect of writing Swift code and one that I’m likely to cover in a future post on the blog. In the mean time, we have this from @aligatr in which he goes beyond the basics and looks at how to handle errors in an asynchronous environment.
One of the most powerful frameworks available for the Apple platforms is Core Image. Providing powerful image manipulation and filtering capabilities, it is an extremely useful framework if you’re planning any sort of image processing within your apps. If you’ve never used it, this article from the team at @appcodamobile provides a nice introduction.
Continuing our walk through the Swift language, last week saw another post in my Swift series, this time looking at Swift’s continue and break statements. As ever, I’d love any feedback you have.
Two interesting libraries this week around the area of labels and text fields. The first, LTMorphingLabel, is a framework from @lexrus. Written completely in Swift it provides some nice transitions for UILabels. It’s still experimental so if you’re looking for something for production checkout out ZCAnimatedLabel instead though.
In similar vein, we also have this framework from @raulriera. Text fields often play a central role within many applications so adding a little polish in these areas can often pay dividends. As ever, don’t overdo the animations, but if you are looking to add that little something to your UI design, this library may be just what you’re looking for.
For many, Instruments – the app performance profiling tool that comes as part of Apple’s development tools – can be a mysterious and daunting beast. If you’ve never used instruments before, this article from @kazmiekr provides a good introduction.
Core Data, the de-facto persistence framework for iOS and OSX can often be confusing due to the sheer flexibility of the framework. In this talk from CocoaHeads Stockholm, @floriankugler discusses some potential approaches you can take as well as arming you with the knowledge to decide which approaches is best for your own particular persistence needs.
In this article from NSSpain 2015, @khanlou discusses app architecture, massive view controllers and how presenting view controllers can be used to improve the situation. It’s a interesting talk and worth finding the time to watch.
In our final video this week, we have this one from @MicheleTitolo in which she talks about using protocols, pain points and how to make working with protocols in mixed-language code bases easier. It’s worth watching, especially if you’re working in mixed Objective-C / Swift code bases.
Understanding concurrency is one of the more complex aspects of coding. In this interesting collection of tutorials from Petr Hudeček and Michal Pokorný, you play the role of the scheduler, trying to protect the world from the Parallel Wizards armies. If you can extract yourself away from the fact that it’s focused on C# it’s a fun way of getting your head around some of the common multi-threaded problems such as concurrency and deadlock that are common to all multi-threaded languages.