June 24, 2013

expense tracker - part 8

Here is my app now.  No more ugly huge add button!

I finally decided to go with the pivot app.  It makes it a lot easier to navigate around, and it's a lot clearer now how to toggle between views.  I wasn't able to implement this using pure MVVM because the app bar is being annoying but it's close enough.

The running tally is semi-bold.  I didn't know that existed!  It kind of looked weird the way it was, but turning it bold made the text really aggressive.  Semi-bold was a nice compromise.

Now what I am working on:
Yes I legit did spend $11 on cupcakes
last week.  The rest is made up

Each row is actually a button, with a child element StackPanel.  The StackPanel contains three TextBoxes - one for the name, one for the dollar sign, one for the amount.  I did it this way so the user can just click on the button to edit the fields.  I haven't implemented the edit functionality yet, but when using this app I've already found myself needing one.  Now I have to clear all values and enter everything again if I want to remove from a single field, which gets annoying.  Plus having them all be buttons is cool because clicking on each row turns the text white.  And you'll notice the Running Tally row is grayed out, I couldn't think of any uses why the user would want to edit the Running Tally field as it depends on the values of every other field so I disabled the IsEnabled property.  I rather like the way it looks - it's kind of telling you "Go away don't touch me" so you know it'll just ignore you if you try to bother it.

I know the two columns kind of look odd.  I wanted to dynamically bind the widths so that each field is on its respective extreme end but my app resisted very much and I decided to move on to other things.  Maybe I'll understand Silverlight enough later on to implement that, I think right now the number field will take up to six digits (allows for up to the thousands place, accounting for cents).  Any more than that and it'll wrap around to the next line.  It looks horrendous, but that's what the user gets for spending too much money.

After I add the edit functionality this app should be pretty much done.  My friend suggested adding dates, and with my pseudo-MVVM pattern it shouldn't be too hard to add a date field.  I was also thinking that it might be convenient to let the user choose whether the app should be cleared the first of each month, or if they want to manually clear the values themselves.  That shouldn't be too hard either - it's a nice little extra feature.