Wednesday, April 18, 2012
One of the resolutions I set for myself in my first blog post this year was to publish an Android app. This meant both learning new technologies while also refreshing my competency in others that I had not used in a while (oh hey there Java!). I'm extremely excited to announce however that as of Monday of this week my first application is available in the Google Play Marketplace.
Although I set this goal for myself in early January, I didn't actually sit down and open up an Android development book until February. The way I have always learned best is to find a relatively interactive book and work my way through it page by page. This methodology served me relatively well throughout college and continues to do so in my professional career. I follow the same basic formula:
- Read complete chapter on a specific subject (Ex. Android Activity)
Closely review author provided examples
Complete ALL of the example exercises for that specific chapter
Define a related problem that is solvable with whatever new skill I just learned
Solve that problem
- I usually couple this with taking exhaustive notes in Google Docs. My Android notes so far are visible here.
|Screenshot from my app.|
If you somehow failed to get the gist of my learning methodology, I enjoy reading a chapter in its wholeness and only moving on when I am comfortable with the material at hand. With Android (and arguably software development in general), it's extremely important to have a solid foundational understanding of a language or platform's principles because the skills you are learning are built upon and compounded by earlier skills.
A problem I have seen a lot of people run into is coming up with an idea for an application or project and then rushing head-first into development without understanding fundamentally what it is they are trying to do. A big piece of this comes from failing to have the patience to slowly and methodically learn a new skill. Focusing primarily on your goal without understanding the path that will lead you there will inevitably lead to failure. It's like an obese person who decides they want six-pack abs doing only sit-ups instead of holistically eating healthy and performing cardio.
"I do 500 sit-ups every day and I still don't have abs! It must be my body type and not me!"
...or maybe it's the fact you eat freaking chicken-wings for lunch everyday and haven't gone for a run since the fifth grade.
Goal setting aside, my application currently uses a combination of a user's 3-mile run time, sit-up count, and crunches count in conjunction with that user's age and sex to dynamically calculate a United States Marine Corps PFT (Physical Fitness Test)
score. There wasn't that much available in the Google Play Market that solved the problem of test score calculation well and conceptually it seemed like a relatively simple enough app to construct during my first real attempt.
From start to finish it took me a couple of weekends to construct the application and spit-shine it a bit. I targeted the application for Ice Cream Sandwich (API 14)
but made it backward compatible up to Gingerbread (API 10)
. According to the official Platform Versions
chart, my application is available to 69.4% of all Android phones. If you happen to have an Android phone, give it a download and let me know what you think!
Labels: android, google, google-play, resolutions, running, software-development