My Writings. My Thoughts.

v2.5 – Change your Oil application

// December 17th, 2011 // No Comments » // Change your Oil, Windows Phone 7

After getting reviewed by WP7 for the Change your Oil application, I noticed my downloads spiked to about 500!  That is pretty good for this app, considering over the last few months the needle hadn’t been moving much on it.  But as a result of the downloads I got some more feed back to make the app better.  So I thought 2.5 would be a decent upgrade, I didn’t expect it to be a major one.

After looking at the interface, I realized that the user had to do several clicks back and forth to get to different screens.  The first update I made was to remove the “Item Entry” screen (which was the main navigation screen) and move all of the relating items into the “Vehicle Information” screen.  This made sense as all of those sub screens that get opened belong to the vehicle you are currently on.  This change basically removed much of the back and forth between screens.  Plus when you hit save on the “Vehicle Information” screen it saves your data at that time (another requested item)!

The second upgrade I made was to add a “Repair Detail” screen.  This allows you to capture information about repairs that your vehicle may incur.  You now have Repair Date, Repair Name, Repair Description and Repair Cost.  This is a simple screen much like the “Oil Info” and “Misc. Info” screens.

The third upgrade I made was to show the repairs recorded in the “History” screen.  Now you can see all past Oil Changes and past Repairs.

The fourth upgrade was to the code itself.  The application has been built over time and the code had gotten a little disorganized.  So I cleaned it up!  Now this may not sound like a big deal, but trust me it is.  In the process I found some functionality that wasn’t working correctly, so I fixed those issues to make the app that much better!

The fifth upgrade was to allow you put in previous oil change dates (requested item).  So, if you know that you just got your oil changed last week, but for whatever reason you didn’t use the app to track it, you can now manually put in the previous date.  The same functionality is also true for repairs.

The final upgrade for this version is the introduction of graphs!  This screen is ONLY available for paid users.  If you are in trial mode,  you will not see this screen.   Basically, this screen takes the price points for your Oil Changes and your Repairs and puts them in a nice graph.  The more data collected the more information that these graphs can contain.

Here are the updated Screen Shots:

 

Device Expired! You need to re-register

// December 11th, 2011 // No Comments » // Windows Phone 7

I was recently trying to “side-load” my app so I can test certain functionality and I learned that even though I had re-certified as a WP7 developer (I re-paid the $99), that my device registration had still expired.  I was getting the error message “developer device locked”.   To re-register your device is pretty easy, all you have to do is:

  • Go to: https://windowsphone.create.msdn.com/app
  • Click on your user name (top right corner)
  • Click on the “Devices” menu item
  • Click on the “Remove” link for the expired device
  • Re-register your phone using Windows Phone Developer Registration tool

It is pretty easy to do, but not knowing that they didn’t automatically re-register my device took about 30 minutes of trying to side-load the application over and over again (as well as a touch of frustration).  So if you can’t side-load your app, you might want to check to see if your registration has expired.

Change your Oil Application v.2.2 is out!

// November 13th, 2011 // No Comments » // Change your Oil, Windows Phone 7

After I introduced a buggy version 2.1 of the application version 2.2 is finally out.  Everyone should of gotten the notification in the market place by now (I got mine yesterday).  I apologize for the bug, hopefully it didn’t cause too many issues.

Version 2.2:

www.windowsphone.com/en-US/apps/b8871783-38f6-df11-9264-00237de2db9e

Version 2.1 and 2.2 included some bug fixes and a new License Plate text box.  So now, when you go to the Oil Change garage and they ask you for the license plate information, it is on your phone.  Version 2.2 is the most stable version yet.  This weekend I updated this app again to version 2.3!  More on that after the application gets certified and pushed out to everyone.  But I will say that it has some cool features that I can finally add because of the Mango update.

If you like this app, please give it a positive rating in the market place!

 

Change your Oil v2.1 is out! but…

// November 9th, 2011 // No Comments » // Change your Oil, Windows Phone 7

