How can a designer with no programming knowledge develop an app in 4 months?

How can a designer with no programming knowledge develop an app in 4 months?

Transcend dry goods:

The author of this article is a designer who knows nothing about programming. However, in just four months, he developed an extremely popular app. Do you want to know how he did it? What personal experiences does he share with us?

I am a designer, and it only took me 4 months to go from knowing nothing about programming to launching an app.

This is a story about GAget, a small plug-in for implementing Google data analysis in OS X. Well, I'll be frank with you. This title is a bit "clickbait" and may mislead you. In fact, I just started learning Swift 4 months ago, and before that I knew a little bit about programming. But I have never developed any original apps on any platform. If you want to know how I did all this, I can tell you the reasons.

Back in time

I have loved computers since I was a kid. My dad bought me my first computer when I was 8 years old, and I was fascinated the moment I saw it. It was still running DOS, with a fuzzy CRT screen, and although the quality was not very good, it could do some of the tasks you wanted to do! That was enough to dazzle me at the time! Of course, like many other kids, the most I did on it was playing games, but it was also through games that I gradually fell in love with the entire computing system. I started to learn how desktop computers work and how to make a program run. Many of my friends came to me for help with computer problems.

Soon, the time jumped to 1999. At that time, it was a 56k dial-up modem and ADSL broadband. When the Internet was gradually emerging from Hungary, I was still obsessed with computers. I stayed in the computer room of the school for most of the afternoon and browsed the websites called "Geocities" at that time. (Note: The name of a large website on the Internet, which consists of virtual cities, provides users with a variety of services and consultations, and users can create and display web pages of different themes.) It was really a wonderful website in my eyes at that time, and I wanted to be a part of building such a website.

So I started learning HTML and creating my first website. It was 1999, the year of the millennium, and I named it Zolee Site Millenium. It ran on my school's server and was only accessible via a Frankensteinian address like www.kkt.piar.school.gov.hu/~hosszu2. Despite all the limitations, I knew I was truly online, that I had entered a new world called the Internet and had conquered a small corner of it, and that was a great feeling.

For many years afterwards, I still loved games. I played Counter-Strike for many years, and when Counter-Strike became the most popular game, I built a website for my team. But I didn't continue to delve deeper into website development. At that time, I was studying user experience and interface design, so the trend of website development passed me by.

#p#

origin

I am a full-time human-computer interaction designer at IKEA in Hungary. I have no idea about the most popular frameworks, such as Node, Angular and Bootstrap. However, I have never given up learning HTML, CSS and Java, and I work on some small personal projects in my spare time.

In 2011, I redesigned my website and got featured on DeviantArt. I was excited about the number of visitors that kept coming to my website, but I was frustrated. It wasn't the number of visitors, but I had no way to track them. I had two choices: I could either continue to use Google Analytics or I needed a simple app to do it for me. It should be a plug-in tool in the OS X dashboard. I started looking for it with this idea.

But later I found that the plug-ins and gadgets on the market were either too ugly or too difficult to use, and some even couldn't provide me with sufficient data. So as a designer, I naturally had an idea in my mind, should I come up with a better solution? From this, I came up with some design ideas and posted them on Dribble.

Dozens of likes followed, which encouraged me to continue to explore this topic. Then I found that the existing tools were essentially HTML + Java apps, so I started to think seriously and really started to develop. After all, these were two languages ​​I was very familiar with. Ten days later, a working prototype product came out! I named it GAget (pronounced very similar to gadget), which looked a bit silly, but it really left a very deep impression on people.

Two weeks later, the plugin was released, in August 2011.

The feedback was amazing. MacStories, SwissMiss and many lesser-known blogs recommended GAget, and my name even appeared on a PC World magazine published in Hungary!

What to do next?

Today, the plugin has been downloaded 84,000 times and is used by thousands of people every week. I also developed an iPhone version with a friend of mine. But the good times didn't last long. When Apple released Yosemite and discontinued Dashcode development, the future of GAget began to look a little bleak.

However, as the old saying goes: "When God closes a door for you, he will open another door for you." Apple opened the notification center for programmers, allowing programmers to display gadgets there! Yes! Maybe my little plug-in can continue to shine!

