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.
Welcome to Issue 199 of the Swift Developments newsletter! Obviously there’s been a lot going on this week with Apple’s iPhone 11 event (no sight of the MacBook announcements I was hoping for but ?for another event in October) and then a whole host of other Apple announcements including the fact that iOS 13 and watchOS 6 app submissions are now open (and as of April 2020, ALL apps will need to be built against iOS 13 / watchOS 6), new guidelines for sign-in with Apple (which will also come into effect April 2020) and also a number of updates to the app store guidelines for apps within the Kids category.
In other news, I’m also happy to have a returning sponsor this week in the form of SemaphoreCI. They’ve put together a great CI/CD service for iOS that’s fast, scalable and could be a great boost you need for your team’s development productivity so make sure you check them out!
One really nice change Apple have made this week has been the new arrival of billing grace periods within App Store Connect. For those apps using auto-renewable subscriptions, Billing Grace Period will allow you to let subscribers whose auto-renewal has failed due to payment issues continued access to the app whilst Apple attempts to collect payment. It’s a good compromise in my view and one that should make the overall user experience a little smoother.
If you’re to play your release schedule of the next few weeks, then look no further than this MacStories article from @johnvoorhees which is your one-stop-shop for all the key Apple-related dates coming up over the next few weeks.
I found this article from Jack Nicas and Keith Collins in the New York Times very interesting. It’s an in-depth look at how Apple has been ranking their own apps within the App Store search results since the App Store was launched. Do you still think it’s a level playing field? I’ll let you decide. Either way – I thought the article itself was a cool example of how to bring different graphical elements together to tell an interesting story.
Supercharged CI/CD pipelines for your next iOS build. iOS 13 supported. For every $1 invested in Semaphore, engineers gain $23 in reclaimed productivity. Who said money can’t buy you time?
One of the many great things about SwiftUI is its in-built support for accessibility. @mecid has been looking at its various features and in this tutorial shows you how to work with SwiftUI accessibility modifiers to improve your apps overall user experience.
As we know, SwiftUI is still super-new and as such, doesn’t have all the bells and whistles we’re used to from UIKit. One area in which SwiftUI currently falls a little short is around dismissing modal views. @SwiftUILab has been developing a workaround but be warned – in Javier’s own words – the solution is a bit of a ‘hack’ but then again might just be the stop-gap you need until SwiftUI catches up.
Two brand new features to the Apple’s Vision Framework in iOS 13 is the addition of the
VNRecognizeAnimalsRequest classes for recognizing and extracting text and for recognizing ?’s and ?’s in images. This fun tutorial from @sai_k1065 shows you how to get started with both of these new APIs. Cat meme anyone?
I’ve been digging into these APIs myself over the last few weeks and if I get a chance I might write up a blog post (something I’ve been seriously lax on since writing Swift Developments every week). In the meantime though, be sure to check out this article from @ozgr_shn on Apple’s Natural Language Framework and four different NLP techniques that you can use within your apps. It’s a nice introduction.
In this step-by-step tutorial, @marvinmouroum shows you how to use AWS PinPoint (one of the hundreds of different services available on AWS) to set up a back-end infrastructure for your to distribute dynamic push notifications.
There’s been a fair amount of controversy associated with Apple’s recent changes to the Core Location framework and user permissions in iOS 13. This article from @TejeshwarGill digs into the new permission types and takes a look at what these changes might mean to you as a developer.
There’s been an increasingly popular trend in app designs over recent years to have a card-like modal appear at the bottom of the screen that the user can then expand and contract to see (or hide) information (think the bottom of Apple’s Map’s app). If you’re looking to implement something like this yourself, check out this two-part (Part 1, Part 2) series from @soulchildpls which walks you through things step-by-step.
Who wants to wait for ages for a project to build. Not me, and I guess not you either. If your build times are getting you down, then check out this article from Alexandros Smponias which has a bunch of tips on how to improve things.
To round things out this week let’s close with this advanced Swift video tutorial from @LucasDerraugh that takes an in-depth look at memory layout and pointers in Swift and how you can use them to write Swift code that interfaces with C. You might not use it all the time but it’s useful knowledge to have in your back pocket should you need it.