Mobile & Web Software Solutions

Android Releases: Snake & i-Dispatch

10th of June, 2013

Today I have the pleasure to announce the arrival of two of my Android projects into the Google Play Store today - The "Legend of Snake" which was a collaborative project with artist Nicholas Brooks and the employee job management application, i-Dispatch. In addition to covering these releases, I will be introducing a flash project in the works which we are now designing and implementing levels for.

The Legend of Snake is now available in the Google Play Store. It features six different backgrounds, 8 unlockable snake skins and a faster game mode in which you earn double points per score. It's based off of the same Android code I published to Github months ago - with the additions of graphics and the alternate game mode. It's available for free - so give it a try! This project was to familiarize myself with Android's process life cycle and graphics API.

I commenced work on the i-Dispatch (store | website | login) application back in April. 150 hours of programming later, and it's available for Intellitrac's clients. i-Dispatch is a "Mobile Job Dispatch System is suited to Tradespersons, Transport industry, and Service based industries". My role in this project was to succeed my predessessor and complete the application. Working alongside me and overseeing me, handling the server and database operations was Intellitrac's project manager, Mehmet. I have further work with Intellitrac which I will be glad to accept. Future projects include iOS programs and extensions to existing applications.

Getting back into game development is something I've been wanting to spend some time on - and so I've begun collaboration on a breakout-platformer flash game with a mate from America. International development teams have always intruiged me, and it's generally been a struggle to keep consistent contact with overseas development partners in the past, however so far communication has not been an issue so far and we are already into level design and implementation.

Beta Testing & Enjoyment

20th of April, 2013

Greetings users of the internet. This past month has been incredibly busy and has warrented a shifting of priorities. Android: The Legend of Snake is in the beta testing phase at the moment - specifically we are looking at the users' reactions to the controls and how the application handles different screen sizes. Nicholas, the artist for this project, has provided me with additional skins and backgrounds for the player to unlock progressively as rewards for achieving certain score milestones.

The project nicknamed 'PartyPigeon' has been put on hold since we are waiting for the design and graphics to be prepared.

The freelance contract I mentioned briefly on my last post has been progressing well, and the client would like to extend my service to them with an iPhone application. I am very happy for this opportunity and it would greatly aid my experience to further my abilities. Currently I work for Intellitrac.com.au as a general programmer, but my current project is continuing my predecessor's work on an Android management application, i-dispatch. I am thoroughly enjoying my time there and it's a genuine workplace experience.

Update: March Development

7th of March, 2013

Quite a few projects of mine are in the deeper end of the development and approaching private beta, if not release by the end of the month. The following projects are in the aforementioned stage;

Android: The Legend of Snake
In December I released the source code for a basic version of the classic mobile game, Snake. Since then I have been in contact with an artist from Canada, Nicholas Brooks whom has been producing some pixel art for an extended version. Some of his work include the 'All-Seeing Eye', 'Sink or Swin' and 'Serenity'. I've received his work earlier this week and will be implementing the new game mode shortly. Release due this month for Android 2.2+.

Android: PartyPigeon
As I said in my previous post, I've been working on a social networking mobile application specifically geared to meeting new people. The application functionality is extremely close to complete and we will be testing and evaluating it soon, with graphics to be implemented in the next week. Open beta to be released by the end of the month for Android. iPhone version to be available at a later date.

Android Widget: SC2 Ranks
A very popular widget for windows desktops among Starcraft II players is sc2Gadget. I've received complaints from friends that all the available applications on the Google Play store that they would use as a substitute do not function on their newer phones. I believe this is a golden opportunity to exercise my regular expression muscles and whip out a quick, useful widget.

In addition to these, I've been contracted to program and produce both a website and a mobile application for an upcomming wellbeing and nutrition brand.

Android Bug: View.findViewByID(int)

16th of February, 2013

Recently I've been working on a social networking application for Android 3 alongside one of my previous Information Technology teachers and encountered what seems to be an API bug. It has been previously posted about on public code forum Stackoverflow here.

In the Android API documentation, it states "Look for a child view with the given id. If this view has the given id, return this view". The problem with this, however, is that it disregards any qualification you use to call the function. For instance, if you call this upon a child view to find a unique instance of a view with an identical ID in other parts of the view tree it will return the first instance of the id created within the whole view tree. Performing a quick search about this behaviour shows that it has been encoutered before;

It turns out that the solution to this problem is to create the view dynamically, isolated from the main view tree, retrieve the instance reference, then add the view to the display list in any manner you wish.

Update: December Development

21st of December, 2012

My previous post outlined my development plans for the following two months. Since that post I have released some source code for two different platforms for the classic mobile game Snake, made plans for future projects and have begun re-establishing communication with a graphical artist from Canada to produce appropriate visual elements for these projects.

Pushed to GitHub mid November was the final revision of basic Snake in Actionscript 3 (AS3) for Adobe Flash. It is available for download here. Although basic, the code is quite flexible and allows for non-tile movement with a little modification. From this you may extend the application to produce angular snake; a redux of snake in which the left and right keys change the velocity only in angle by a small amount of degrees each frame.

Earlier this week I pushed a version of Snake exported to Android 2.2 (or above) in Java here. It uses a similar setup to the Android version, but with minor differences catering to the Android framework. It uses the onDraw method and Drawable interface and composition in conjunction with delegation to iterate down the display tree and draw each object to the extended View instance. Using the onTouchListener interface I capture the users' taps and divide the screen into two regions: if the user taps the left side, the snake will turn 90 degrees anticlockwise. If the user taps the right half, it will turn 90 degrees clockwise. This comfortable setup allows the user to use the game in landscape mode only, currently. Persistent storage is implemented by usage of the SharedPreferences class to store and retrieve the highscore.

In the following weeks I plan to produce Blackjack, Poker, Match cards and alike card games and compile them into a packaged casino game. With Android's graphics API this is easily achievable, especially with its methods for resizing bitmaps, making for easy view scaling.

Upcoming: Android Applications

29th of October, 2012

The market in Australia for mobile applications is flourishing. As businesses strive to stay competitive by marketing their products and services in this new field, the demand for convenient, easy-to-use apps that complement websites is rising. Application developer positions are, therefore, readily available in Melbourne. However, to get such a job, one must have a demonstrated previous experience with an accessible folio of good quality coding projects.

Mobile App development is a field I hope to break into and so over the next month or so, in between studying for exams, I have a few projects planned to entertain myself. Seeing as I own both a Motorola X910 and a Motorola Xoom, both of which run on Ice Cream Sandwich, I will be focusing on developing for Android.

My projects include;
  • Starcraft II Ranks Widget
  • Match Cards
  • Background Rotator
  • Poker
  • Blackjack
  • Snake

By producing these six applications for a couple of versions of Android, with a number of different resolutions, I hope to create a basic profile demonstrating my ability.

I have dabbled with the Android API before. I used Eclipse as my IDE and pushed the application to my Xoom; the application handled some URL requests, parsed them to extract data points, pushed them to a MySQL lite DB for persistent storage to, finally, create a dynamic-scaling graph using the native drawing API.

Exam period is of course, a busy time, and I don't expect to get many of these completed by the end. However, the code from the three card games (and Snake) will be ported from already existing flash games that I've programmed in the past.