Experimental

Jul
15
Posted by BrianH at 8:17 am

Since I’m back to blogging on a fairly regular basis, there was something I’ve been meaning to take care of.  The old theme was slightly sore on the eyes when trying to read long portions of text.  So, I enabled a new one that I’m much more pleased with and I’m sure you will be as well.  I’m working now to consolidate all of my downloads scattered across the site into a single downloads page for easy access.  I’ll also be making some changes to the theme, including Lightbox integration, etc.  And as always, this site will continue to remain free of annoying advertisements!  I really feel that many blogs nowadays have pulled away from profiting from their own unique content to annoying the hell out of their viewers through ads.  I’ve hosted this blog for almost 10 years now, and I hold true to my word that I will never slap an affiliated advertisement anywhere on the site.  My blog is funded strictly by my day-job labor and the generous donations contributed by my readers.  And to all of my readers, I thank you!

As corny as it may sound, I’ve always wanted to get my foot in the door with my own $0.99 app in the marketplace.  As my friends, family, and colleagues can testify, I’m a die-hard Apple fanatic!  But there have been a few snags in getting my feet wet with iOS app development.

For starters, I do not own an Intel-based Macintosh, which is absolutely required for developing on the iOS platform.  My latest Mac purchase was my Dual 2.7GHz PowerMac G5.  It sports an amazing Motorola PowerPC processor.  A few months after I signed away my first born child (err, I mean purchased), Apple had this ingenious idea to switch to Intel.  And it’s been a pretty rough downhill ride with my PowerPCs from that point on.

So, I’ve pointed my direction into a different Mobile market.  Powered by another one of my favorite tech companies, Google, the Android OS has been taking the mobile industry by storm.  From phones to tablet PC’s, it’s continuing development at a rapid rate.  So after accepting that I would need to learn a new programming language, since ObjectiveC wasn’t going to do me much good in a Java world, I started looking for easy ways to get started.

My initial thought was to make a web app.  I already have an extensive background in HTML and CSS web development, so it would only seem logical to make a move in the direction.  It would be platform independent since it would reside in a web browser, but I think that simple fact was my biggest turnoff.  Web applications had a lot of restrictions when it boiled down to native device functionality.  I also wanted a native application that I can publish into the marketplace.  Something to make a little extra cash on the side, but also something that I would enjoy doing as a hobby.

My first find was Google App Inventor (http://appinventor.googlelabs.com).  It looks very promising and, most importantly, easy to use!  Practically no coding needed!  And that’s exactly what became it’s downfall.  It truly lacked a lot of the features I was hoping for (ironically the ability to publish the created applications in the Android Marketplace).  It took a little bit of work to setup at first, but it was pretty straightforward once I was started.  I was able to make a simple application called “time2eat”, which collected a custom set of contact numbers and allowed you to create a text message that you could send en masse to everyone listed (essentially letting them know it was time to eat).  I don’t even own an Android phone, so I used my parents Motorola Droid X to test it, and I was happier than a kid with new puppy when I successfully sent myself a text message!

I felt almost like Charley Kline at UCLA sending the word “login” across ARPANET.

But, the victory was short lived when I discovered I couldn’t take this freshly created App and publish it in the Android Marketplace.  Perhaps I’ll make another post someday explaining why, but maybe by then Google will have gotten their act straightened out and redesign this cool tool.

So, after this small bit of success, I wanted to dive into the Java pool and swim with the code! … Ok, so not quite in the literal meaning, but you get the idea.  I found some awesome references, downloaded the Android SDK (http://developer.android.com/sdk/index.html) along with the Eclipse IDE (http://www.eclipse.org/).  I was able to successfully setup multiple Android Virtual Devices (AVDs) running practically every version of Android available from the SDK, and I was set to go!  Or so I thought … By the way, I may make a tutorial about this someday, because documentation on the Internet about it seemed somewhat hard to obtain.

Java is a whole different world for me.  I’m slowly learning the ins and outs of the overall development process, but it’s been quite the learning process to say the least.  For anyone looking to get started, I could easily make a few suggestions and pointers.

  1. Get to know how Android works!  If the terms linux kernel, Dalvik, Java, Activity classes, etc. scare the crap out of you, then I’d suggest knowing what they are before beginning.
  2. Learn and understand the Android Application Life Cycle.  From onCreate() the whole way to onDestroy().  It is vital to understanding how Applications work with Android.
  3. Start small!  Almost straight out of the gate, you should be able to make a simple Hello World app.  Take tiny steps and learn how everything pieces together.

Since I haven’t had much time lately, and this really is just a hobby for me, I found another application that looked just as cool as Google App Inventor, called Illumination Software Creator (http://radicalbreeze.com/).  My first impressions before purchasing were thinking I was getting into another Google App Inventor mess, and I wouldn’t be able to take my apps into the Marketplace.  I was completely blown away when I discovered that it actually generates and provides the full Java code in an Eclipse project format, ready to compile out of the box.  Completely detailing the scope of this application would take a whole post in itself, so I won’t continue rambling about it more then I need to, but so far I’ve found it to be an amazing tool for application development across the board.

So, allow me to give you an update on things that I’ve been working on lately.  Aside enjoying my awesome summer break with friends and family, I’ve actually been getting a lot of work done.  My day job keeps me pretty well on my toes, and other projects I’m involved in and/or working on keep me fairly tied up as well.  The next few days, I’ll be blogging about some of these projects and sharing my experiences as they progress.  First, let’s start off with my most recent and most active:

The Pennsylvania State University IT Club Helpdesk (ITCH) Workorder Management System:  Sounds like a mouthful, eh?  This is a project started in our Spring 2011 Semester for a graded group assignment (which we did exceptionally well on, by the way).  The IT Club Helpdesk on campus needed a revamp of their current database solution.  For this project, we designed the framework to a php/mysql solution enabling easy access to user management and control, along with some basic database functionality for managing client workorders for PC repair.  Although we got a great grade on the project and about 300 hours of work went into it’s design, it was actually somewhat sloppy in code structure.  Now that I have some time to redesign the system from a fresh slate, and some basic understanding of Objective PHP design, it’s time to make something much more usable and deployable for real-world IT needs.

In the next couple of weeks I will have finished the core foundation for the project, and I will be working with the team to further develop the application to better suit our needs over the course of the next couple semesters (Fall 2011/Spring 2012).  I’ll post more about the project as development continues.