What I learned as a designer by building an app

Its been well over a year now that I released a small app called Collect after months of doing something Ive never really done before: coding and actually developing software.That can be scary territory for a designerit definitely was for me. And although the app is no longer in the App store (I decided to learn other skills instead of maintaining it), I thought it would be beneficial to reflect on some of the lessons I learned while building it.The background storyIt was Spring 2018. I was working in a mobile development agency Futured and I was obsessed with mobile apps. So much so that I used to madly screenshot every app, interaction, screen or design detail that caught my eye. I had (and actually still do) hundreds of screenshots on my phone, but the problem was that I rarely came back to see them.When I dug into it, I found out it was because I had no reasonable way of searching in them. They were just sitting there as images without any metadata and if there was any dust in iOS, there wouldve been plenty of it on them. I wanted to be able to go and see all screenshots with a map for example and I couldnt easily do that.Out of this frustration an idea was born: an app that will allow me to search my screenshot collection. I decided I would build it myself to learn something new and alsolets be honestfor the good feeling of releasing my own app in the App store.Now, Im no unicorn designer who can code (beyond basic HTML and CSS anyway), so this posed as quite a challenge for me. I rolled up my sleeves, downloaded Xcode and I dove right in.After about two months of learning and trying to build something, I had just a skeleton of the app, nothing actually working and that was quite frustrating. The learning curve of iOS development was very steep for me. I called it quits for the time being.Earliest progress from the first days of building the app.Lesson 1: Dont give up. Finish stuff.I froze the project for several months before coming back to it in September 2018. I realized this was something I really wanted to do, but I previously gave up because it was quite hard. I continued with the help of various tutorials, some advice from my colleagues and the online community. Eventually, I released the app.Let me back up a bit and tell you how I approached building the app. In the beginning, I defined all the use cases for it as well as the flow of the whole app. I didnt necessarily design mockups of the whole app, just one or two key screens and even then I had to make lots of trade-offs on the design front. I had to, I was limited by my (lack of) skill.When it came to the development itself, I divided it by all the use cases. First, I would build a screen for all the screenshots to live and to browse them. Then would come a way to import them. Then a screen for searching for them. And so on.I focused on one use case at a time and worked on it. It was like a succession of problems and I was slowly solving them one by one. Thats when I started to enjoy the process.Lesson learned: When youre passionate about something, dont give up just because its hard. There are a million ways you can approach a problem and get it done. When you put your head down and really work on a problem, you might even discover that its easier than you thought.Lesson 2: Coding can be fun and very rewardingOnce I learned just enough to understand whats going on in the code and how I need to implement certain things, coding became really fun. Sometimes, I would get stuck on a problem or a bug, but it would remain really fun to work on it.When I finished a screen, fixed a bug, or overcame a problem in implementing something, those were the moments of feeling really rewarded. Paradoxically, I felt more achievement throughout the project than after releasing the app.However, it took a considerable amount of time and effort to get to the place where I was able to actually solve those problems and implement those solutions. Perhaps there was a better way to approach it than just blindly diving into it.I spent a lot of time coding in cafs.Lesson 3: Learning some theory first helpsWhen I started working on this, I pretty much just opened Xcode and tried to figure out how to make some progress by trial and error. This is what probably led to so much of my frustration and initially quitting. On my second try, I started with learning the basics of Swift in advance so that I would be able to grasp whats going on in various tutorials and Stack Overflow answers. This definitely helped me to work more efficiently and prevented much of the frustration.But I didnt get stuck on learning theory only, either. Instead, I was always learning just enough knowledge that would allow me to implement whatever I needed at the moment. For example, when I was working on a gallery of screenshots, I read a couple of tutorials on collection views and tried to implement it in my app as I went along.I very much enjoyed this incremental way of working, because I could see progress clearly and quickly.Lesson 4: Short feedback loops are very useful and satisfyingOne great aspect of codingfrom my point of viewis that the feedback loops can be very short. You can build a really small piece of the whole thing, run it and see how it works. You can iterate very quickly thanks to that. Its also very satisfying. You see some results of your work long before the whole project is finished.And being able to run the work-in-progress app on a device gave me a final yet perhaps the biggest lesson of this whole endeavor.Lesson 5: Running product gives you more insights than static mockups ever willOnce the app was somewhat functionalmeaning it worked for a couple of use casesI spent a lot of time playing around with it. This allowed me to see things I simply wouldnt with static mockups or even a prototype.I made several design decisions based solely on the feeling of the live app. There were possible interactions I didnt even consider at the beginning. There were tiny details I was blind to when I sketched the initial mockups. Coding allowed me to create a better design.This is a point that is also nicely explored in Matthew Strms article Designing with code.Not sure why I dont have a proper screenshot of the moment I released the app, but only this crappy photo.ConclusionI am very glad I persisted and finished this project because it taught me so much. It changed the way I look at coding. I see it now as more fun and rewarding and less scary and ambiguous than before. I also see it as very valuable to designers. I now firmly believe that coding can make you a better designer.Even though I havent continued with learning Swift, I have now taken up learning Javascript as a more practical option for my current context. Im very excited about what Ill be able to build with it one day and how it will change the way I think and work. That wouldnt have been my attitude two years ago and it definitely wouldnt have been that if I hadnt built my own app.

projít na článek

Lessons from 6 years of designing in agencies

I spent 6 years of my design career in agencies. The first four I designed mostly websites. The last two I focused on mobile apps. This is the time that shaped me as a designer. I have learned a lot about the agency life.In this post, Ill try to sum up a

projít na článek

What I learned from building Untools

Its been over a year since I started building Untools.co and almost 10 months since the launch.Since then, over 182,000 people visited the website, over 4,500 people are subscribed to the newsletter and I made over $3,000 from selling extra products aroun

projít na článek

We moved to MAYHOUSE

We are growing and have been looking for a new and suitable office for quite some time. We are finally happy to announce that we moved to new premises in Prague - from April 2022 you can find as at the MAYHOUSE building in Prague 4. MAYHOUSE building 5.

projít na článek

AMO – Publikace Building Ukraine Back Better: The Role of Czechia and the EU”

Nedílnou součástí obnovy Ukrajiny má být reformní proces přibližující Ukrajinu ke členství v EU a zelený přechod za účelem modernizace země. Autoři publikace Building Ukraine Back Better: The Role of Czechia and the EU diskutují o perspektivách Ukrajiny,

projít na článek

Becoming a maker

I previously wrote that Im learning to code, because I believe the future of design tools is based on code. Well, I didnt tell you the whole truth. Theres also a second powerful reason why I embarked on this journey. Its the idea of being a maker.I believ

projít na článek