🎨 The Art of Designing Code

updated 10 months ago; latest suggestion 10 months ago

📱 Code is a user interface.

The user of this interface is not an app user but another developer – maybe a team mate or our future self.

User interfaces need to be intuitive and easy to grasp so that the user can interact with them efficiently and without too much thinking. Code is no different. In that sense, developers are designers themselves – and as such, they should be able to think like designers.

Many basic UX design principles can be applied to code as well and empower developers to write code that’s easier to read, maintain and extend.

💡 The goal of my talk

... is to highlight the similarities between “designing user interfaces” and “designing code”. Both are a means of communication: A user interface needs to communicate the app’s functionality to the user, code needs to communicate what it does to other developers. As a consequence, code also needs to be well designed and developers can learn a lot from designers in that respect.

In the first part of my talk I would like to present some basic design principles like proximity, repetition, balance and alignment and explain how they can be applied to coding. I will make use of simple examples to draw comparisons between user interfaces and code.

In the second part of my talk I would like to introduce some tricks that radio and TV producers use to “design” their user interface (which is their language) in a way that’s easy to understand. Having worked as a radio reporter myself for several years, I realized that many of these tricks can be applied to both code and UX design as well. Rules like “use short sentences”, “avoid encapsulated sentences”, “tell one story only” and “kill your darlings” can be easily translated to the realm of app development.

With my talk would like to encourage a dialogue between developers and designers on the topic of creating things that are intuitive and fun to use. While I will show many code examples in Swift, the talk will be simple to follow, for developers of other programming languages as well.

Suggestions

  • C791b75299e951ffde9b9686cf695e627dad5695?size=100x100 c791b75299e951ffde9b9686cf695e627dad5695 suggests 10 months ago

    Interesting to see a comparison between code not only to UX, but to job of producers as well :D Love it!

  • F88f293860fd61b5bfb30b23714bbfc693d49309?size=100x100 f88f293860fd61b5bfb30b23714bbfc693d49309 suggests 10 months ago

    Agreed, not enough people look at programming in this way. And it's crucial!

  • 2fd5585092316e178382abb98bc00bb40ee9162e?size=100x100 2fd5585092316e178382abb98bc00bb40ee9162e suggests 10 months ago

    This proposal is great. This is an under appreciated aspect of our work. I'd love to hear your talk.