Monday, April 18, 2011

Update, Update, Update... Failure... Update

I did another update of all three of my applications on Friday.  The updates to the Launch Bar(s) was pretty minor, but important.  I was looking for a better way to save the intent (how to call the application).  I actually found a good post on stack overflow on how to do this by saving the URI information.  So I put that into both versions and things seem to working well.

I made a big change to the Desk Clock Plus application two (?) weeks ago now.  I was really happy with what I was able to do with integrating my desk clock program and Picasa.  I'm using Picasa in 3 different ways:
  1. Use the featured images (top 20) as part of the backgrounds.
  2. I'm using my Picasa account to host a bunch of themes.
  3. You can display Images from Picasa for your background and / or slide show.
I was very proud of what I was able to do and was planning  a big post explaining all of it and I just never sat down and wrote it (real work and home have been very busy lately).

I kept tinkering with the code and putting in fixes for for the force close reports that were coming in.  I made a change that I'm hoping should fix some of the random force closes when the Desk Clock is not the main application, however, this caused another issue when the application is closed (removed from the dock or the back button is pressed).  I really didn't have time to do anything with it until today, but I do want to thank all 36 people who sent in the Force Close report!  I know I've said it in the past, but I need to stop pushing updates on Friday, it seems that when I do there's some kind of bug that goes out too.

I've been thinking of what's next...  Given all that I've learned in the past nine months or so, I the launch bar could probably be re-written better. For Desk Clock Plus, I'll more than likely, I'll probably do one more enhancement for skinning,  probably draw up a large screen layout and prompt the user launch the location and security screen when a location can't be detected.

Wednesday, January 26, 2011

Globalization

It's a big buzz word around my office for my real job.  It wasn't really something that I thought about when I started the android development.  However, when I used some of the Google clock code as a base for my clock, the localized strings came with it, so my desk clock was half globalized.

Last week, Paul from the Netherlands emailed me regarding the force close issues.  Fortunately, I think I have the issue resolved*.  We traded some emails and I got a small list of "wouldn't it be nice if".  Which, once again, is something I'm used to with my real job.  His first comment was the date formatting, I naturally formatted the date Month, Day and he would like it formatted Day, Month.  The change to the formatting is nothing, but the question is when to do it.  What's cool is that there's a function getDateFormatOrder that will return a character array with how to format the date.

His other request was for the weather conditions to be localized.  I'm getting my weather information from yahoo, parsing the XML return, and stuffing the value of Condition into the text box.  I tried to see if I could pass Yahoo a language ID and have it return the localize conditions, but no dice.  So, I opted to use the condition code and then get the string from inside my application.  Paul offered to translate the conditions into Dutch and all looked like it was good.  After typing out all 43 conditions in English yesterday, I wasn't looking forward to doing the same thing in Dutch today.  So, after some searching I found some really cool tools:
  1. App Localizer  This nifty web page you can copy and paste your XML strings file into a text box and tell it what language you want and after some google translating you get a translated XML file back.  It's pretty awesome (and pretty quick too).
  2. Androlate BETA  This is a plug in for Eclipse that will do the same thing but in line.  It is still beta, but I thought it worked pretty damned well, although I thought it was a bit slower than the App Localizer web page.  There was some goofiness with how I had to do things since I have my strings broken up in to multiple files, but all in all I'm happy with it.
So, I have the Desk Clock Plus application completely localized in Dutch, German and Spanish.  After I push it out to the market I'll have Paul check it out and if all looks good then I'll have it go to town on all the 2.2 languages.

*Another user reported that his previously working Droid 2 isn't working anymore once it gets docked... no rest for the wicked...

Wednesday, January 19, 2011

Update Bomb

I've been rather busy with all three of my projects lately... I was finally able to get everything done and taken care of and I just got done pushing updates to all of them.  But first a little rant...

