Test-Driven iOS: Feature Tests, Part 1–Introduction

In past articles about test-driven iOS, I have talked about how to resolve some challenges of unit testing an iOS app. This time I’ll talk about higher level tests that validate how the view looks and behaves when users interact with it (UI tests) as well as the app’s API requests and response handling (integration…

Test-Driven iOS: Dependency Injection

In the last Test-Driven iOS post, we talked about setting up our code and test files to allow unit testing on storyboarded apps. I mentioned  that an extension of that setup could be used to take control of dependency injection inside of our apps. We’ll talk about that today.

Test-Driven iOS: Testing an App with Storyboard UI

In this post a while back, I mentioned two options for setting up unit test-friendly dependency injection in an iOS app: dependency injection libraries and constructor injection with code-defined views. In that piece, I talked about using a code-only UI to achieve my testing goals. Since then, I have learned a few more strategies that allow…

Machine Learning: Wine Recommender

This weekend I built an application that allows users to rate wines. Once a user has rated some wines, the application uses k-means analysis to recommend some wines that the user hasn’t rated, but might enjoy.

Diagramming Data, Part 3: Preventing and Curing Data Deficiencies

In part 1 of this series, we discussed the relationship between data and code complexity. In part 2, we talked about some of the deficiencies datasets might have and how they happen. Now we’ll talk about some starting points for building healthy datasets—and nursing deficient datasets to health as much as possible. It’s important to note that…

Diversity, Inclusion, and Money.

Does hiring women or people of color affect a tech company’s bottom line? According to some data, yes. But so what? Numbers like these  are uplifting, but they don’t convince companies to change. So why not? Let’s talk about two reasons: We don’t definitively know why diverse leadership improves a company’s financial performance. So we can’t draw a…

Diagramming Data, Part 2: Reversible and Irreversible Data Issues

In Part 1 of Diagramming Data, I talked about the relationship between code simplicity and the underlying data. I touched on some of the issues that organizations face with their data. Now, we’ll categorize those issues according to how easily they can be fixed. We can take a sampling of data-related issues and place them…

Diagramming Data, Part 1: Simple Code Depends on Nice Data

I came across an article on Firstround called ‘Forget Tech Debt…Here’s How to Build Technical Wealth.’ Andrea Goulet introduces us to some of the practices her consultancy uses to dive headfirst into legacy codebases, improve their design, and make them more maintainable.

Bias doesn’t start with skin color.

Look around your office. If you’re in tech, I suspect I can predict what you see: lots of white faces. We’ve known tech to be a sea of white faces for a long time. Big companies respond by sponsoring code education programs and hiring (usually white) Directors of Diversity. But the numbers aren’t changing: tech…

Android How-To: Card Flip Animation in API 23

Hello! Lots of android devs are using this tutorial from the Google documentation to try to achieve a card flip animation, and they’re getting errors, including this one: 05-22 11:32:34.706: E/AndroidRuntime(6801): java.lang.RuntimeException: Unknown animation name: objectAnimator There does not appear to be a definitive answer that I can find as to how to get this…