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
Billing Grace Period Now Available in App Store Connect
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.
apple.com
Apple Announces Release Dates for OS Updates, New iPhones, and Apple Watch
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.
macstories.net
How Apple’s Apps Topped Rivals in the App Store It Controls
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.
nytimes.com
Sponsored Link
Run Your iOS Builds 42% Faster
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?
semaphoreci.com
SwiftUI
Accessibility in SwiftUI
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.
github.io
Dismiss Gesture for SwiftUI Modals
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.
swiftui-lab.com
Code
Vision Framework: Working with Text and Image Recognition in iOS 13
Two brand new features to the Apple’s Vision Framework in iOS 13 is the addition of the VNRecognizeTextRequest
and 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?
appcoda.com
4 Techniques You Must Know for Natural Language Processing on iOS
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.
fritz.ai
iOS Dynamic Push Notifications with AWS Pinpoint
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.
medium.com
Understanding New Location Permission Changes in iOS 13
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.
medium.com
Replicating Facebook’s Draggable Bottom Card using Auto Layout
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.
fluffy.es
Tools
Improving Your Xcode (Swift) Compile Time
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.
medium.com
Videos
Memory Layout & Pointers
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.
youtu.be
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!