It's the night before WWDC and so while this post is pretty late, its technically not too late to be appropriate. But not having much time to type this up means that I'm not able to go into as much detail as I normally do for these wishes and they are all going into a single post.
Some interesting context going into WWDC this year: . . .
A Fun Experiment With Shared Mutable State and Lock-Free "Locking"
I was talking to a co-worker today about different ways to minimize the risks around having a single shared instance in any app that holds global values which can be read and written to from anywhere in the code.
The potential risks around global mutable state are discussed in lots of places, but some of the key problems are:
Race . . .
Last year, I wrote a post about the problems with code coverage as a metric, and left the topic as “to be continued”, saying that I had some ideas for a better approach. Well, it's taken long enough, but here are the first pieces in that objective to evolve a better way to create and measure well-tested software.
What Makes Good Unit . . .
While I would guess that fewer iOS developers are concerned with Dependency Injection than say, Java developers, the concept has gained more steam on the platform as the practice of unit and integration testing has increased.
In short, Dependency Injection (or DI) consists of:
Making your structs or classes depend on abstract types or . . .
If you've been on a team developing iOS apps before, you've probably been involved in a discussion or outright debate about how to handle styling, or the visual appearance of the app. Here, roughly, are the three sides of that debate:
1. We should style everything directly in storyboards / Interface Builder
It's easy to do, saves . . .
Let me start off by saying this: it's 2016, we live in a time of software and service consolidations and unprecedented contextual awareness, and yet if I want to keep up with a friend or family member, I'm still having to do it in a dozen places: text messages, Slack, Twitter, e-mail (multiple accounts), Facebook, Instagram, LinkedIn, . . .
The Current State of Size Classes
Apple introduced size classes in iOS 8, which provide a broad description of horizontal and vertical screen space. These broad descriptions currently only include "Regular" or "Compact" options. The great thing about size classes is that they allow developers to create different versions . . .