Back from Holyhead, bruised, grazed, with aching limbs and smelling strongly of diesel, but at least the boat is ready to launch.

Decided to update the User Guide and hel files for PCDB SuDoku Solver while thinking about what to do about licencing.  I've finally decided that, in the light of Google's edict that copy protection is deprecated, it's as well to bite the bullet and incorporate licencing in from Day 1. So Day 1 has been postponed for a few days while I grapple with the Android APIs and test mechanisms to make sure it lets legitimate users continue to use the app while confining unlicenced ones to the 'LITE' version.
 
I got as far as trying to publish the app today.  After spending several hours poring over the finer details of application licensing, I decided it was a Good Thing but could wait a couple of weeks.  So I started to publish the app to Google Play.  After setting prices for the US, UK and Euro ($5.99, £4.99 and EUR5.99 in case you're interested), Google Play decided that "0 or more devices" could run my app.  As at least one, the Samsung Galaxy Tab 10.1 runs it very nicely, I tried to modify it so that Google would take a more open minded view of it amongst the admittedly small number of Android tablet devices on the market, Google Play seemed incapable of picking up the changes I'd made.  Back to the drawing board.

So although I'd hoped to get it out this week, circumstances have worked against me.  One of these is that, having joined the Beaumaris Singers (www.beaumarissingers.org) in January, yesterday was my first concert with the choir.  It was at Holy Trinity Church, Much Wenlock, and consisted of a programme of German motets, by Bach, Mendelssohn, Shütz and Brahms.  Very well received by a large audience, not all of whom were Beaumaris "groupies".

Rather more significant, in terms of a publication date for PCDB SuDoku Solver, is that this coming week is the long-planned week when I go up to Holyhead to get the boat ready for the new season.  So think of me covered head to foot in anti-fouling (a striking shade of navy blue, I think, this year, again), grease, seagull guano and sundry other boatyard materials.  At least the weather looks to be very warm, which is nice to know when you're buried in the depths of the cockpit locker trying to work out why the GPS isn't working the way it should.  Launch date is the 11th of April, by which time it will probably be blowing a F8 and trying to push me onto the strategically placed rock face just to port at the bottom of the slipway as you exit the crane backwards.

With any luck the painting and preparation should be finished by Wednesday, so I'll get back to the intricacies of Google Play publishing on Thursday.
 
Pretty well ready to release PCDB SuDoku Solver to the waiting world.  It's signed with my private key, doesn't have any debug  capability, and runs OK on my tablet.  Oh, and then Android released a new version of the SDK.  Downloaded and installed it, and then discovered that it has a whole new set of ideas and gadgets to manage the UI of Android Apps. Rather a lot of PCDB SuDoku Solver confirms to it, as I've been tracking the tablet-oriented changes that have been released since Honeycomb (API 3.2). But some don't.  It's decision time.

Do I hold off releasing it and carry out a major overhaul of the UI?

Or do I release it anyway, and review the UI features in the next major release?

As the new UI guidelines are aimed specifically at Ice Cream Sandwich (API 4.0) I've decided to go with the second.  It'll be out this weekend.
 
Getting ready to publish PCDB SuDoku Solver.  "Test it with various screen sizes and API versions, using the Android emulator", they say in the Android documentation.  "Make sure you test it with a later API level than the one you're targeted at", they say.  So as I'm targeting Honeycomb (3.2), I tried to set up an emulator target for Ice Cream Sandwich (API 4.0.3).  It knocks Java over and hangs the Eclipse SDK.  Now what?

And I still can't get the emulator to load any earlier versions than 3.2. I must be missing something.
 
I've always intended that PCDB SuDoku Solver will be targeted at Android "tablet" devices, as the amount of information it provides to the user makes it pretty well useless on a normal smart phone type device.  But that begs the question: what is a tablet?  Conventionally, Android wisdom is that it's anything with a screen size (diagonal) of 7" or larger.  My Samsung Galaxy Tab 10.1 obviously qualifies, as you can see from the screen shots.  What isn't so obvious from these, but is pretty important for the user, is that the grid cells and associated buttons are large enough that you've got a pretty good chance of touching the one you want, rather than one next to it.  Unless you've got extremely large fingers, that is.

Android development has been grappling with this question, and also with the realisation that most tablet apps are more likely to be usable in landscape than portrait mode.  (Some Android apps, including BT Fon, haven't realised this yet.)

A related issue is that recent Android releases include many facilities that help tablet-based apps.  Conventional wisdom is tht you need to design an app so that it can be used on earlier versions than the one you develop it for, and obviously this can increase the size of your potential market.  But if you do that, it may mean that you have to make compromises that mean you can't use the later tablet-specific Android features.

My solution?  I've taken the view that nothing running on Android releases before 2.3 (Gingerbread) really supports tablets.  Version 3.0 (Honeycomb) is the first that really supports them properly.  I've been developing for 3.2 (Honeycomb MR2) and version 4 (Ice Cream Sandwich) is now available.  I've set the "minimum API level" for PCDB SuDoku Solver to 2.3, but so far haven't been able to persuade the Android emulator to let me try and run it on that version.  It looks like initial releases won't run on anything before 3.0.  I've specified a minimum screen size of 600 x 1024, which is just about big enough to handle precise screen touches.

(Don't you just love the Android release names?)
 
Hopefully people will want to buy and install PCDB SuDoku Solver, and if they do we need to know what to do with their money.  The answer is that I now have a Google Merchant Account so that Google can pay me, on a regular basis, any proceeds from people downloading the app.

It helps if people know we're here.  So the site's front page now includes a Facebook "Like" button.  Gosh, the amount of new technology I've had to master to get this app up and running!
 
Well, I didn't finish up extending the Spinner class. That's an exercise for another day. But I have managed to make the Save Game form in PCDB SuDoku Solver provide a pretty similar interface to a Windows ComboBox.  Here's an example.
You can touch a field such as Source and select an item from the drop-list that drops down.  If the entry you want isn't in the list, touch the "+" button and then you can type the new value into a field in the same place on the screen. Touch "Done" on the virtual keyboard and hey presto! The new item is added to the drop-down list and automatically selected as the value in the field.
It should be possible to package all of that up in a Class, and I may do that in the future once the app is out there in the market.
All the screen shots in the User Guide and Help Files are now up to date with the latest changes to PCDB SuDoku Solver, and the User Guide in PDF form is available on this website.
 
You  can do almost anything in Android.  But one thing you can't do, it seems, is present users with a drop-down lost of something like a list of folders and enable them to either select one of these entries, or type in a new one which (in the case I'm interested in) would tell the app to create a new folder and add it to the drop-down list next time it's used.  It's an interesting challenge to find a solution to this requirement.  "Create a new class to extend Spinner", say the user forums.  May have a go at that.  If PCDB SuDoku Solver finishes up with a button tht s
 
Well, Android is a strange beast.  It  can do just about anything you want, even make your device jump up and down and sing "God Save the Queen".  The only problem is finding out how to do it.  Too many of the "how to" articles availabe on the extremely comprehensive Android Developers website assume that you're started from scratch each time.  None work on the basis that you may already have an Android app which you want to extend or modify.  Very frustrating.  However, I now think that PCDB SuDoku Solver is a pretty good app by Android standards, if you're more interested in what it does rather than glossy graphics
 
I've been developing an app to solve SuDoku and Killer SuDoku puzzles for several years now.  With the increasing availability and use of Android-powered devices, I've recently ported the app to this platform, and it's now pretty well ready to publish on the Google Play (previously Android Market) website.  There isn't much point in publishing an app like this without some degree of support, so I've set up this (PCDB Dev) website to provide that support.  See what you think of it.