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 another week of Swift Developments! So it’s a big birthday for me this Sunday and with the tail end of the activities in Rio, I have to admit I’ve been a little distracted. However, it’s been another bumper week for articles, links and videos this week so send me a tweet and let me know what you think. Enjoy.
Submitting screenshots to the app store has never been a particularly easy task. Multiple devices, multiple screen sizes along with localisation variants means uploading hundreds of different images for each app. Although tools like snapshot (part of the @FastlaneTools toolchain) make this job easier, Apple has made life a little easier this week by now giving us the option to upload just one set of screenshots and optional app preview per device family and yet have them used for all devices and localisations. Should make things easier.
Unless you’ve been living under a rock for the last few weeks you will no doubt have heard about the internet’s latest global phenomenon, Pokémon GO. It’s been a stellar rise to success but in it’s first few weeks has suffered a number of high-profile bugs, server issues and a number of additional privacy concerns. In this article on the @atomicobject blog, Dan Kelch extracts some of the lessons learnt including how more testing might have mitigated many of the issues we have seen.
We’ve all been there. There’s a long list of features that we could add to the app but identifying which of them to include, which to exclude as well as their relative priorities can sometimes be almost impossible. Although the MoSCoW method is a relatively common approach for many if that just ain’t cutting it @uxforthemasses have five other techniques that you can try.
Having a clean, well thought out app design can be a critical differentiator in the competitive world of the app store but if you’re just starting out how do you develop the design thinking that you will need to elevate your app above the masses? This is where design critiques come in and in this article, @jazzy33ca uses the socratic method to provide feedback on student Jon Lee’s initial app design. It’s a great article and you should be able to pick up a lot Jasmin’s questions.
Debugging is a critical skill for Swift and iOS development and with the complexity of many iOS applications this often involves a lot of skill and knowledge to decipher exactly what is going on. One good way of acquiring this experience is to work through the thinking of others which is where this article comes in. In it @kam800 walks through the steps he took to debug some strange behaviour in MapKit. It’s an interesting read and worth following along.
Introduced in iOS 9, UIStackView has become the workhorse for many iOS applications and one of their most powerful capabilities are the in-built animation features. In this article, @atomicbird shows us how to use them to good effect, dynamically creating an expandable UITableViewCell with auto-updating layouts. An useful technique.
Introduced at WWDC this year, Apple’s new SpeechKit framework has opened up Siri’s speech recognition capabilities to the wider development community. To help you get started with these new capabilities, @SahandEdrisian has written a nice introductory tutorial.
You’ll no doubt be aware that Xcode has a number of templates that you can use when adding different types of files to your projects, but did you know that you can also create templates of your own? In this article, @dasdom shows us how.
Multiplatform Single Scheme Xcode Projects
With the recent proliferation of Apple platforms, management of different Xcode schemes has become an increasing problem. Until I came across this article this week, I hadn’t realised you could actually do this with Xcode. It’s a nice tip from @mxcl.
Write code in a clean, consistent manner can have significant benefits for your project, especially if you’re working as part of a larger team. To help with this, many teams adopt coding styles. In this article, @_bartjacobs shows us how to get started with Tailor a static analysis and lint tool that you can use to enforce your coding styles and will help to take your code consistency to the next level.
A common approach when testing network requests is to stub them with fake network responses from local files or recorded requests. Kakapo by @devluckyness takes a different approach dynamically mocking your network requests and simulating back-end server behaviour to provide a more realistic environment for your testing. Worth a look if you’re looking to beef up your testing effectiveness.
KZFileWatchers is a new micro-framework from @merowing_ that allows you to monitor both local and remote files for changes and then execute code when they do. If you’re interested in what’s involved, @jakemarsh has a great Little Bites guide to get you started.
With the introduction of Swift there has been a growing use of value types and immutability to help solve the challenges of thread safety, performance and scalability whilst also simplifying debugging. One application of this approach is immutable data models, one of the cornerstones of functional programming and in this talk, @plivesey453 provides some great insight into how to maintain consistency between your different model instances. An interesting talk.