DEV Community

Sara Inés Calderón
Sara Inés Calderón

Posted on

When Classism Is In Software, Setting up iOS vs. Android with React Native

Technology is going to reflect the values of the people who built it. That's something I ran into recently when I was trying, like hell I might add, to get the Android simulator set up for React Native.
As a journalist-turned-developer one of the things that always blows my mind about technology is how dogmatic the people who grew up in this world can be. Folks are practically religious about their languages or preferences, which is strange to me, given that I come to this world from journalism and media, where you can use different tools to accomplish the same goals on any given day.
This attitude infects the technology itself over time, and trying to set up the Android simulator for the first time was exemplary of this.
Like most developers I know I have Mac laptop. So it was second nature to me to use the XCode simulator when I began developing in React Native. Once I got to the point where I needed to see how the code looked on an Android device, I ran into a series of problems that highlight the vast disconnect between people who make technology, and those who use it.
About 82% of people use Android, only about 18% use iOS, yet setting up an Android simulator was a nightmare. Think about that: trying to make technology for the vast majority of users has more barriers than making technology for a small minority of users.
In an industry obsessed with user experience, this makes no sense — unless you think about who's making the technology (people with higher incomes who can afford Apple products), and their experience using it, versus those for whom they are making it (people who make less money and buy Android products).
Seeing a React Native project in the simulator is as simple as a CLI command. Seeing an Android project in the simulator involves installing Android Studio with special instructions, making sure you have a bunch of files in your Android folder and on your machine, and ultimately giving up and installing Genymotion.
Shoutout to Chris Geirman, I couldn't have done it without you.
So what's the point? The point is that we have to think outside of our experiences, and at least try to think into the experiences of our users when we build technology. Otherwise your device won't work on people with dark skin or tattoos, you'll build health app that ignore women completely, or you'll tag people with dark skin as gorillas.
This stuff matters because we are imperfect beings, so we build imperfect things, if you don't stop and think about it, you're going to mess it up.

Top comments (5)

Collapse
 
ben profile image
Ben Halpern

I feel like network latency is a big issue that gets kind of ignored because people build for themselves and other people in their environments. It's a very difficult technical problem, so you can't say it's purely out of ignorance, but when people start projects, they rarely think about how much slower their apps are going to be for people outside of their geographical vicinity (like the USA for me).

Collapse
 
sarachicad profile image
Sara Inés Calderón

that's another big one! i saw some great talks on that though at react conf this year.

Collapse
 
ben profile image
Ben Halpern

These sorts of things have very highly crossover between the right thing to do and the right business move. Often the most frothy markets are the ones ignored by mainstream tech.

Collapse
 
nostriluu profile image
nostriluu

I was expecting the opposite of this article. Outside your bubble of "most developers," try running the iPhone emulator on anything but Apple gear, then you'll learn about class wars.

Collapse
 
dmakovec profile image
Dan Makovec

Agreed. Even as a long time Mac based developer, I find XCode and its ecosystem a horrible experience, and Android to be far simpler. I still haven't found a decent React Native template that just builds and deploys to to an iOS device as easily as Android. For that matter, I've never found ANY project, Cordova or otherwise, that lets me plug in my iPad and quickly run a build on it without screwing with provisioning profiles and the like. I can however plug in just about any Android device and run my whipped up prototype in seconds