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
Customer Letter – Apple
Unless you’ve been living under a rock or stranded on a desert island, the big news this week was the obviously the Apple / FBI story. I’ve not really got anything to add that has not already been written but if you haven’t read the letter from @tim_cook it’s definitely worth a read. Whichever way this story plays out the implications are going to be both profound and far-reaching.
apple.com
Getting Started
The Switch Statement in Swift
Another week, another article. This week, saw us continue our tour through the Swift language by looking at the ins and outs of Swift’s switch statement. Hopefully the article will be useful to you if you’re just learning Swift. As ever, I’d love any feedback.
andybargh.com
Business
Which iOS versions should you support?
With Apple’s ever changing hardware platforms and regular new releases of iOS, it can often be a difficult decision to decide which versions of the operating system you should support in your apps. If you’re still pondering this question, this article from @jurezove will give you some additional food for thought.
candycode.io
Design
How to Design Great Icon for Your Mobile App
As the opening line of this article says – looks matter – and your app icon is no exception. With competition growing in the app store, your app icon is often the first thing potential users see and you only have a split second to make an impression. To this end, Lena Voitenko at @yalantis walks us through some key criteria for designing a great app icon.
yalantis.com
Data Protection For Mobile Client-Server Architectures
Regardless of whether Apple are forced to build in a backdoor or not, keeping your users data safe and secure is an important consideration for mobile application developers. In this post and associated video, @vixentael outlines some of the key things you should be thinking about to secure your users data.
medium.com
Code
Transitioning From Objective C to Swift in 4 Steps – Without Rewriting The Existing Code
With the growing maturity of Swift, many developers with large Objective-C code bases are faced with a decision. Should they continue with Objective-C going forward or should they adopt this new language? If this is a challenge that you are facing, this article from @GergelyOrosz provides a useful approach.
codevoyagers.com
Creating a Web Service for Your App in Swift with Perfect
Server-side Swift functionality continues to mature and there are a couple of frameworks that seem to be getting some traction lately which I’m surprised I hadn’t linked to before. The first is Perfect from @perfectlysoft and in this article, @chrismanahan walks us through how to create a simple app with a backend web service based on this framework.
chrismanahan.com
Hello Server Side Swift
Another alternative on the server side is the Laravel-inspired Vapor by @tanner0101. In this article, @LogMaestro takes a look at how to get it setup on Heroku.
medium.com
Enhancing UIViews Using Extensions
There are a couple of common ways to add new features to UIViews – composition and subclassing. In this article @arekholko looks at a third, less common but potentially more fitting approach: extensions.
holko.pl
Peek & Pop
One of the major selling points of Apple’s new 3D touch feature available on the iPhone 6S and 6S+ is peek and pop. Providing the capability to preview an apps content without having to open the full application, this new feature brings a completely new angle to iOS design. In this article, @allonsykraken dives into these new features and looks at exactly what we need to do to implement peek, preview actions and popping in our own applications.
krakendev.io
Libraries
EarlGrey – iOS Functional UI Testing Framework
Googles announcement for this was pretty low-key. EarlyGray is a native iOS UI automation test framework that works in conjunction with XCTest and integrates with Xcodes Test Navigator allowing you to run UI tests from both Xcode and the command line. There have been a couple of early build issues – ironic for a test suite – but despite this, this framework may be one to keep an eye on.
github.com
Testing
Why Hitting The Network Is Bad For Your Test (And What To Do About It)
It’s funny when you’re having a discussion and at pretty much the same time an article pops up on exactly that topic. This is what I had this week with this article from @mokagio in which he reminds us why you really shouldn’t be accessing the network in your unit tests.
mokacoding.com
Refactoring Tests: 3 Easy Steps to Greater Clarity
It’s all very well refactoring your production code but as @qcoding points out, you should also be doing the same with your test code. In this article and associated video, John Reid reminds us of the 3-step TDD dance. As I said in a earlier in the week – there is definitely something satisfying about watching refactoring in progress. Maybe it’s just me.
blogspot.com
Preview into Unit testing via Swift Package Manager
There have been some big changes in the architecture of Swift’s package manager recently including the addition of support for using XCTest. In this article, @aciidb0mb3r gives us an early preview of just what will be possible in the not too distant future.
ankit.im
Tools
Self-Hosted CI for iOS/Mac development
As this article says, if you’re development team is anywhere near serious about using agile software development practices then a continuous integration server is almost essential. In this article, @hello_paja looks at the different options and lays out the case of why you should self-host your CI server rather than using any of the cloud-based services that are available.
medium.com
Run iOS Tests In Multiple Simulators In Parallel At The Same Time
If you are running UI tests using the iOS simulator it’s highly likely that they’re taking some time to run. It was with great interest then that I saw this article from Johannes Plunien which promises to reduce this time significantly by running tests in parallel.
medium.com
Videos
Beyond Crusty: Real-World Protocols
Protocol Oriented Programming talk from WWDC 2015, is often heralded as one of the best WWDC talks ever and opened the eyes of a lot of people (including mine) toward a completely new way thinking about problems in Swift. Although this talk opened up a whole new world of opportunity, the realities of writing protocol oriented code isn’t all plain sailing and in this talk @cocoaphony, highlights some of the issues you may encounter as well as some practical steps to avoid them. It’s a great talk.
thedotpost.com
Swifty View Controller Presenters
“Prior to the iPhone 6 and 6S, presentation was only something to be concerned about on the iPad, and less so on the iPhone” – In this talk @jesse_squires takes a look at the UIPresentationController APIs and looks at how to wrap them in a slightly Swiftier API.
realm.io
Consistent, Thin, & Dumb: Redesigning the Spotify iOS App
In this talk, @iOSCowboy takes us through some of the design considerations and stepping stones he and the team at Spotify went through in transitioning their iOS app design from being an inconsistent, thick and client-based application into a more consistent, light and backend-driven architecture. There’s some good points in the talk, and not all of them technical ones.
realm.io
Localization is Hard
This week has a been a bit of a bumper week for videos and I couldn’t leave this week without including this video. Localization is often an afterthought for many developers but in this talk @marmelroy presents some great tips on how to ensure that your app works correctly with a variety of different languages and locales.
thedotpost.com
Finally
Test Your Swift Knowledge
To wrap up this week, @twostraws has put together a fiendish set of Swift questions for you to pitch your Swift knowledge against. If you’ve been reading my Swift posts recently that knowledge will stand you in good stead, but even then, some of the questions are definitely tricky!
hackingwithswift.com
Comment
It’s been a busy week for me.
My young trio all turn three tomorrow (the 24th) – (it’s the same birthday as Steve Jobs so maybe it was a sign) – so lots of family things for me this week.
I’ve also had some great feedback on some of the articles I’ve written and some great insights from some of you on your experiences with iOS development in general so a big thank you to you if you were one of the people who replied.
As I’ve said to you before, getting feedback (of any sort) is invaluable to me and lets me identify the areas that I can improve both the newsletter and the website so if you do have any suggestions, please feel free to reply to this email or contact me via the website. I’d love to hear your thoughts.
Anyway, enough of me rambling on, let’s get on with this weeks links.