Developing an iOS App in 4 days

The story behind Time Tap

Matt Hayward
iOS Development

--

App development is hard, it takes planning and skill to create something from scratch that you are proud of, but it can be done in a very short amount of time with the right tools and frame of mind.

The Story behind Time Tap

The story behind my first app Time Tap started on a Wednesday morning at school. A friend and I had no classes for a large majority of the day and we were thinking of something to do. As we are highschool students in the twenty first century, one of the first things we thought of was to develop an app. Having been working on another app for iOS at the time and having experience in other programming languages, I instantly thought that we had something to do for the day. We would make an app.

At this stage, we had no idea at all on what our app would do. We first started brainstorming ideas and looking at what was popular on the app store at the time. Ideas instantly started popping into our heads and before we knew it we had the idea for Time Tap. The idea wasn’t something we had planned out on paper or done market research on, it was something we had brainstormed in our heads in little under fifteen minutes. We didn’t think about scoring or leaderboards or anything else, we just thought “let’s make a game where you have to tap squares for as long as possible”.

That single sentence was our idea, we took that and I jumped straight into xCode and just started typing. We hadn’t done any planning or written a single thing down on a page, but we had an idea, a computer and a few hours to kill. I believe that sometimes the best way to test your idea is to just try it and not to fuss over the little details. You can’t plan everything little thing, because in the end you won’t know if something works unless you try it. As we started to develop the app and the time left in the school day was decreasing, we were forced to make quick decisions about features, because we wanted to have something working by the end of the day. This forced us to make the app simple and not overthink things.

Showing off our prototype

By the end of the day we had a fully working game, you could play the “Simple Mode” and your score would be saved, and that was about it. We started to show it to our peers and within a few minutes people were crowding around the person playing with smiles on their face asking if they could have the next shot. That moment was when we knew we had created something great. It was simply mind blowing that something we had developed in a matter of a few hours was bring smiles to our friends faces. This was the test as to whether or not we should continue with this app and launch it to the app store.

Adding the little features

Part of any good game is the competition with your friends to have the highest score. We thought that the social aspect of a game is very important so over the next couple of nights we added a few more game modes, a leaderboard with Facebook integration and some sounds. We decided to keep everything simple, so this meant simple leaderboards and simple sounds.

Launching the app

It was late Saturday night and we decided that the app was ready to release to the world. It had been just under 4 days since we had our initial idea and by trying to release as fast as possible, we had kept the app simple and easy to use. We were both excited as the app was uploaded to iTunes Connect. We had done it. Two sixteen years old had launched their first app with a development time of four days. It might not sound that exciting but it was to us, after all we had turned an idea into reality in a ridiculous amount of time.

App Status: Waiting for Review

I don’t think that there is a single developer out there that doesn’t think that this is quite annoying. Development for your app is finished and all you want to do is post that app store link to Facebook and Twitter and show off your work, but you can’t because someone at Apple first has to review your app. I had previously heard horror stories of apps spending weeks in review to only be rejected. While this tedious process can very annoying for the developer, for the end user it is one of the best things Apple do. Without it the iOS App Store would be full of malware and useless apps that make the good ones look bad. With this in mind I turned off my computer for the night and went to sleep expecting to wait for a few days.

App Status: In Review

I laugh a little when I think that the app spent longer in Apple’s reviewing queue than it did being built, with the app in the “waiting for review” stage for six days. As soon as I recieved the email I rushed to check Google Analytics (which I had added to the app) to see whether somebody had loaded the app from the United States that morning. A few moments after loading up the awesome Real-Time view, active users changed from zero to one and events started to show up. Finally after countless refreshes of the Application Status page in iTunes Connect, somebody from Apple was actually reviewing our app.

30 Seconds was all it took

Yes, your reading that right, all it took for the app to be reviewed was 30 seconds. From what Google and its powerful software can tell me, the reviewer opened the app, started a new game and lost straight away, they then viewed their brilliant score of 0 and moved on to the next app in the queue. I never thought that an App Reviewer could make me laugh, but I was wrong. For the next few minutes I was laughing over the fact that we waited six whole days for something that takes 30 seconds to do, but after all our app was that simple. A few moments later the app was approved and processing for the App Store.

As soon as the app went live, we shared it with our friends, family and peers as well as posting it to a few forums and sites like Reddit. We didn’t really care whether or not it was successful at this stage, we were just happy that we had launched an app. Not every product will succeed, but if you can be happy with what you put out there, then even if you only get a few downloads, you have achieved your goal of creating something you believe is great, so what else really matters. As we sat back and watched as our friends downloaded our app we were excited about not only about the world possibly discovering our app, but most importantly what we had acheived.

Happiness lies in the joy of achievement and the thrill of creative effort.

Franklin D. Roosevelt

Technical Stuff

We wouldn’t have been able to write the app without the amazing tools and resources that have been created by Apple and the open source community. Part of the reason that we were able to develop the app with such quick speed was thanks to the cocos2d library. It provided a way to easily draw shapes at a high frame rate. A tip that I give to anyone that is interested in programming is to reuse code. I had copied some graphics functions for drawing shapes and text from another project I had been working on and helped cut a huge amount of time off the development. By using these tools and some code I had already written the game is pretty much just an array with a few fields, some drawing code and a touch listener.

Don’t reinvent the wheel, just realign it.

Anthony J. D’Angelo

That is exactly what I did, I took some existing stuff and modified it to suit my needs. If you need a bolt for your car you don’t machine it yourself from scratch, you buy one off the shelf because there is no point wasting time doing something that somebody has already done.

With the main app structure in place all that was left to do was to add the game leaderboard. Apple provide a service called Game Center, which I was initially going to use but the main problem with Game Center is it is only for iOS and doesn’t support Android, so with this in mind I decide to write my own leaderboard system from scratch using PHP and MySQL.

I constantly read hate about PHP, and a lot of the points that are made are true, but the reason I chose to use it for the leaderboard system was because it fast to prototype in and I have used PHP more than any other server side language. Yes, a commerical nail gun might be great at putting a nail in the wall, but a hammer will work just as well. This is what PHP is like, it might not be the best tool for the job, but it works and I knew how to use it so that was the most important thing in choosing PHP as the server side language for the online leaderboard. The online leaderboard is made up of two parts, a submission part and a viewing part. The submission part takes the data sent from the app via a HTTP POST and inserts in into the MySQL database. The viewing part of the leaderboard takes the top five scores and returns them to the app. Yes, I could have used a service such as Game Center to power the leaderboards, but I didn’t need all of the features I only needed one, so I followed the KISS rule (Keep it Simple, Stupid) and kept the leaderboard system simple. By keeping it simple it was less likely to break and easier for me to debug.

Overview

By following one simple rule you can develop an awesome product in a short amount of time.

Just keep it simple.

And by following that rule and not overthinking anything, my friend and I developed our first app for the app store in 4 days.

You can download Time Tap here

--

--

Matt Hayward
iOS Development

I’m a young, passionate and enthusiastic Software Engineer looking to change the world through the use of technology. RMIT University, Melbourne, Australia.