I personally am very happy with my version of the Desk Clock.  It works very well for me on my original Droid.  It works well, on the Droid 2 and on the HTC incredible (according to my cousin and sister).  I've also have a co-worker using it on his Droid X.  However there are some people who are still having issues with it force closing on start.  That sucks.  I want my software to work for everyone.  The problem is the phones that they say that it doesn't work for... I don't have access to.  Beyond that, I can't say if this is some specific to the phone or the user or a combo of the two.  Additionally, If you going to bitch about it not working, HELP ME, HELP YOU!.  Fill out the Force Close Report!!!  I'll get a stack trace that should help me figure out what the problem is.  I guarantee that it will take less time than going back to the market and complaining there...

I feel a little better... sorry about that.

Desk Clock Pro: I changed how I get the "default background" and I suspect that was the cause of some of the problems or at least I can guess cause nobody fills out the Force Close Report (sorry about that)... The added bonus is that now the Live Wall papers will show through which is pretty cool.  It turns out that I was doing too much work and in most cases if your doing too much work then your doing it wrong.

I still don't know what the problem is with some people and the music button.  It tries to find the default first and then if it can't it should display a list to choose from.  I'm planning on putting an option in the settings for the user to choose which one they want to use.  I'm hoping that speeds things up a little and reduces some of the problems (or at least helps me find the source of the problem.

Launch Bar Pro:  I've learned a lot since I started programming for the Android OS six months ago.  Some of that has been slowly working it's way into the Launch Bar.  I was able to reduce the amount of work it was doing and therefore made the loading and scrolling features a lot faster.

Launch Bar:  The big thing that I'm excited about is that you can now unlock the Pro version from the basic version buy purchasing it though PayPal for $1 USD.  What's nice is that if you are running both versions, you can unlock the free version and basically be running two different Pro widgets!

I don't think I'm going to get rich off of any of my applications, but any extra scratch helps at the end of the month!

Looking forward, I 'm probably going to change out the weather icons for the Clock in the near future.  I talked about a menu option of the musing and I think I'm going to get picasa support for the slide show / backgrounds.

Until then...

Thursday, December 23, 2010

Update, update, update...

If you've download Desk Clock Plus, you've probably noticed the steady stream of updates.  I've gotten into the habit of checking the error reports on a daily basis to see what's going on and really try to resolve the problems as they've come in.  Most of which have been pretty minor after my major programmer fail when I first launched the program about two weeks ago. However, some of them were kind of odd...

One was a crash report that was extremely cryptic and after some googleing, I found a line to Daniel Lew's Coding Thoughts regarding the problem that I was having.  There seems to be a bug with the view flipper (a control that I'm using in the slide show and to flip back grounds) and when the phone gets rotated.  The fix was pretty minor and I think it's working... If you are using the slide show and it stops advancing the images shoot me an email cause that's the bug I want to see if I can recreate it locally...

The other bug that I'm happy to have fixed is with loading the images for the slide show.  Since we are dealing with a phone and some memory limitation large images would crash on load.  Previously, I would just skip the image, but I found a really awesome android dev blog called Android-er.  In this post, he explains how to use the BitmapFactory options object to load large images.

Lastly, I finally got the PayPal donation system working... so, if you feel generous, you can toss a buck or two into the development tip jar! 

And of course

Thursday, December 16, 2010

Announcing Desk Clock Plus

I put the Launch Bar widget aside for a while (OK, last post was over two months ago) and I started to address another issue that I having with the OS.  I have the Motorola Droid, I also have the Multimedia Dock which I use at work.  I find it very convent to have the time and weather right in front of me.  The stock Clock program has this very annoying (in my opinion) of going to a screen saver mode after 3 minutes or so.  The back ground goes black the time color changes to green and the time moves around after minute or so.  I don't get to see my background, I don't get to see the weather and the kicker to it is there's no settings to change this behavior.

So, I took on what became known as Desk Clock Plus as my next project.  For the most part, I'm pretty happy with it.  I've got a bunch of features that I'm happy with (Silent on dock being one of my favorites).  The rotating backgrounds I feel is a nice feature and of course the selling point that I think most people with the dock will be happy with is the ability to set the damned screen saver time out... to OFF.

