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.
News
iOS 13 is already installed on more than 50% of all iPhones
A little more than a month after the official release of iOS 13 @joewituschek has posted an article covering the adoption of iOS 13 across Apple devices. Based on Apple numbers, it’s looking like almost 50% of devices are now running the latest version of the OS with this number being a little higher on devices released in the last few years. For me, the interesting thing is the percentage of devices running versions before iOS 12 which is hovering somewhere less than 10% (at least on iPhones). If adoption continues at this rate, it might be time to seriously consider dropping support for versions prior to iOS 12.
imore.com
Business
How the App Store Ended a Golden Era of Software
@meganmorrone looks back at her time reviewing apps in the early 2000s and in this nostalgic trip down memory lane wonders whether the app store really has been a good thing for software development and indies.
medium.com
Launching ClusterCards 2: Week 1
Fresh from his recent launch of ClusterCards 2 @_julianschiavo shares some of the stats from his launch.
schiavo.me
Yes, You Should Estimate Software Projects
Estimating software projects is undoubtedly hard and with many people in the industry suggesting that we abandon software estimates all together GergelyOrosz remains sceptical and in this article illustrates many of the benefits that software estimates continue to bring.
pragmaticengineer.com
Swift
New Diagnostic Architecture Overview
If you’ve spent any time playing with Swift (and especially SwiftUI) you’ll probably be aware of the sometimes cryptic error messages that the compiler can generate. The good news is that one of the focuses of Swift 5.2 is going to be on improving these compiler diagnostics. @pyaskevich has a new post on the Swift.org blog this week covering some of the architecture for the upcoming changes.
swift.org
Swift Error Handling Strategies: Result, Throw, Assert, Precondition and FatalError
Swift has a whole host of features for propagating and handling errors. This article from @V8tr covers pretty much all of them, and importantly, helps you to understand which approach you should use when.
vadimbulavin.com
Code
Building a Face Detecting Robot with URLSessionWebSocketTask, CoreML, SwiftUI and an Arduino
Fun project from @rockthebruno explores both the new Socket APIs and SwiftUI on iOS 13 by building a face-detecting sentry bot using CoreML and Apple’s Vision Framework. I might be wrong but isn’t this how terminator started? 😉
swiftrocks.com
Time-Limited In-App Purchase
With holiday season approaching for many, @sasmitoadibowo has been exploring some potential options for creating time-limited in-app purchases.
cutecoder.org
Tools
Apple Transporter App
Uploading apps to the store has always been a bit of a pain. This week things got a little easier with the release of a new Transporter app for macOS supporting uploads of both .ipa and .pkg files, delivery progress, validation warning and errors and a whole lot more.
apple.com
Essential Xcode Shortcuts for More Efficient Coding
If you’re anything like me you’ll spend an inordinate amount of time inside Xcode. Learn how to improve the efficiency of your development work with this article from @peterfriese covering a whole bunch of keyboard shortcuts to help you get things done quicker.
medium.com
Videos
How to Build a UICollectionView Like the App Store
@twostraws with a step-by-step tutorial on how to use iOS 13’s powerful new UICollectionViewDiffableDataSource and UICollectionViewCompositionalLayout classes. I’d also recommend grabbing a copy of the accompanying source code so you can follow along.
youtu.be
Context Menus: From Basics to Polish
@kylebshr delivers a live-action version of his comprehensive guide to iOS context menus covering the basics of adding a menu and a preview before showing off more advanced APIs to further improve the user experience.
youtu.be