I've had a bit of a lack of progress with any updates of the lotto checker app because I've been busy with work and floods and I also bought the F12011 game which is awesome. I doubt I'll get much done this weekend either, between working late and partying hard for Halloween but as soon as I get a chande next week, I'll try finish debugging ahd testing the euro millions and all or nothing ticket chrcker. In other news the total number of Downloads surpassed 800 today!
This is my attempt to record any thoughts or progress about different software development projects I'm working on.
28 October 2011
24 October 2011
Horrible week in motorsport.
This week was a horrible week for motorsport with the death of Dan Wheldon last weekend annd this weekend the death of Marco Simoncelli. There were also three deaths at the Isle of Man TT this year including Irish racer Derek Brien. Also this year we saw the release of the film 'Senna', a film about the life and death about the legendary Ayrton Senna. This was a stark reminder of how dangerous motor sport is and I think that following this weekend a lot of the formula 1 drivers will be on edge at the introduction of the latest circuit in the formula 1 calendar in India. Let's hope for a safe end to the season and let's look forward to the progression of saftey in motorsport and motoring across the board
22 October 2011
Update published.
I solved a number of issues with the ticket checker and I am now glad to say that I have just published an update to the android market that will allow a user to check their Lotto or Monday Millions numbers to see how many matches they have. There is still an issue with the ticket checker for the Euro Millions draw which will I'll test for over the rest of the weekend, and I haven't even begun to test for the All or Nothing draw which I have a feeling will work pretty flawlessly on the methods already implemented for checking the lotto and Monday Millions to be honest. I'm not sure how long the app market takes to update or when it will be ready for downloading, but it has been uploaded and activated so it shouldn't be too long.
Testing latest update.
I'm currently testing an update for my lotto checker to allow users to check against the Irish lotto results and maybe the Monday millions only. This is because the Monday millions and lotto share the same format and any tests performed on the ticket checker component can be tested for both games. I need to fully test for the other games, euro millions being more tricky because of the number of bonus numbers but hopefully I'll have it updated soon enough. I want to get the update on the market tonight if possible, in time for tomorrows Lotto game. I think I have it at a state at the minute where the ticket checker can't crash, and I haven't encountered a scenario yet where the number of matching numbers is wrong.
I discovered today that my app is ranked 23 on the list of free apps in the productivity category which may be why the number of downloads is shooting up. I currently have 400 installs with 325 active installs which is an 81.25% success rate. Hopefully this update will bring more users but due to the fact that I'm now publishing to 325 or more people I want to make sure the update will not dilute the quality of the app in its current state.
19 October 2011
New update soon.
I've been updating my ticket checker class today and I'm ironing out the bugs, but the update should be ready to upload tonight. I think it's important to get a further update and some of the lotto checker functionality in as soon as possible. Currently I've removed the functionality for telling the user how much they have won because testing for that will take about three or four days in my best estimation.
In other news I sat a phone interview last week for a software integration consultant role with a company. Out of that phone interview I managed to get an personal interview which I sat last Monday, and out of that interview I managed to get a job, so things are looking up. This blog was originally set up to help me get a job, but since I'm actually enjoying updating my apps and I've actually warmed up to posting development updates here I'll be continuing this blog, even though traffic is slightly lacking. I'm currently getting more app downloads per week than I am hits to this blog. The current number of downloads of my app is 261.
16 October 2011
Back in to action with the lotto ticket checker.
Over the last two days I've started back working on the interface for allowing a user to enter in lines on their ticket to be checked against the latest results. So far the functionality exists where a row of EditText boxes are dynamically added to a linear layout along with a button which reads "Add Line". When the user clicks the button, it runs through each of the text boxes first making sure that the input is valid, then checking that the input is not a replication of an entry in one of the previous text boxes. After checking for each of these conditions on each edit box, if they meet the criteria they are appended to an array in a specific format that can be used to check against the results in the results class. A text view is updated with this line to show that the user has entered a line in for checking. If a user wants to add another line to be checked, the new line will also be checked against the existing lines in the text view.
I've started using the Toast class for displaying messages when a user tries to input data that is doesn't meet the described conditions (i.e. numbers) which actually reminds me of something I had forgotten. I currently don't have something to ensure that numbers entered are above 0 and below what ever the highest number that can be picked for each game is. I'll get back on that tomorrow.
Other updates include the addition of a Stats class which is used for storing information about winnings. The functionality for parsing the winnings table from the accessible results has also been added. The winnings table displays information about the number of winners of each winning combination of numbers, the number of Irish jack pot winners, and how much each winning combination has won. In the Stats class it keeps a linked list of Stat objects which stores a row of the winnings table. I'm thinking it might be a better idea to store it in a HashMap instead, because then if I pass a Stats object through the lotto checker activity I can get specific Stat objects using based on how many numbers the user has matched as a key. This should make displaying how much the user has won quite a great deal easier.
15 October 2011
Android market update
I was in the middle of a post about what I'm currently coding at the minute, which shall be posted soon and I thought I'd give a quick update about my Lotto Results app that I uploaded a couple of days ago. So I decided to post a completely separate update for it.
According to the android developer console, so far I have had 75 total installs, 53 of which are actively installed. If I use the percentage of people who have installed my app and not uninstalled it having deemed it not worth using, I have a success rate of 73.9% which is not too bad at all.
Other stats include that the most of the users are using Android 2.3.3+ at 60.4%, Android 2.2 is second at 26.4% and Android 2.1 is only 11% of the user base. The last 2.2% is made up of a combination of Android 2.3, Android 3.0 and Android 3.1.
Mobile Devices by percentage of installs.
Rank | Device | User Share |
---|---|---|
1 | Samsung Galaxy S2 | 15.1% |
2 | HTC Desire S | 11.3% |
3 | HTC Desire | 11.3% |
4 | HTC Wildfire S | 9.4% |
5 | Samsung Galaxy Ace | 7.5% |
6 | HTC Sensation 4G | 5.7% |
7 | SEMC Xperia X8 | 5.7% |
8 | HTC Wildfire | 3.8% |
9 | Samsung Galaxy Mini | 3.8% |
10 | Samsung Galaxy S | 3.8% |
As can be seen in the the above table, 15.1% of installs were on a Samsung Gallaxy S2, with 11.3% of installs on HTC Desire S and HTC Desire each. HTC Wildfire S has 9.3% and Samsung Galaxy Ace has 7.3%. This gives me a lot of important information about what kind of screen size I am deploying to which will help me further in designing my user interface.
I would like to publish an update with the ticket checking functionality as soon as possible, so that hopefully I will be able to get more downloads and increase my install/uninstall ratio further.
12 October 2011
Multi-component list adapters.
I've decided to work on making my GUI look better so I set up a test project with the express purpose of messing about with different layouts whilst trying to comply with best practices for GUI efficiency as described in the android reference documents. The GUI looks as follows.
Each list item contains an ImageView on the left which is an anchor for a TextView to it's right, which in turn is an anchor for the TextView title which is above. There is no problem displaying this purely in a RelativeLayout, however when it comes to adding this kind of layout to a ListActivity I seem to be running in to trouble. I'm only able to set the text in one of the two boxes. I think the answer lies with creating a custom Adapter class for seeding the ListView.
10 October 2011
Dabbling with SQLite.
So I've taken a bit of a break from my lotto checker app, because I want to start messing about with SQL and XML parsing. I'm going to design and build a tool for storing items taken from an xml file in an SQLite database so that I when it comes to developing the motoring app I posted about the other day, I'll be able to come up with a more solid design, the build should be much quicker and I can focus a lot more of my efforts on testing.
I'm now at the point with the lotto checker where I need to tinker about with the input a bit more to perfect it, at which point the app will be complete. I' was thinking about writing a custom keyboard class based on a grid layout with image buttons.
8 October 2011
Another idea for an app.
Watching the formula 1 qualifying I was reminded by Eddie Jordan that I have a slow puncture on my left rear tire which I've been topping up with air for the last week or two because I haven't bothered going to get it sealed. I had a quick look on the android market and there's no free apps for doing tire pressure calculations.
There are a couple of apps out there for fuel economy management and speedometer recalibration based on tire size, but I think an app that will encompass all of this functionality with an easy to use interface would not only be something I would use on a regular basis, but something that I think other people would be interested in. I'm going to finish up this weekend with the lotto checker and I think this should be my next project.
Review of results class
Tomorrow I'll be up at 5 for the Japanese grand prix qualifier and the Irish rugby match against Wales and after I'm going to review my Results class. I think maybe the class should be an abstract class with an implementation of the checking method. Then I can write a subclass of the Result class for each type of game. I think it would be a more logical structure to the app and it should make the addition of new game types easier. Also, maybe the functionality for pulling the information from the web should be a method of each game type.
5 October 2011
Addition of a results class
Today I decided it would be best to add a class for storing and checking the results. This way all of the results for a game can be passed through with the intent for opening the ticket checker GUI. For this to be possible the Results class had to use the serializable interface. Contained in the Results class are methods for comparing a string of lotto results to the results contained with in the instance of the Results class. The method returns the number of matching numbers. This makes the implementation of the Ticket Checker GUI a lot more straight forward now since most of the functionality for comparing the numbers for each game type has now been implemented. All I need to do now is implement a way of entering in numbers and I can begin testing.
Once I'm finished testing, I'm toying with the idea of integrating some form of map functionality which will display all of the lotto retailers in Ireland so a user can find the nearest point to where he/she can cash their lotto ticket in. Of course I'll have to find a list of retailers first, but I don't think this will be too much work and it allows me to jump in to the geo location side of things which interests me.
4 October 2011
Entering in your ticket. Designing a GUI.
Today I by started by designing a system for entering in the numbers on your lotto ticket to check against the results but I'm finding it difficult to decide on what form of input and layout to use. I'm currently looking at using a number picker widget, however I'd have to write a new layout for each type of game. The number picker widget not only allows you to scroll through a list of numbers, but it allows you to enter numbers in to the box manually using the keyboard as input. The range of numbers can be restricted. This seems like a simple enough method of entering details of a lotto ticket, then based on which game type, a new layout can be loaded which has the details regarding how many numbers pickers will be required in a row. The following is an example of the number picker widget I'm looking at.
In other news, I've fixed a bunch of formatting issues with the lotto feed and I've implemented the algorithm for pulling the results for both the Euro Millions and All Or Nothing results, I did a bit of testing on a couple of different emulators and deployed the app on my archos. I decided to make the font double the size and it's now at an acceptable size for reading on both smart phones and tablets. I'm going to register a developer account and maybe upload it to the android market tomorrow for free. There's not a lot of content at the minute, because it only functions as a feed for the results, but if it gets approved I can update it with more functionality the next couple of days and weeks.
2 October 2011
Some small changes!
I've decided to change the entry point GUI so that instead of displaying two buttons for checking the latest results and older results. Instead you now get a ListView with all of the different lottery games. This solves a number of problems, the first being that I can remove the functionality of searching for older results from this iterations design specs. I can maybe integrate that functionality in at a later point. The second thing this change does is make the user interface look a lot better. The following is a screenshot of the new layout.
The third thing that these changes have affected is that now because the game type that the app is looking for the results of is being passed through with the intent, the app can stop trying to parse results from the lotto results webpage once it has found what it's looking for which makes the whole process quicker. It also means my code is more organised now because I've created a function to check for each individual game which gets called based on the game type. With this approach I can modify how it parses each type of game result. This is important because not every game has the same amount of numbers and the formatting changes slightly for each game. Only the Lotto and Monday Millions have the exact same formatting.
1 October 2011
Lotto results web page parser integrated!
It's been a long day of coding and I'm going to call it a night after I update this blog. I've got the formatting of the results all sorted out by splitting the strings on regular expressions. I've also integrated the web page parser in to the app now and I've sorted out the activity permissions so everything is working with in the emulator.
Next on the list of things to do is to thread the parsing of the results page so that the GUI will not freeze up. It doesn't currently freeze on the emulator, but because of the difference in hardware for mobile phones it may freeze on a slower device.
There are only a few components I need to implement before I start testing everything.
- The Lotto checker activity
- The List of previous results
- Utilization of threads
- Graphics update, making the app look pretty.
I'm going to have to brain storm about how I'm going to be able to pull off old results for the old results list. Unfortunately I won't be able to get them from the source I'm getting my current ones from which makes things a little bit more tricky. We'll see. I love Android.
Parsing lotto Results
I've decided to set up another eclipse project so that I can write the component for pulling the lotto results from the lotto website and get the formatting right and then swap it in to the android app at a later point. Hopefully the only thing I'll have to swap around is some of code for setting up the connection and maybe some of the error handling.
I'm now using a different results page which I believe is formatted in a way which should make it easier to grab all of the results at once. So far the code sets up a connection to the lotto web server and reads line by line each page, looking for a specific piece of html, at which point functions are called to parse each set of results from that line down. It's worked pretty well so far. I'm just messing about with the formatting of the text at the minute cleaning it up a little. So far it looks like the following.
Wednesday 28 September 2011
Result: 5 10 15 27 35 43 Bonus: l
Plus 1 Draw: 17 19 25 30 41 44 Bonus: 42
Plus 2 Draw: 12 15 32 35 41 44 Bonus: 24
It's having trouble with some of dates because of the way I've written how it looks for that segment of code, but it's not important for the minute. I'll come back to it.
Basic UI design.
I have most of the UI structured and sorted out at this point. There are three main user interfaces for this app. The first is the menu. The menu has a couple of buttons which when pressed create an intent and start up another activity. So far there are only two buttons, one of which will create an intent to start up a "ListActivity" displaying the previous lotto results. The second will create an intent to start up another result checking activity for displaying the latest results. This activity will can also be started by clicking on an item in the list activity for that set of results. On the result checking activity it will display the lotto numbers of that date and there will be a further button to enter your lotto numbers to check if you've won on that activity UI.
I'm currently working on the screen that displays the results, but it will probably be just a TextView with a button that leads to another UI for entering in your ticket or something. Once I'm done with that I'm going to look in to the best way of pulling the results from the web, because I don't think the full java.net package is available on android and I think you have to register network connectivity as a function in the manifest or something. I'll look in to it.