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.
Sketching, Wireframing and Aligning With Your Users Goals
When it comes to user interface design, sketching and wire-framing are extremely useful techniques for quickly iterating on different user interface ideas. In this two-part series (Part 1, Part 2), @markdodgson looks at why sketching and wireframing are so important and why you should consider incorporating them into your own app-design workflow.
Mobile First – Insights from Going Mobile Only
In this article, @realjoet provides some great tips to consider when designing mobile apps. These include thoughts on navigation, ergonomics and content design and most importantly consideration of what you users are trying to achieve.
The Psychological Battle of Big Refactorings
This article was particularly pertinent for me this week as my colleagues and I are about to embark on a major enhancement and refactoring exercise. Rather than focusing on particular refactoring techniques, @developerscode talks about the more psychological aspects of refactoring and the challenges it brings. It’s a perspective I’d not really considered up until now.
Migrating to Swift 3
So as I mentioned in the introduction, Swift 3 is nearly here and that leaves many of us with the prospects of migrating existing code bases to Swift 3’s new syntax. In this article, @jesse_squires provides some great tips for doing just that, including branching strategies and some more detailed gotcha’s. The article also includes a cameo appearance from @chriseidhof though you have to wonder why there aren’t any post-migration pictures… ?
Cleaning Up With the Swift Defer Statement
My focus on the article front this week has been Swift’s defer statement. The defer statement is a useful supplement to Swift’s in-built error handling mechanisms and provides nice way to guarantee resource cleanup, even in the case of errors. As ever, let me know what you think.
Measurements and Units in Foundation
This years WWDC brought a number of changes to the Foundation Framework including the addition of a new types for modelling units of measurement. In this 3-part mini-series (Part 1, Part 2, Part 3) @olebegemann digs into these new capabilities looking at what is provided by default as well as how to extend things by adding units of your own.
Simultaneous Xcode 7 and Xcode 8 Compatibility
We’re in a slightly strange period of transition currently. The beta releases of iOS 10 and Swift 3 are available and you might be keen to get going but if your app is already in the app store it would fail validation if you simply compiled it for iOS 10. It doesn’t necessarily mean you have to wait though. In this article, @radexp gives us the best of both worlds by showing us how to support both Xcode 7 and Xcode 8 without the need to juggle a bunch of different version control branches.
Xcode Visual Memory Debugger
Another new feature that was introduced at WWDC was Xcode’s Visual Memory Debugger. Identifying memory issues such as leaks and retain cycles has always been a little challenging but the new memory debugger promises to make things significantly easier. @kharrison takes it for a spin.
Danger – Stop Saying “You Forgot To…” in Code Review
Danger is a new tool from @orta and @KrauseFx that hooks into your continuous integration system and can be used to automate many of your code review chores. It does this via a set of rules that you write (in Ruby) to encode your projects review conventions. Danger then uses these rules to leave messages within your pull requests to indicate the level of compliance. As more of the rules are met, the message within the pull request are amended reflect the current state of the code review. Worth looking at, especially if you or your team have the occasional attack of amnesia.
How to build an iOS application with SQLite and GRDB.swift
SQLite is a self-contained, zero configuration, transactional database solution that is commonly used as backing store for Core Data solutions. However, if you’re not looking for all the bells and whistles that Core Data brings you also have the option of using SQLite directly. To make this latter usage a little easier, @groue has written GRDB.swift a low-level SQLite API for accessing SQLite databases in Swift. As an added bonus, he’s also written a nice introductory article to help you get started.
Grokking Lazy Sequences & Collections
Working with collections and sequences is a key part of working in Swift and in this talk, @bkase_ takes a look at their more performance oriented aspects by looking at how and when you should use lazy sequences and collections within your code.
Reactive Programming with RxSwift
In this talk from AltConf 2016, @scotteg provides a great introduction to reactive programming and the benefits it can bring. The talk not only looks at how to get started with Reactive Swift (using RxSwift) but also provides additional resources to help you climb the reactive learning curve. A great introduction.
10 Modern Software Over-Engineering Mistakes
In this article, @rdsubhas digs into why over-engineering is a bad thing and looks at some common examples of over-engineering whilst providing tips on how to handle the ever-changing world of business requirements.
Welcome to another week of the newsletter! It’s been a busy week this week with Apple selling it’s billionth iPhone and the shutters coming down on source breaking changes for Swift 3. @clattner_llvm has also posted a retrospective of Swift 3 and some initial targets for Swift 4 that’s worth reading if your interested in the future of Swift. In the mean time, there have been a bunch of great posts this week so let’s dive in.