Design to Code
6 months ago I started to code in Swift.
I’m going to tell you why I haven’t felt this inadequate and this fulfilled in a long time.
Should designers code?
Who’s ready for another volley in that round of think-piece tennis?
Yeah, good times, I know. But take these reflections from someone who just did it, and maybe it’ll help you decide for yourselves. And then I’ll get to the how I went about learning.
Coding is a tool, and tools are fun
I’ve been designing for about a decade now, and sometimes that involved front end dev work too. While this was definitely coding, at the time the scope was so different I wouldn’t say it was the same as native, mobile app development. My web dev experience did let me create things that were final, but over time I did less and less as my work didn’t demand it.
Recently prototyping tools in the industry have evolved substantially, and I’ve followed suit and dug into them, especially with Quartz Composer. It was a really liberating experience to achieve the kind of visceral interaction that a tool like QC affords. It reminded me of what I missed with front end dev, but was also something totally new. Sure, you could go overboard, but with some restraint it was fascinating.
I found that like many good tools, it helped inspire me towards new solutions I just couldn’t perceive before, which is a brilliant feeling. More tools in the toolbox, as they say.
Alternatively, when you’re holding a hammer, everything looks like a nail. Which is a fun thing to keep in mind when looking at the current bounciness of Dribbble posts.
Seriously, not everything needs to be made of rubber, people!
Despite that warning, I take the stance that more knowledge is always better in the long run. There might be negative short term influences, but those influences are yours to manage, and to eventually form into a positive. The goal is always a more informed, experienced, and empathetic version of you.
So, should designers code?
But… I think it’s a matter of when and what.
You’ll open your mind to other things if you do. Whether it’s a good time for you at in your current position is something else entirely. There may be other things to learn that you prioritize first and value higher. But coding should be on that list of things. I have no doubt about it.
What you learn gives you choice in level of commitment and depth.
HTML/CSS/JS is super accessible nowadays and has tremendous utility almost right off the bat. It also opens you up to using Framer.js which looks like a fantastic prototyping tool.
Swift is the most accessible native code I’ve seen (albeit with my limited experience) and it opens the door to iOS dev and provides almost overwhelming potential for prototyping. Plus it carries the possibility you can put something on the store yourself, a scary and stressful prospect I can now relate first hand. No more interpretation, you are getting your hands dirty.
Of course you don’t have to produce anything for production, because even some knowledge lets you manipulate data and interactions, and that can provide valuable insights for your design work. The ability to do that yourself is incredibly satisfying.
A little knowledge goes a long way, so don’t deprive yourself of the insight that coding can provide. The “should designers code” discussion is usually framed in a polarizing manner.
It’s like someone suggesting that “you should exercise”, and you reject it because you’d rather not train to be in the Olympics. There are varying levels here with varying benefits.
Like with exercise, a little can go a long way.
Why I’m coding
What do you want to create?
I could have spent the last 6 months shoring up weak spots in my design background, but I suspected coding would be more important for my long term goals - it would make me feel more complete.
I worked in games before, and I still want to in the future, and I believe that coding ability is a huge boon for that on an indie level. But games are large and scary, so I decided to take it one step at a time. Turns out my first step was way larger than I thought, but I’ll get to that later.
So here I am, a week after my first developer release on the App Store. One big milestone checked off my list. And I feel like I’ve learned more in the past 6 months than I did in over the past year before that.
Next week: Swift for beginners
I’ll share about choosing Swift, and project, and the pain of being a beginner.
Plugging the app
The app I created is called Sky Graph, and it’s available now on iOS. I think it’s a great weather experience for data lovers, and I hope you take a look.