I started reading some of Apple's documentation on plugins. But they were all native Objective-C code! I didn't want to do that! I had never tried it before. So I decided that GAget needed to be transformed into a native plugin!

The biggest problem at the moment is that I don't know where to start.

#p#

Contact Swift

Then I suddenly remembered that Apple released a new programming language, Swift, at the same time as Yosemite. This was new to everyone. Many big names in the technology industry were writing articles about it, discussing how bad it was, or that you should learn Objective-C before you touch Swift. This excitement attracted my attention, so I downloaded it and started reading its documentation.

The feeling afterwards was like a spring breeze! All the codes seemed familiar, and some of them were like slightly more complicated Java. I was so enthusiastic that I began to follow the tutorials and started my own programming journey.

My main goal was to develop a plug-in in OS X, but most tutorials focused on the Swift language and iPhone apps, so I had to keep searching for useful information. I also had a lot of questions that I couldn’t solve and needed explanations for, such as:

How do a plug-in tool and a built-in app communicate with each other? (Core Data and App Groups)

Can I use hover interactions? (No)

How can I turn on only one row of widgets when I turn off the others? (auto layout and some manual height adjustments)

Apple's documentation on plugin tools led me to dig into the source code on GitHub and Stack Overflow, and I spent countless hours trying to find the answers. Along the way, I collected and linked useful links. I learned bit by bit, and finally, the hard work paid off, and this app was finally developed!

Four months ago, I had no idea what "MVC", "multi-threaded process", "App target", "view control", "core data" were. But thanks to various online tutorials, Stack Overflow, and countless sleepless nights, I have mastered some basics of Swift and OS X development in four months.

Besides learning a new programming language, other things I learned

I know that it is very cool to create a personal project on your own. You don't need to go through various approval procedures, you don't need to look at your boss's face, you can add or delete functions according to your own preferences, and you also have your own independent workspace. But in addition to these, I have also gained the following truths from my own project:

Time bottom line

I found that giving myself a deadline can greatly motivate me to work harder. Every year at the end of the year, my wife and I sit down at the table and write a wish list that is filled with all the wishes we will achieve in the next year. This time I wrote down: By the end of January, I will release a new version of GAget. This is my deadline.

Even though I didn’t actually release it on time, but delayed it for a whole month (due to other projects and Apple’s review process), I still think setting a deadline can give people pressure and motivation to work. It works!

#p#

Cyclic learning method

I also found that during the learning phase you will go through three stages: excitement, hard work, and final solution. These three factors form a cycle and influence each other.

Excitement stage. You often start from the excitement stage. You have a good idea and start to learn something new. Everything you touch looks so beautiful and imaginative, and you can't wait to know what to do next. You are full of motivation and keep testing what you know. However, you will eventually be limited by the bottleneck of knowledge.

Suffering stage: You begin to encounter your first problem, and excitement and ambition plummet. You have no idea what can help you, and you don’t know what to search for. Despair is the main feeling now.

Solution Phase: Finally, you find the answer to the problem that was holding you back. You move faster than before, and the excitement and ambition you lost are back! You return to the first phase, and the cycle repeats.

So the next time you’re about to set out, remember that the second phase is often the longest and most arduous, but the solution is waiting for you not far away, and finding it is the most fun part of the whole process.

<<:  The mystery behind Shenzhen's rapid rise in the Internet

>>:  Kill all processes of a certain user with 'slay'

Recommend

Content Marketing Trends in 2017 (Part 2)

Preface: The 2017 Content Marketing Trends (Part ...

The national emblem of this country contains a drink that workers must have

The national emblem of the Federative Republic of...

iOS 18 update push, you must know this new change!

Today, Apple pushed the iOS 18 Beta 5 beta update...

Bidding promotion: How to optimize core words and effectively manage keywords?

We have compiled a list of common bidding problem...

Youshe-15 practical courses to quickly master AI from scratch

Course Catalog├──1. Interface Settings for Ai Expe...

The price of renting an overseas server without filing

In recent years, with the globalization trend of ...

How to Write an Integrated Marketing Communications Plan (Version 4.0)

1. Those who do not consider the overall situatio...

Information flow delivery accounts, advertising positions and advantages

With the continuous development of the Internet, ...

Not the Onion, but bumblebees are really becoming a fish in California!

Starting from May 31 this year, four species of b...