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 Swift Developments Issue 175! A busy week for Apple this week and also not long to go until iOSCon 2019 which is later this week! Over the last couple of weeks our partners at @skillsmatter have released the full conference schedule which for me was both good and bad news. Good in that there are some great speakers lined up. Bad in that there are just too many talks that I want to go and watch! That aside, I’m looking forward to meeting some new people from around the iOS development community at the event so if you are coming and see me around make sure you come and say ‘Hi’!
So it’s official! This week Apple have announced the dates for this years WWDC event which will again be held in San Jose. Like the last few years tickets are being offered by random selection and you have until 5pm on March 20th (PDT) to register for the draw. Scholarship applications are also open again this year (with a slightly extended deadline of 24th March at 5pm PDT for applications). If you’re a young developer or student just getting started it’s definitely worth applying – just ask @justjs – who this week posted an article on how he built DoublePong – his WWDC18 Scholarship Submission and also checkout this article from @twostraws which has some useful advice from previous scholarship attendees. Whether it be a scholarship or your applying for a ticket directly, as ever, best of luck if you’re putting your name forward.
Along with iOS 12.2 Beta 3 Apple has introduced the concept of Subscription Offers – a range of new options for promoting the subscriptions in your app. This week, @jeiting has been digging into what they are, some of their potential use cases and also provides some views on in-app subscriptions in general.
It felt like everywhere I looked this week, I saw people linking to this one. In this article, @nibroc provides some insights into Apple’s Bug Reporter tool (Radar) as well as a look at some of the major flaws in the current bug tracking and management process. Whilst it *is* fairly depressing reading (at least from a developer perspective) it’s also good to see @NachoMan taking the role of devils advocate with this follow-up article in defence of Apple’s engineers. For me, I’ll still be submitting Radars I think.
You’ll no doubt have heard the phrase ‘Less is More’ and inevitably it is as pertinent to your app designs as it is to any other type of design. So how do we maintain the beauty and simplicity in an app whilst continuing to add new features. Taras Bakusevych has some advice.
With it’s ancestry in the world of Objective-C, UIKit can sometimes feel a little clunky when used from Swift. The interface to
UIControl is one such example. @dtadic has been looking at how we might improve things.
Container View Controllers are a common weapon in the war against massive view controllers helping to split a user interface into a number of smaller view controllers embedded within a single parent. This in turn sets the size and the position of the different children within the container and although this top-down approach works well what if we wanted to reverse the model and use self-sizing child view controllers instead? @kharrison walks through some examples.
Apple’s Vision Framework is one of the more powerful frameworks we have access to as developers, supporting vision processing functionality such as text and barcode detection and image recognition and more. One of it’s more powerful feature is face and feature detection – the ability to pickout and track a face within a given frame. In his latest tutorial, @yonomitt shows you how.
iPhone’s are multi-sensory devices. Now only to they have great screens and great audio but as developers we also have access to the tools and hardware necessary to add a an dimension to our app designs through their in-built Taptic Feedback engine. In this tutorial @abhilashkm1992 shows how to access it with a look at UIKit’s
By default, many of UIKit’s components provide great support for VoiceOver letting users navigate a screen using a swipe right gesture. However, as @tweetinsid highlights in this article, we sometimes need to give it UIKit a bit of a helping hand if we want to a better experience for users with accessibility needs.
LLDB is the default debugger provided with Xcode and drives many of the debugging features you may be used to when working with Xcode. In this article, @fcbunn takes you behind the scenes with a introductory guide to working with LLDB via the command line.
It’s always important to choose the right tool for the job even if that means moving away from a particulary popular tool. In this article @silverhammermba explains his teams reasoning for ditching the popular open source tool fastlane from their CI workflow in favour of writing their own bash-based build scripts. Remember, just because a tool may be popular, doesn’t necessarily mean you should use it. Every project, every team and every environment is different so think carefully about which tools you adopt and make sure that they’re working for your particular situation.
Swift’s Codable protocol has made converting data to and from different data types significantly easier than it used to be and if nothing else has eliminated large swathes of boilerplate code that we used to have to write. If you’re looking to push the encoding a little bit further, you might want to check out this new library from @featherless which provides all the tools you’ll need to encode types to and from different binary representations with a Codable-style interface – particularly useful if you’re looking to squeeze even more performance from your networking protocols or looking to work with binary file formats.