Software Dev

“Sketching” out an app prototype

I’ve learned a lot making apps for big companies, mostly about process: how a good continuous integration process works, how code reviews can be productive (or not productive), how to break a big app into smaller components so lots of people work on related things at the same time.

Still, it’s helpful to do something fresh and new 100% on your own from time to time. Doing something new all your own, you get to try any architecture you want, go all in on the latest asynchronous programming techniques, fully embrace the amazing new(ish) declarative/reactive view layer, and even try out a new CI framework to two.

But the most fun part of all is developing the idea of your app. What does your app do? How exactly does it work from a user perspective? And what do the screens look like in detail?

👉This time around, I’m prototyping my new app idea on my phone so that I can get a feel for how it works in my hands before writing all that code. ^

I tried out a few prototyping tools. After looking at some basic options and some pretty involved options (arguably too involved), I landed on a pretty “sketchy” Mac app that handles full-on detailed UI design and kind of does mobile prototypes through its “mirroring” iOS app. Perfect. 👌

👉 Sketch | mirroring app

I will say that Figma looks pretty promising as well. What nudged me over to Sketch was Apple’s Sketch-compatible design resources. There are some third-party iOS design resources for Figma, but I’d rather go with Apple’s official offering. Sorry, Figma. 🤷🏻‍♂️

So my new design process is this, now that I’ve finally learned Sketch:

Rough sketch on paper ➡ realistic visual design in Sketch ➡ prototype on a phone ➡ code

My instinct is to talk about the app itself while it’s in progress, but sorry… that’s top secret for now. 🕵️‍♀️

creativity · Software Dev

The Prototype Mindset

We developers spend so much time focusing on the details of our work that we sometimes forget about the big picture. The presentation below from try! Swift Tokyo has some really helpful perspective. 🤯

Think about building the right thing before building it right.

Why are you making software? Know your motivations. It affects how you do your job.

Who do you write code for? Think about how you relate to your company and the end user.

What happens when your tech stack changes? Be resilient in your career. Try new things while also shipping apps.

Be less precious about code.

Realistically, how long will this code last? How robust is robust enough? Be pragmatic. Almost all the code I’ve written in the last few years is gone by now, either retired or completely rewritten.

Don’t try to be perfect. Don’t hold back out out fear.

Real artists ship.

Steve Jobs

How often do you test? Unit tests are a means to an end. Passing unit tests alone does not mean it’s a good app.

Via iOS Dev Weekly.