It has been a while since I released a new version of any of the apps, but I did so in the Change your Oil app just last week.  Unfortunately the update released a couple of bugs.  I have since corrected those bugs and re-released  the app for certification.  Hopefully if all goes well everyone should be getting an update pretty soon.

I’m looking to make this app even better.  So if you have suggestions please let me know below.

Connect Phone Users to a web site

// June 23rd, 2011 // No Comments » // GODSurfer:Prayers, wp7

The question that I recently had, is how do I connect my collection of Smart Phone Users from my GODSurfer:Prayers app to my GODSurfer.com site.  Right now in order to interact with the website you need an entry in the “user” table on GODSurfer.com.  Once you log in and are verified your user information gets carried to everything you do (i.e. displays your name on the site as well as when it posts to Facebook and Twitter).  However, when I created the GODSurfer:Prayers app what I did was make a generic user entry and created a path that only the phone uses to submit prayers.  When a Smart Phone User submitted a prayer it displays the generic user name of “SmartPhoneUser”.

This solution works and would continue to work in the future, but the app has been downloaded over 1700 times.  So it would be nice if there was a way to connect those users to the site.  I would need to explain to the phone users the reason why they would want to link to the site.  Basically it would allow them to access the site from the phone just like they would if they were on their computer at home (once those features get released on the app).  Once they linked their phone to the site, the prayers would state their user name instead of “SmartPhoneUser”.

Now I haven’t seen a good way of doing this yet.  I like to keep things real simple and then build up from there if needed.  So my idea is to create a section on the app that explains the benefits of creating a user account on the site with a button that opens a browser and takes them to a section of the site that only mobile users would have access to and pass a unique id to the page and then allow the users to add their profile information.

Microsoft allows developers to capture a UniquePhoneId by using DeviceExtendedProperties and UserExtendedProperties.  However, Microsoft also puts a labels on your app in the MarketPlace stating that this “application requires access to the device identity”. Right now the since the user base of WP7 is smaller than that of Andriod and Apple having warning labels on your apps is never a good thing.  Nick Harris wrote a blog post about how to get this unique id but recommends only doing so if the application absolutely needs it.  So after thinking that I didn’t want to scare any of my users away, I decided to see if there were other alternatives out there.  I asked this question on StackOverFlow. User kanchirk suggested that I create a GUID and use that as my unique id.  I get all the benefits of a unique number but without any warning labels on my app.

In order to put this into motion I have to make a few modifications to my “user” table.  For argument sake this is a modified version of the “user” table in its current form:

  • userId int
  • userName varchar(50)
  • userEmail varchar(100)
  • JanRainId varchar(500)

I’m using an app called JanRain that allows users to login to my site from different networks.  This way I don’t have to have username and password information.  It was my attempt at trying to tap into the Social Network market.  I have had mixed results with Social Networks but the code works well and it does what I need it to.  Using this code I get an ID value and either a userName or a userEmail.

Now I was looking at the GUID that I was creating and storing for later use (it only saves 1 GUID to the app).

spacer

As you can tell that is a big string of data.  My other goal is to allow them to create an account on the site from the phone, but also allow them to use that account if they ever access the site from their computer.  Sure I could have them open the application and display this number that they could enter in, but that isn’t very user friendly.  What I’m going to do is pass this value to a textbox on the mobile page and also display the following fields:

  • user name
  • user e-mail
  • user pin

So now the “user” table will look something like this:

  • userId int
  • userName varchar(50)
  • userEmail varchar(100)
  • userPIN int
  • JanRainId varchar(500)
  • mobileId varchar(50)

So now they will have a userName and userPIN combination to log into the site with if they log in using a computer.  If they are accessing the site via the application I will just pass the GUID that is stored.  I believe that this solution will work as it creates the all important userId that allows me to bring the application user out of the “SmartPhoneUser” tag as well as allowing me to expand the application further so I can bring even more users to the GODSurfer.com site.

 

Speed and Time Calculator

// June 2nd, 2011 // No Comments » // Speed & Time Calculator, wp7

