Entries by Jay Lyerly

Interface Builder Needs a Swift Upgrade

Swift materialized four years ago at WWDC in June 2014. At the outset, the language was intriguing, but the tooling was…let’s say minimal. Xcode has steadily improved since then — we can even refactor now! But one big chunk of the toolset hasn’t been Swiftified. Interface Builder (IB) stands stoic and steadfast in the face of change.

Look, but Don’t Touch — FaceID vs TouchID

At Oak City Labs, we’re working more and more with computer vision (CV) and image analysis, so it’s exciting to see how others are using CV to solve problems. Face ID from Apple has garnered a ton of recognition in the past few months as they attempt to use CV to solve the issue of mobile authentication. FaceID is a technology that Apple

API Mocking in Swift

The move from Objective-C to Swift has allowed us to write cleaner and safer code, but the price we pay is the loss of the fast and loose, über permissive Objective-C runtime environment. Fast and loose always caused more problems than it solved, so I’m happy to see it go. A few of our existing solutions have gone with it, but with a bit of ingenuity, we can move forward with better

Taking the Fastlane from Xcode Server to TeamCity?

At Oak City Labs, we love our continuous integration (CI). In our world, CI means that we have a trusty assistant sitting in the shadows that watches for new additions to our code repository.  Any updates get compiled, tested, packaged and shipped off for user consumption. If something goes wrong, the team

Computer Vision for Medical Devices via Core Image

At Oak City Labs, we enjoy solving all kinds of problems. Our project span subject areas from IoT, to mining data from social media to integrating video capture hardware. One of my favorite projects we’ve worked on recently involves computer vision and real-time video analysis of data from a medical device.

React Native? Not so fast.

At Oak City Labs, potential clients often ask if we write apps using React Native. Why not? Isn’t that the fastest way to market — write one app for both iOS and Android? That’s the crux of React Native’s pitch. Don’t spend time writing two apps when you can write a single React Native app instead. As CTO of a mobile dev shop, I should be able to answer that

Pragmatic Dependency Injection in Swift – Part Two

Last time on Pragmatic Dependency Injection in Swift, we discussed the horror of global variables and the duplicity of singletons, globals in disguise. Dependency Injection (DI) can help us avoid these pitfalls, but how do we implement DI in Swift without incurring a prohibitive

Pragmatic Dependency Injection in Swift – Part One

At Oak City Labs, we’re always trying to find ways to improve our code’s stability, testability and maintainability. Today we look at the problem of singletons, global state and how to avoid these landmines in the context of Swift. Let’s talk about global variables. Most everyone can agree

WWDC: The Morning After

Well, that was exciting. WWDC 2017 wound down last week. It’s been a firehose of information, mostly delightful, a little disappointing and largely overwhelming. I wasn’t a lottery winner this year, so I’m observing from the other coast and I’ve still got about a bajillion hours of video queued up to watch. It’s going to be a fun summer! But the first session I was sure