Wednesday, 28 June 2017

App development

So after I had finished my first year at college I wanted to work on an app that would combine my enjoyment of building Android applications and my love of Nes games, I had started collecting them and had no way of remembering which ones I had, which meant I picked up an extra copy of rad gravity pal version. So I started to design and build my Nes collection app, this originally started as a way to catalogue European games but as I owned a couple of US games, I thought this would make sense to include the entire official and unofficial list for games released for the system, I included unofficial titles but left out the pornographic titles as they were so incredibly rare that there is little chance of the average person actually getting their hands on them, I also included one entry per game regardless if it had a different title in the US or Europe.

I started out with a handful of games and the cover images, just to ensure that I could actually get the images to display as I'd wanted to do this years ago but couldn't find a solution but also didn't really try to find one, I tried a wide range of methods until I discovered that questioning the R.java file where each asset and onscreen button, text box etc. are listed would give you the id for each image file, it was then just a simple task of setting the image to the image view and it would show on screen.

With this problem solved I was able to proceed with the building of the app, I realised once the basic functionality was in place that this would be a mammoth undertaking as I had discovered that there were 800+ games released for the Nes and that each would need an image, synopsis and details of who published it and the year it was published, plus the genre and sub-genre that it belonged in.

As I was putting the basic features into the app, I kept coming up with a new list to show the games to the user and then when that was created, I would come up with a feature that I thought would improve the app for myself and other users. One of the hardest issues to deal with were the bugs that would occur due to the way that I had put the database together and because I've not used a database helper class, I needed to tweak and change the way that I put the sql string for querying the database together.

Once I had a fully working version, I decided to release it as a beta version, so that I could get some feedback on crashes and how the app worked for the users, I got some useful feedback that helped me to fix issues that I hadn't discovered when testing, I also got a lot of people asking how they could play the games, which meant that I had to change the name of the app slightly and add "this is not an emulator" in the short description and full description on the play store app page, I did receive fewer bits of feedback asking about how to play the games after that.

One of the biggest annoyances is that Samsung has released some devices with really high resolution screens, so I kept getting crash reports when users were trying to view the list of games, I can only put this down to the images being resized and the device running out of memory, which was a pain and meant I had to try and find some much larger images to use thankfully I was able to and although the app is now a bigger download, the images look quite nice on smaller resolution devices, which is a nice bonus and hopefully I shouldn't get anymore crash reports from those devices.

The one thing I've enjoyed has been finding ways to solve problems that I've had and I think it has helped me grow as a developer, I need to start working on other ideas that I have, plus I think people want other apps that catalogue other Nintendo and Sega consoles, which I want to do but the amount of work involved collating the information and cover images is going to take some time.