I’m going to talk about testing over the next few posts. If you’ve talked to me at any length over the last several years, you know I’ve been …| robnapier.net
Every part of this post is over-simplified. History is messy and difficult to sum up. The original version was twice as long and still over- …| robnapier.net
Let’s talk about CodingKey. It’s a protocol. It is not a magic enum thing. Coding keys do not have to be enums. There is some special compiler magic …| robnapier.net
Sometimes there’s code so commonplace that we forget how strange it actually is. I mean, Swift is a strongly typed language right? Types types types …| robnapier.net
So, back to our APIClient. When last I left off, I had the following client code: final class APIClient { static let shared = APIClient() let baseURL …| robnapier.net
So far in this series, I’ve created a simple APIClient that can fetch any Fetchable type and decode it from a specific API, and then extracted a …| robnapier.net
This was supposed to be a quick sidebar, but it turned into a full-length article, so I’m calling it part 3. The original part 3, continuing the …| robnapier.net
In the last section, I ended my little network stack at this point: // Something that can be fetched from the API protocol Fetchable: Decodable { …| robnapier.net
Last time, I mentioned something in passing: I need a new protocol. protocol Fetchable: Decodable { static var apiBase: String { get } } I need a …| robnapier.net
In the beginning, Crusty In 2015, at WWDC, Dave Abrahams gave what I believe is still the greatest Swift talk ever given, and certainly the most …| robnapier.net
I’m now a Conditional Breakpoint. It’s been a dream of mine for long time, and it finally happened at CocoaConf Chicago. There are folks who have …| robnapier.net
I’ve been talking with folks on a Slack about refactoring today, and I thought I’d put some of my thoughts here. Maybe a little less polished than I’ …| robnapier.net
Pedro Piñera makes some important points in his article In a world…. There are a number of things in there, and you should go read it, but I want to …| robnapier.net
I’m on my way back from try! Swift, which was fantastic. Of course it had those obvious things I’d hope for. Interesting talks, friendly people. …| robnapier.net
As a speaker, writer, and member of our community, Daniel Steinberg is my inspiration. That’s not a secret. If you and I have spent much time talking …| robnapier.net
Or… “How I learned to stop worrying, and love Foundation.” Forgive me, NSData. I was running around with that flashy [UInt8], acting like you didn’t …| robnapier.net
When last we talked about type erasure, I described an easy way to build type erasures using closures. And I mentioned: (While this works exactly …| robnapier.net
After months of writing and rewriting, I am happy to finally announce RNCryptor 4 beta 1 in Swift. RNCryptor 4 is a complete rewrite of RNCryptor for …| robnapier.net
Once upon a time, when Swift was young, there were a couple of types called SequenceOf and GeneratorOf, and they could type erase stuff. “Type erase …| robnapier.net
Forgive a slight divergence. I’ll bring it back to software development before the end. A friend of mine is an arborist. He takes care of a large …| robnapier.net