OK here is my 5th app that I just released. This one is really simple. It calculates the time it would take a various speeds to travel a distance that you specify. For example if you enter in a distance of 625 miles, the app loops through how long that trip would take from 35 mph to 85mph. It also does this calculation in kilometers!

This is a free app. I decided to play with the ADControl with this one. It will be interesting to compare to see which apps do better (pay per download or ad supported)… Stay tuned for that. Here is the link to download this app for the Windows Phone 7: bit.ly/lNb2FM

spacer
spacer

Calculating time at different speeds!


spacer

Calculating time at different speeds in kilometers!


spacer

Windows Phone 7 Easy Custom Controls

// March 19th, 2011 // No Comments » // Code Example, wp7

I found myself writing a lot of code that was similar in nature for textbox controls. Basically I wanted a textbox that had an inputscope of number and a GotFocus event. I know it isn’t that much code but I began to wonder on my 7th textbox if maybe I should create a custom control so they all behaved the same and I wouldn’t have to do so much typing…

I did some quick searches and found the following links that I used fairly heavily in creating my control:

  • www.windowsphonegeek.com/articles/WP7-WatermarkedTextBox-custom-control
  • www.windowsphonegeek.com/articles/Creating-a-WP7-Custom-Control-in-7-Steps

The info here really got me started and basically, here are the steps:

  1. Create a Windows Phone Class Library.  In my setup it was under the Installed Templates->Silverlight for Windows Phone->Windows Phone Class Library
  2. Create a class.  I called mine genericTextbox
  3. Create a folder called Themes and then create a calls called generic.  Rename the calls to be generic.xaml.
  4. In generic.xaml set the property of the file change the “Build Action” property to “Content”
  5. In generic.xaml write the following:
    <ResourceDictionary
    xmlns="schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="schemas.microsoft.com/winfx/2006/xaml"
    xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
    xmlns:local="clr-namespace:wp7CustomControlsLibrary">
    <Style TargetType="local:genericTextbox">
    <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
    <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
    <Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/>
    <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
    <Setter Property="BorderBrush" Value="{StaticResource PhoneTextBoxBrush}"/>
    <Setter Property="SelectionBackground" Value="{StaticResource PhoneAccentBrush}"/>
    <Setter Property="SelectionForeground" Value="{StaticResource PhoneTextBoxSelectionForegroundBrush}"/>
    <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
    <Setter Property="Padding" Value="2"/>
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="local:genericTextbox">
    <Grid>
    <Border x:Name="EnabledBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="{StaticResource PhoneTouchTargetOverhang}">
    <Grid>
    <ContentControl x:Name="ContentElement" BorderThickness="0" HorizontalContentAlignment="Stretch" Margin="{StaticResource PhoneTextBoxInnerMargin}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch"/>
    </Grid>
    </Border>
    </Grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>
    </ResourceDictionary>
    
  6. In the code behind to the genericTextbox class write the following:
    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    
    namespace wp7CustomControlsLibrary
    {
        public class genericTextbox : TextBox
        {
    
                public override void OnApplyTemplate()
                {
                    base.OnApplyTemplate();
                    GotFocus +=new RoutedEventHandler(OnTextboxInputWordGotFocus);
                }
    
                public void OnTextboxInputWordGotFocus(object sender, RoutedEventArgs e)
                {
                    TextBox txtbox = sender as TextBox;
    
                    if (txtbox.Text.Trim().Length > 0)
                    {
                        txtbox.SelectionStart = 0;
                        txtbox.SelectionLength = txtbox.Text.Length;
                    }
                }
    
        }
    }
    
  7. Then all you have to do is build the Windows Phone Class Library, then add a reference of the library to your application project and add the following code to your page(s) that you want to have the control displayed in:
    xmlns:local="clr-namespace:wp7CustomControlsLibrary;assembly=wp7CustomControlsLibrary">
    <local:genericTextbox></local:genericTextbox>
    