This being said, I did have a programmer epic fail yesterday after the initial publish.  I uploaded the APK to the market at 12:30ish and by 1:00 I had 3 force close reports and 1 email (thanks for that!).  Turns out that Java still hates me and that I apparently don't understand how recursion works with Java.  So, some quick code reorganization and it looks like it fixed the problem.  All of this came about because I didn't uninstall the application first or clear the settings.  Very bad, stupid programmer...

I do have another change for that, but I forgot to include it in the last push, it's not a big deal so that will have to wait.

Finally, in regards to the price of this application, even though I did code 90% of it from scratch (I did use the stock alarm system as I didn't want to take the time to figure it out on my own... yes I got lazy).  With that and the fact that it's really just a clock, it's a free application.  I do have a donate option that's disabled for now, once PayPal gets back to me and approves my app request I'll make the changes and enable it. It also amazes me that in 24 hours I have ~350 downloads with 150 active installs.  Launch Bar (free) is up to 4117 downloads! 

I do have some other good ideas for the app planned, but I'm not sure how long it will be until I get to them.  I think I want to go back to the Launch Bar widget and implement some of the things that I learned from the Desk Clock and make that guy a little faster.

Thursday, October 14, 2010

Scolling widget... sort of

The paid version of the Launch Bar was just updated. The new feature is that the widget "scrolls". Well, fake scrolls... I run the Launcher Pro home replacement app and it supports scrolling widgets however, it looks like the scroll can only be vertical. The launch bar is of course horizontal and as far as I know you can't make a horizontal scrolling widget. The reasoning is pretty simple, the left / right swipe motion is reserved by the system to change home screens. So my original idea of using the gallery and a nice smooth horizontally scrolling widget went out the window. Although, this was probably for the best as the design change allowed me to add more than 7 icons and not require a special home replacement (although I highly recommend Launcher Pro).

So, here's how it works. There is now a 'Mode' button that will give you 4 choices:
  • Classic - This is the Launch Bar that we've come to know and love. Seven customizable buttons
  • Arrows - When this is selected, you see two gray arrows that will allow you to scroll one icon left or right in the list. It's a continuous loop, so when you get to your last icon, the list will start over. I cut the number of icons down to 6 when the phone is in portrait mode. This was for sizing / usability reasons. You can also double tap the arrow to jump seven icons at a time.*
  • Scroll Bar - When selected, you will see an orange bar below your icons. You can touch that bar at any point to jump to that part of the list. Sadly, you can't slide your finger over the bar to scroll (you can't have a true slide bar as the left / right slide is reserved for the changing of screens).
  • Mixed - When the phone is in portrait mode it will use the Scroll Bar mode. When the phone is landscape it will use Arrow mode. This came about just because of how widgets are sized differently in portrait vs landscape. It gives you the best of both worlds in my opinion.
I'm sure that there will be other minor changes here and there as oddities are noticed, but I think that's the majority of the major enhancements for now. Although, if a reasonable enhancement request comes in I'll be more than happy to put it in.

Monday, September 13, 2010

Finally....

It's been a while since I was able to update both of the applications (a month or more for Pro and 3+ weeks for basic). I was busy trying to re-organize the code so that it would be easier to update both applications. In some cases I would have to make the same change in four places for some of the common code... bad bad programmer! I consolidated a bunch of stuff and probably need to consolidate some more with the new direct dial feature. Plus the birth of my second child put a damper on things... ;-)

New for the custom button on the basic version and all of the buttons on the pro, when you long press the item in the configuration screen you will be prompted for a "Button Type", either Application or Direct Dial. The application will operate as normal. The direct dial will list all of the phone numbers in your contacts and the picture associated to that number. Long pressing one of the phone numbers will set that button, allowing you to call your favorite person(s) with just one touch.

Next up, scrollable widget!