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.
So here it is, Issue 210 and we’re rapidly heading toward the end of 2019. It’s also the first issue I’ve written on my new 16″ MBP! Yep – I couldn’t resist and after just over 7 years, I’ve finally decided to retire my old 2012 Retina MBP and upgrade to a new machine that will hopefully take me forward for at least the next few years if not the next 7! Having had the new machine for just over a week I can safely say I’m loving the experience! No keyboard issues that I’ve noticed, a chunk more memory and hard drive space, a massive bump in processing power and a correspondingly impressive decrease in compile times, the time saving alone has been worth the investment! Needless to say – I’m loving it!
If there is one thing that is guaranteed about working in the computer industry, it’s that technologies will continue to be introduced and others will continue to fade into obscurity. This ever-changing landscape poses an interesting problem though – how to handle this obsolescence. @pilky takes a look at how Apple has approached this over the years.
As an app developer, you’re probably comfortable working with code. You can take a design someone has created and then implement it but what about that first part? What about coming up with the design yourself? This is a challenge faced by many developers moving into the indie space and to this end, @jordanmorgan10 has this week been asking himself the question – is it possible to learn design as a developer?
@rockthebruno takes another journey into the depths of the Swift compiler – this time with a look at OptionSets – how they are represented in Swift, how they are bridged to Objective-C’s NS_OPTIONS and how you can use them in your Swift code.
When writing libraries that are meant to be used by other developers it can be difficult to decide on where the scope of your library should end. With the correct design though, you can keep things clearly defined and yet still design things in such a way that they can be easily extended by other developers. This article from @swiftbysundell can help with this, showing you how to set up a plugin-based architecture for your code that lets users easily extend your library where needed whilst also allowing you to keep your libraries scope tightly constrained.
If you’ve ever played with stickers in iMessages, you might be familiar with the little peel-off animation stickers have when dragging them onto a message. The thing is if you’re looking to implement something like this yourself using CoreAnimation you might start to struggle – the APIs just aren’t there to do this easily. No worries though – Robert Böhnke is here with a clever tutorial showing you how to use SceneKit and SCNGeometryTessellator to create a similar effect.
@khanlou digs into the world of combinatorial parsers and how to use them as an alternative to more complex (and difficult to understand) Regex patterns. He also provides some useful jumping-off points if you want to investigate combinatorial parsers further.
One of the big new features in CoreML this year has been the addition of support for on-device model personalisation. Over the past few months, @mhollemans has been putting together a really interesting series of articles (1, 2, 3) covering this new feature and this week he rounds off with a look at how to train a deep neural network and then use transfer learning to customise it on-device.
With rumours circulating about potential performance issues when using
AnyView in your SwiftUI applications, @nallexn dons his Mythbusters hat to investigate whether there is any substance to these rumours. It’s an interesting read.
@gabtheodor and the team at @AppCodaMobile have been doing a good job over the last few months publishing a series of articles related to macOS development. This article continues in this vein, taking a detailed look at how to display hierarchical data in your macOS applications using NSOutlineView.
Built on top of Apache Lucene, Elastic search is a popular distributed search and analytics engine used to handle large volumes of structured and unstructured data such as log files and event metrics. This tutorial from @_cweinberger shows you how to integrate these features into your own Vapor-based Recipe Finder web API that supports simple CRUD operations and integrated search capabilities. I enjoyed this one.