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.
It’s been a busy week this week with the release of Swift 3.1, iOS 10.3, the ability to respond to app store reviews going live and WWDC tickets also going on sale! On top of this I’ve got another issue of Swift Developments! Enjoy this weeks issue and best of luck if you’ve decided to throw your name into the hat for WWDC.
If you’re just starting out as a freelancer or just doing a few paid projects on the side, it can be difficult to come up with realistic hourly rate for your services. If this sounds familiar, @digitalleaves has put together a useful guide on some of the psychology behind setting your rates and how you can properly set, and update them, going forwards.
Quality Goes Beyond QA. A Culture of Quality As a Competitive Advantage
No matter how much testing you have done during development, there’s inevitably going cases where bugs or problems surface in production. In this article, @pietrorea the team at @sweetpeamobile provide some useful advice on how to best position you, your app and your business to tackle these situations when they occur.
I really like articles that review the designs of existing apps. It’s like looking over the shoulder of another designer as they work and for me it’s one of the best ways to improve my own skills. In this article @petrovics_p works his way through the popular fitness app Runkeeper and provides some interesting insights along the way.
Never Just Design Pretty Little Apps
With all the eye-candy app screen-shots you see out there, it can be tempting to emulate those designs, and end up focusing on aesthetics at the expense of useability. In this article @miklosphilips warns against this path and in doing so provides some great advice to keep in mind when creating your own app designs.
At first glance the
if statements in Swift serve similar purposes. But there are subtle differences and specific situations where each of them should be used. @natashatherobot provides some guidance.
Although Swift makes it much easier to create new namespaces through the judicial use of structs, enums and nested types using these constructs for these purposes can sometimes feel like a bit of a kludge. For those particular situations @jaredsinclair proposes an alternative idea – an idea that I kinda like. Time for a proposal?
You probably know that building internationalization into your project from the start can save you significant time and effort downstream but like many things in life, we don’t always do what’s good for us. @olegdreyman provides a nice half-way house that doesn’t take much effort and might save you some future pain.
React Native’s promise of writing code once and then shipping on both iOS and Android can be an aluring proposition. But does it actually deliver on it’s promise? @scalo shares his own experiences of writing apps using React Native.
I’ve never really been comfortable with Xcode’s default setup of having the test code separate from the code that is being tested. Having the tests so far away from the code their testing just feels a little wrong. It appears @mbrandonw feels the same, and and in this article, he puts forward a good case for co-locating them. Maybe it’s something to try for your next project.
If you’re wanting your app to stay responsive you’re inevitably going to be writing asynchronous code but then you then have the problem of how to test it. XCTest now has some great new features for testing asynchronous functions and in this article @mokagio walks through an example of how to use them.
Sound can be an undervalued aspect of app design. SwiftySound makes life simple by providing an easy way to play sounds in a single line of Swift code.
Want to take a peek at the incoming and outgoing traffic for your application? Sniffer is a network activity logger for Swift that makes it simple to look at the requests / responses for your app and also supports custom deserializers for digging into any data that may have been returned.
Implementing custom interactive view controller transitions can be a bit of a chore as it involves defining delegates, switching between different animation phases and more. Transitions from @touchwonders makes things significantly easier though – define the animation, define the interaction and Transition does the rest!
Sequence and collections are a common part of programming with Swift but do you know how they actually work? In this talk @khanlou digs into the detail looking at the different protocols that come together to make sequences and collections actually work.
So now that you have a much better understanding of how sequences and collections work in the standard library let’s put that new-found knowledge to good use. In this talk, @lorentey looks at some different techniques for optimising collections in Swift and throughout the talk takes a look at the different performance tradeoffs that are required.