Sunday, September 16, 2012

Moving Code to Github and what I have been working on

I posted this over on my arduino blog but never posted anything here. I have begun moving my code to github. I have 6 repositories up there now, most are Android. Majority of my work has been on my Budget app (also my web page - on github too) and my new version of MyMeasurements. I originally posted to my arduino blog as I expected to port my arduino code first but it does seem that android has been where I have been spending my time.

I threw the budget app together as a way to practice my LAMP design/development skills. The android app is very simple. It is basically a webview and a menu for loading pages. The cool thing is that I made the sites all configurable so if we change anything about our servers in the future, we can just change the preferences instead of having to recompile and upload.

MyMeasurements is my second Android app, and it is getting an upgrade. Not only am I implementing more features from my wish list, but I have also been using the ideas from those who emailed/commented on the apps initial version. I am also giving it much better compatibility across versions. I am not targeting anything older than 2.1 but since my tablet is running Jelly Bean, I do get to test it through the current(4.1) release. I have had very little free time lately but I have been able to post at least a minor update almost every day over the last week. I want to have my 2.0 version posted to the market in the next two weeks.

It feels good to get something up here again. I should have a follow up here very soon.

Friday, November 4, 2011

An Alarm Clock Update(v1.5) went out to the Market tonight

I finally got around to a few fixes that this app had been waiting for. I did some layout clean up and fixed a significant feature oversight.

I am not the best UI designer and the xml layouts for android are a little strange for me to wrap my head around sometimes. I am still working out the kinks for how best to display my layouts. This iteration is a slight improvement on the last build. The snooze screen is the best improvement. The radio buttons are spread out and dynamically centered. This should resolve the complaints over the buttons being too close or too hard to hit.

The feature oversight I had was regarding the alarm after a reboot of the device. The widget and app would present as if the alarm was active and set for the time it was before the reboot. If you disabled and re-enabled the alarm you were fine, but it took me a few missed alarms until I figured out the pattern. Now there is a boot up receiver that sets the alarm accordingly on boot up. Now the only way to miss an alarm should be to have the device powered off over the alarm time.

Hope those with this app installed enjoy the improvements

Tuesday, June 28, 2011

Quick Update Before Vacation

Well, technically, vacation started today, but since most of the day was spent taking care of other necessary items and a lot of home searching, I figured why not throw a little coding in as well. I updated my most recent app, MyCallReminder, today. I added a couple new items as well as did some clean up and re-labeling.

As my last post said, this app is for a buddy of mine. Once I had the initial build put together, I quickly got some feedback on some tweaks that would be beneficial. There weren't many and each idea seemed like a good idea so I immediately got to work stubbing out the placeholders for the additional code.

After reviewing the ideas a few times, I was able to work off a very short list. Initially, my list was only to add 2 additional reminders as well as possibly throw the word "Sales" into the mix somewhere. The reminders were very straight forward, in terms of the request. Working "Sales" in though was only a side comment and not really one specifically requested for this update. However, after more testing and playing around with the app myself, I came up with a short bug list and a couple places where readability improvements could be made. Finally, my list was comprised of only a few items:
1. Re-Label everything to include the word "Sales" (Except the App name on the Android Market).
2. Add leading 0's to all date/time text strings where necessary(Days and Minutes)
3. Manage the data entry keyboard when entering a phone number (Should show the numeric keyboard)
4. Add 2 additional reminders with static offsets.

Items 1,2 and 3 were relatively quick fixes. I pretty much found every place where I was using "MyCallReminder" or "My Call Reminder" and added the word "Sales" before "Call" to resolve the labeling issue. For the leading 0's, a little extra code was added to check for Day and Minute values that were less than 10 and added a preceding '0' to the text displays of the alarms. (This only affected the user's readability of the date/time values). Finally, I located the property on the TextView object to force the value to be a Phone Number. This causes the Android OS to appropriately display the numeric keyboard when the user clicks on the Phone Number TextView for data entry.

The fourth item, adding 2 additional reminders, turned out to be a little harder than I originally anticipated. I should have known better; Things are always problematic when working with Dates/Times. In the initial release, there wasn't much code around the date/time of the reminder. Any conversion from text<=>date was done at a single spot in the code and was only for retrieving reminders from the app's local database. This change brought the requirement of managing the date/time to the main activity and was no longer as relevant as part of the data helper class. I needed to convert my date/time values into a type that allowed me to add either days (in 1,2 or 3 week increments) or months (in 1,2,3,6 or 12 month increments). Thanks to the Simple Date Format I was able to get there and without much issue. At first, I attempted to use a straight "Date" object, but found it to be very limiting in Java. I then used the Simple Date Format to get a Calendar Object, assuming the format string I previously decided to work with, and then used the Date Object to populate the Calendar Object. The Calendar object was then used to add either days/months to the date for the other reminders.

I was able to do some testing and between screwing with my phone's date/time settings as well as using the logcat output, I was able to verify the functionality enough. I am suspect there are still a couple bugs, but am waiting for more feedback before moving forward anymore. As I stated originally, I am on vacation so I am not sure if I will get my code cleaned/posted this/next week or not. I am trying to stay off the computer as much as possible. My mind continues to identify other areas of improvements so I may end up adding some new features/tweaks before I get anything posted, but we will have to see. I have a lot of family time planned and am really looking forward to disconnecting from the digital world for a couple weeks.

Sunday, June 19, 2011

My Call Reminder

I have put together a quick proof of concept app for a buddy of mine. He was looking for a simple reminder application that would include some minimal information and a phone number. When the reminder occurs, the user can then call the person directly from the application.

I have attached screen shots below of the application with some test information entered. The link to download the app is at https://market.android.com/details?id=DonnOSystems.Sales&feature=search_result

Basically, I expanded on my existing alarm clock application (the reminder) and stored each reminder in a database by ID. When a reminder is cleared, it is deleted from the database. I also start up a small activity that runs when the OS is booted so that the alarms in the database are created again as they don't persist between boots.

There isn't much to the application at this point. There are a couple improvements that could be done. I left this one ad free for the time being. I will probably get ads put in very soon though. Beyond ads, I figure there could be a list of configured reminders for editing them or deleting one as opposed to just removing all if a mistake is made. I think it would be valuable to build a data export/import as well since that will almost definitely  be necessary at some point in the future if this app lasts.



Sunday, April 3, 2011

Minor update

Well I didn't get anything done last night. I pretty much spent the whole night fighting eclipse. I updated a few things and had a heck of a time getting the IDE to open my project and build it. Eventually, I got it functional again, but just in time to call it a night and go to bed.

Tonight, I did get a little bit done and resolved my layout issues I was having with my app since I've switched to my EVO. Things were not scrolling correctly as they did on my Moment.

I have a picture below that shows the screen scrolled and you can even see the scroll bar on the right. It's a quick screenshot from my phone, but I wanted to get some kind of update posted.

Now I just have too find the time to implement the other functionality I want to.
Until then.....