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.
One of the new features that has made it’s way into this weeks round of iOS 12 beta 3 updates is the fact that developers now have a choice over when they offer discounts for their subscription-based apps rather than the one-time redeption that they have had up until now. Whilst this is a small change, it’s never the less, one that is good to see. @bzamayo supplies all the details.
A very interesting article from @stuartkhall in which he discusses his recent experiments with app pricing that have lead to a significant increase in overall revenue. It’s a good example of why ongoing experimentation is a must.
Skafos.ai is Machine Learning for iOS Developers
Skafos is the tool for iOS developers to deploy machine learning to their app. Get started with a pre-trained model, drop in the SDK and then updates are pushed to your app in the background. Sign up for the free beta today.
A Beginner’s Guide To User Journey Mapping
An important part of designing a great app is understanding how our users will use the app to solve their problems and how the app in turn contributes toward the overall user experience. A great way of shedding light on this is through the concept of user journey mapping – a visualisation of how your user will interact with your app over time. In his latest article @101babich shows you how to get started.
In his latest article @mattt discusses some of the pitfalls of namespace solution in Swift and how by simply importing a module, you can sometimes fundamentally change how your code behaves. It’s an interesting read.
Behind the Proposal — SE-0200 Enhancing String Literals Delimiters to Support Raw Text
Swift Evolution proposal SE-0200 Enhancing String Literal Delimiters to Support Raw Text has introduced a number of changes in Swift 5. In this article on the Swift.org blog, @ericasadun discusses what raw strings are, some of their history in Swift, how they are implemented and what we can do with them in our code.
With the arrival of Apple’s recent generations of devices, UIKit’s safe areas and layout margins are more important than ever. @richturton takes you through the basics and looks at how the two concepts interact to influence the position of views on a screen.
In an interesting contrast to the Coordinators articles and video’s I’ve linked to in the last few weeks, @mecid takes a look at the concept of Flow Controllers, and how through the use of ViewController containment, we can use them as an alternative approach to separating navigation flow from view controller logic.
I’ve linked to a couple of articles recently on Code documentation but despite this found myself agreeing with many of the points in this article from @zorn. It acts as a good reminder of what it actually takes to write good documentation for your code.
Swift has taken hold of the iOS development world, but you can also use Swift natively on macOS, Linux, and Windows for server-side application development. The team at @rwenderlich have this week thrown their support behind the burgeoning server-side Swift community with a brand new section to their site devoted to things server-side frameworks such as Kitura and Vapor, tutorials about testing on Linux, how to deploy to Docker and Vapor Cloud, and a whole lot more. Good to see server-side Swift becoming increasingly mainstream.
Introduced in Swift 4, KeyPaths are a powerful addition to the Swift language letting us refer to instance properties as separate values (think refefring to the property itself rather than the value of the property). As such, they can be passed around, used in expressions and also let us get and set properties without necessarily knowing exactly which property we’re working with. In this talk @v_pradeilles take them for a spin and illustrates just how powerful they can be.
@zwaldowski discusss the the reverse-engineering mindset, digging into the underbelly of the HomeKit framework and shows you how to extend HomeKit to add support for a controlling a previously unsupported television.