That is it… Actually pretty easy. I created a genericNumericTextbox as well that has an inputscope of Number. Compare step 6 and see the inputScope code below:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace wp7CustomControlsLibrary
{
    public class genericNumericTextbox : TextBox
    {

        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            GotFocus += new RoutedEventHandler(OnTextboxInputWordGotFocus);

            this.InputScope = new System.Windows.Input.InputScope()
            {
                Names = { new InputScopeName() { NameValue = InputScopeNameValue.Number } }
            };

        }

        public void OnTextboxInputWordGotFocus(object sender, RoutedEventArgs e)
        {
            TextBox txtbox = sender as TextBox;

            if (txtbox.Text.Trim().Length > 0)
            {
                txtbox.SelectionStart = 0;
                txtbox.SelectionLength = txtbox.Text.Length;
            }
        }
    }
}

PillBox v1.3

// February 18th, 2011 // No Comments » // PillBox

The PillBox app is something based out of necessity for someone that is caring for a person taking a lot of medications.  I created this app as I watched my Mom carry around a list of medications that my Grandmother takes.  She is constantly on the phone with my grandmothers doctor or facility where she is living.  This app basically replaces that piece of paper as well as removes the need for her to constantly look up her Doctors and Pharmacy information (Name and Number).  Everything is contained at her fingertips in this app.

So, if  someone you care for is taking a lot of pills on a long term basis, the PillBox is a good app to have on your phone.

spacer spacer spacer spacer spacer spacer

Portion Tracker

// December 16th, 2010 // No Comments » // Windows Phone 7

I am pleased to introduce my latest application for the Windows 7 phone.  The Portion Tracker!

All fitness and lifestyle experts agree that if you want to lose weight, the way to do it is through DIET and Exercise. There are tons of diets, but the ones that work and the easiest to follow all deal with portion control. This app was inspired by the P90X nutrition guide. However, you can fully customize any program you want.

With this app you can create unlimited amount of programs and update them daily. No longer do you need a notebook to track what you ate. You just open this app amd check off the type of food you ate and you are done! Easy and descrete, no one needs to know you are on a diet.

spacer spacer spacer spacer spacer spacer spacer

Check your Oil Application v1.8

// November 22nd, 2010 // 2 Comments » // Windows Phone 7

I’m excited to announce the Check your Oil Application for Windows Phone 7!

Version 1.8 is out and I wanted to update this post to show some of the changes that have been made to the application.  First with 1.8 you can now receive live tile notifications.  Meaning if you change the oil in your car and hit the “Changed Oil Button” that information gets recorded along with the reminder settings you have (found in your notes screen).  When that month occurs you will get a notification letting you know that one of your cars in your garage needs an oil change.

With the Check your Oil Application you can now know exactly when to change your oil or take it into the shop.  You can manage up to unlimited vehicles and store critical information about your different vehicles.  This application lets you know what vehicles need maintenance based off of Date and or Distance calculations.

In the Garage Screen this is where you name your vehicles.  When you press the Add New Button a “New” item show up in your list (towards the bottom).  If you click on one of your vehicles listed the Details screen will show up.  Here you can update the Name of your vehicle as well as enter in a Year, Mi/Km information.  To save this information click on the Update Info button.  Also notice the Add Notes button.  This will take you to the Notes Screen.  More on that in a bit…

On the Details screen you will notice the Date of Last Oil Change label.  This label keeps track of the last time you pressed the Oil Changed button.  When that button is pressed the Mi/Km value also gets updated.  I should also note that when you press this button it will update the Sticker screen and it will add the amount of months found on the Notes screen (reminder settings).  So please only press that button if you have actually changed your oil.

As mentioned above, the Notes screen is next…  On this screen you can enter in Oil Filter # and Air Filter #, type of Oil and Quantity of Oil needed for the oil change as well as change the settings on how often you want to be reminded (i.e. Months).  You can also change the Reminder Miles Setting but that is really only used for the Sticker screen.  When you are finished updating on this screen, press the Update Info button.

Here are some screen shots below:

Dashboard Screen – Add and Display your vehicles:

spacer spacer spacer spacer spacer spacer

Detail Screen:

Create your own Sticker and keep extra notes about each vehicle!

Now with History!

spacer

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.