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.
Although release notes remain one of the best ways for developers to tell users about changes in their app if you scan through app updates on the store you’ll commonly see release notes containing comments such as “Bug Fixes” or “Minor Updates” and little else. In this article @AmyNordrum dives into this topic, highlighting some of the app developers that work hard to buck this trend and looking at just what goes into writing a great set of release notes for an app.
App Store Search Ads remain a big opportunity for developers wishing to promote their apps within the store and can be a great investment for those wishing to increase their apps visibility. If you’re looking to get started, this article from the team at @AppPartner provides some useful tips for creating your Search Ad and also provides a link to step-by-step tutorial video from the team at @incipiaco that shows you how to get things setup.
Looking to expand your horizons and break out of the Apple ecosystem to use Swift on Linux? @dimitryz has written a nice step-by-step guide on how to get things setup on Ubuntu 17.04 that’s a good place to start.
Dependency management is one of the biggest challenges that faces you when designing object-oriented software and due care, your code base can quickly turn into an unmaintainable mess. Over the years though a number of best practices have proven effective at combating this decline, practices such as encapsulation, single responsibility principle and preferring composition over inheritance. In this article, @alp.avanoglu provides an introduction to these ideas and provides some nice examples of how to apply them to your own code.
This week, Apple have published another article on their machine learning blog, this time on the topic of on-device deep learning for face detection. It’s a fascinating, although somewhat advanced, read and provides a number of insights into how face detection works on iOS devices.
If you’re looking for a state management pattern for your app, this article from @mminer might be worth checking out. In it, Matthew uses Redux and RxSwift to construct a simple state management architecture along with associated observable streams for propogating state changes to observers. It’s a little suprising at how easy it is.
Although Swift’s force unwrapping operator is a necessary evil within the language, especially when working with Objective-C APIs, as a community we’ve generally learnt to avoid using them as much as possible in our production code. With test code we often see these standards relaxed though, an approach that often leads to problems down the line. In this article, @johnsundell aims to save you from some of this pain by providing some useful techiques that you can use to maintain the same level of quality in your test code as you do in your production code.
If you commonly use @IBDesignable in your Xcode projects to get real-time rendering or your custom controls inside Interface Builder, you may have noticed that Xcode sometimes triggers a re-build of your code without you asking. In general this is done to render these custom views inside Interface Builder, but sometimes this can get a little out of hand. In this article @arekholko explains how to reign in some of Xcode’s enthusiasm.
If you’ve taken the leap with MVVM and functional reactive programming, it’s not uncommon to want to trigger signals based on
UIApplication lifecycle events. Rather than relying on signal binding or method swizzling, RxLifeCycle by @onmyway133 provides a more convenient, compositional, approach to observing these lifecycle events.
SwiftyMocky by @MakeAWishFoundation is a light-weight, strongly typed Mockito-like mocking framework to help improve the unit testing experience. Using Sourcery under the hood, it can save you time by auto-generating mock implementations for you and supports all the standard mocking framework behaviours you might expect such as verifying that mocked methods have been invoked and specifying different return values for attributes.
With the ARKit-based apps on the rise and users increasingly wanting to share their views into those augmented worlds with friends, ARVideoKit by @iAFapps might be worth a look as it lets you easily capture photos, live photos and GIFs for your ARKit-based apps.
With so many great videos coming out this week I had a real job trying to pick which to include in this weeks issue. With that said, we’ll kick of this week with this bumper collection from this years iOS Conference SG 2017. There’s some great talks and a wide range of topics to choose from so it’s worth spending a bit of time to browse through and see what catches your eye.
As technology continues to evolve, how often do you stop to think about the ethics of the apps and technology that you are building? In this humourous, thought provoking, and sometimes terrifying talk, @pfj discusses some of the ethical decisions surrounding these advancing technologies and looks at some of the difficult decisions society will be faced with in our not-so distant future. Great talk to round off this weeks issue!