Release Schedule fulfilled: App In Prod. Feedback: I'm the Featured Developer on the App Store. I am proud to announce that my app is being featured by Apple.
I was always looking for games to play with my parents in car trips. And one of the games I enjoyed playing the most was: Pick a Number!
At the age of seven, my dad and I decided to turn this idea into an app. Five months later, the app was released on the App Store.
Meet the Number Guessing Challenge app
VERSUS captures the fun of picking a number and brings it to the palm of your hand. Challenge your friends to see who can guess the others’ number faster.
VERSUS incorporates G-rated trash talk. Each opponent is given motivational feedback regarding their opponent proximity to guessing their number. The closer their opponent is, the more frantic the response. Remember, we are playing to win!
“Do you even numbers, Bro!”
9 key points that I learned while developing this app
During the development of this app, I learned how to move an app through its entire life-cycle from coming up with an idea, to brainstorming the concept, to designing the wireframes and turning the wireframes into beautiful design, to recording high quality voiceover audio, to writing code and testing the functionality, to finally deploying to the App Store.
1. Coming up with the idea: This was probably the easiest step. Pick a card. Pick a number. I spy. These are all games that can be played on a road trip or in the car. This simple idea was the basis of the genesis of VERSUS – The Number Guessing Challenge. Something simple can yield a very rewarding journey. Just remember: Ideas are cheap, execution is everything.
2. Brainstorming and discussing the details: In this step I learned the "how to" of taking a simple idea and unpacking it. Brainstorming is helpful to get ideas out of your head and onto the page. Discussing details lets you unpack the landscape of the mind and dissect the goal or 'end product' into Features that we want to see in our app. This step lets us unpack, recombine, and move ideas around like a mental game of Tetris.
3. Creating the wireframes: This step took more out of me. It seemed less fun, but proved to be invaluable. The wireframes are the visuals; these let you see the ideas on paper, and allows you to start thinking of the app in terms of the flow through the User Experience. Seeing paper mock ups of my app both in hand and on the wall let my father and I plan steps from start to finish of how users will play the game we were creating. This was my first heavy exposure to the concept 'Lather, rinse, repeat."
4. Turning the wireframes into design: This step was a lot of fun! This stage of the app allows designers to turn black and white ideas into color. This is where art meets concept. Creativity runs rampant and the sky is the limit. Fonts, logos, gradients, shading, controls. VS was a learning experience that let me wonder the countryside of creativity and explore nearly limitless options. A lot of time and energy was invested in this step. In the end, I learned a key to design through the currency of time and energy: keep design simple, clean, and fun.
5. Writing code: This was the hardest step for me. I had to shadow my father. I learned the basics of logic. We engaged in what he called 'knowledge transfer'. He taught me the core foundation of coding, algorithms, learning how to think, using the IDE, and expanded upon order of operations from the standpoint of coding. We spent many hours at the white board discussing these concepts in general and specific while drawing out examples as we went. Methods, functions, classes - My father helped me gain experience with each. Coding? Collaboration is king! We learned to work together and it brought us closer.
6. Testing: Testing is fun. How can we break it? How can I poke holes in the code? Is there a way to do something in our code that would cause it to fail? My father and I played a game of Cat and mouse. He would test my code, I would test his. "Caught you! Baba, You made a mistake!" As a tester, my job is to break your code. Our goal was zero bugs. It was challenging and exciting to find our errors. Every one we found was one less we would have in the finished product.
7. Troubleshooting: Finding a problem is one thing. Learning why it is happening is another. Why? You get used to this question. It teaches you to identify scope. Lights don't work? Why? Is it the light bulb? The switch? The breaker box? Where (the scope) is the problem happening? Finding the scope helps lead to the root cause of a problem. Identifying this is important. Then we implement the fix. What are the results? Was that really the real cause of the problem? Here again we Lather, Rinse, Repeat. Accuracy is your goal. Removing and reducing defects is not important - it's imperative.
8. Voiceover recording: 6 years of piano lessons have helped my ear learn pitch, tempo, and rhythm. Music is a passion. And sound adds to the world around us. I wanted to use sound to bring life to the app. We added music and even my own voice! Bringing in more senses makes the app richer. Recording my voice for the app required practice and repetition, repetition, repetition. My practice at the keyboard helped limit my recording to a smaller number of takes. Practice makes perfect!
9. Deploying to the App Store: The proof is not in the pudding, it's in the tasting. A game in the App Store was its own reward! It's a necessary step to realize the previous 8 steps. It is very rewarding to see users download my app. It adds a sense of accomplishment to an otherwise rich experience. It's a huge sense of accomplishment. Developers love to see code in prod. I really enjoyed taking my idea from computer to the phone. The app was a labor of love. Seeing that app in the world was the realization of that love in something I could touch.