Monday, October 15, 2012

Trials Of An App Developer (Rough Draft)


My friends think my mind is stuffed into a 4x4 box compiled purely of smoothies and Japanese Sodas. While only partly true, if a room contained such ingredients it would be a heavenly room, what most people wouldn't guess about me from a first look is that I have an ever growing curiosity for computers.
My dad is a software guy, he's worked at Microsoft (7 years!), Visio, Watchguard, Windemere Real Estate (CTO), and now he's the Chief Technology Officer of a publishing company called RPI. When I first became interested in programming, my father scooped up the words dripping out of my mouth.“What's the first language I should learn?”, I asked rather confidently, excited to start making games (almost all kids want to program for this reason). We talked about many different languages that would suit my craving for adventure.
“Hm. Try C++,” he suggested, “You can get a book from the library. Google it.”
And so there I was, anxious to get busy. I asked my mother if she could pick up a C++ learning guide from the library the next time she went by while I was at school, she kindly agreed. Once I finished my middle school homework, I grabbed the book, plopped it down in front of our laundry room computer keyboard, and cracked it open. The first thing I noticed about the book is that it was black and white, small font, and the pictures were somewhat hard to see at times. The wording was complicated, and I ended up skipping most of the reasoning and diving straight into typing the code.
C++ is a compiled computer programming language, basically meaning that it needs a compiler or 'packager' to make all the code do stuff. One of the first things that the book tells you to do is to get an I.D.E. or Integrated Development Environment that will compile/debug/run all your sweet code for you. So that's the first thing I did. Once Eclipse (my IDE) was installed, I went on to skimming the text and copying the code into Eclipse. I fiddled around with the code and ran it.
“Hello World!”
This program did nothing but output “Hello World” in the console window. No flashy colors, no animation, not even a single function, but tuna fish casseroles I was excited. I've coded my first program! I began to dive deeper into the book until I created a text based game purely off of 'if' statements.
First of all, an 'if statement' is a conditional operator that essentially executes a block of code according to if the statement that was inputted is true. For example, if I were to create a variable named 'PatricksAge', were to set it equal to the integer '16', and then to pass it through an if statement saying “if PatricksAge is equal to 16, do all this code,” then the code would be executed because I am in fact 16.
With this logic, I created a text based 'Choose Your Own Adventure' game that consisted of screens bringing up scenarios and the player would choose from an option A,B, or C and then according to their answer, a certain new scenario would appear. It was extremely tedious creating a game like this because with every new scenario came a multiplicative of 3 new paths; I had to find a way to tie them all to a reasonable amount of endings intelligently.
So with this little knowledge, I became more curious about graphical game design, for of course, the popular games have the best graphics. In this transition between texts games and graphic revolved games, I then sought out a new language that wouldn't be as tedious and boring to read through, and then I found Java.
Java is an object oriented programming language much like C++. It gave me tools like Java Graphics to create cool game graphics with the libraries that came with it. So with a little help from some YouTube videos, I was creating GUI based games with JFrames (the graphical user interface such as buttons, text fields, and radio buttons). I also made my first little adventure game, although much like my previous projects, it was never finished. I was beginning to become more and more interested with Java games and the possibilities.
I don't remember specific dates or even reasons why I started programming Android apps for mobile, it became sort of a desire after seeing how popular mobile devices such as the iPhone and Android OS based phones were popping into the hands of my peers, my dad (the tech guy) also influenced me on transitioning more to mobile and web, so thus I began.
Android was and is great for me because it didn't require me to learn a whole new language to start developing, the whole operating system is written in Java! Again, my first pursuit was a series of YouTube videos that taught me the basics of Android App Development. The guy who made the series is brilliant (youtube.com/MyBringBack), he even taught how to look up things on the API so if you needed reference you could easily find something! I learned the basics, how to create simple games, how to interact with data bases and I even started teaching myself how to problem solve with app ideas, such as the app I made called Cab Grabber.
Cab Grabber is an Android application designed to catch the eye of a taxi driver when the city is bustling with activity. The objective for the pedestrian who downloads and installs the app to their device is to press the 'Grab That Cab!' button and hold up their phone to alert a cab quickly. The phone plays a obnoxious animation that strobes black and yellow with an exponential rate until it pauses and then repeats. The goal of the animation was to create an inconsistency with all of the blinking lights of traffic, remedial stop signs and lights, and to catch the attention of a taxi who's on the lookout. I've received reviews saying that the application works wonderfully and has saved the hassle of waving down a cab.
Mobile application development is extremely fun and has many real life applications. Because most people have a phone now days, why not create an app that will solve an annoying issue and speed up your productivity? That's my goal behind most of my apps now, and I'm looking forward to the new real problem solving ideas that I can jump upon.
Computer programming, web development, and application development for mobile environments are incredibly creative endeavors that will test the mind, force learning curves, and break the bleakness of remedial tasks. There's always a new problem, there's always a new way of fixing it, and that's what I'm interested in finding.

No comments:

Post a Comment