Fail or Succeed on your first Windows Phone app


    There isn’t time to learn everything yourself, so learn what worked and what didn’t for other students. Check out some interesting lessons learned both good and bad from other students in these blog posts where students talk about what they learned building for Windows Phone.

    Windows Phone Games

    Windows Phone Apps

  • Go DevMENTAL

    CUSEC rocked


    Last weekend, Microsoft participated in CUSEC, where we talked to students about jobs at Microsoft, Imagine Cup, and developing for Windows Phone. Oscar Guerrero shares his thoughts on the event and some of the resources that were of interest to the students who attended.

    As the recruiters carried back an encyclopaedia's worth of resumes, and our team compared notes on the great conversations we had about developing with Microsoft platforms, we couldn’t help but realize, CUSEC was a great event. Our thanks to the organizers for letting us participate. More importantly, thank you to the students who stopped by our booth to find out more about Imagine Cup and the Developer Movement. We were amazed by how passionate the students are, the brilliant work shown at DemoCamp, and the varied, interesting conversations we had.

    Special thanks to those who tried and eventually succeeded at beating my personal record in Kinect Fruit Ninja!

    We hope you left with a better picture of how much fun it is to work at Microsoft, how good the windows phone platform actually is, and how to get free stuff from us like Xbox, Kinect and Windows Phones. They are only a phone app away!

    Here are the links we mentioned during our talks and tutorial:

    To keep up with what’s happening for Students in Canada:

    For more information and to register for Imagine Cup

    For tools and information about developing for windows phone

    Hope they are of use to you and we expect to see all of your phone apps soon on the Marketplace!

    For those who are thinking of attending next year. It is definitely worth it.

    Hopefully we will see you at CUSEC 2013!

  • Go DevMENTAL

    Winning on the Marketplace: Trial mode–the art of the upsell


    Part 2 of this 5-part blog post series on success strategies in the Windows Phone Marketplace deals with a fairly unique component to the Windows Phone platform called Trial Mode.  If you make use of trial mode in your paid apps and games (and you really, really should if you plan on putting a price on your app/game), then you are making it much more likely that users will download your app and in response to that, make the possibility of them paying for your app much higher as well.

    If your aim is to publish a Windows Phone app or game and charge money for it in the Windows Phone Marketplace, then you really should get to know a nice feature of the platform called Trial Mode.  Trial Mode allows you to publish your app that you charge users to make use of, but gives them a free trial mode of the app so that they can download it and make use of it to determine whether or not they want to purchase it.  And the beautiful thing about Trial Mode is that it means you don’t have to create a second, stripped-down version of your paid app that you have to manage separately from your paid app – both your trial app and paid app are one and the same, with the trial determining how your app will behave.

    While it may seem counter-intuitive to provide a free version of your paid app, consider these statistics that the Windows Phone Marketplace team has published describing the opportunity using trial mode in your apps represents:


    Basically, what this means is that if you implement trial mode in your paid app/game, you will get an average of 70 times the downloads you would have gotten without trial mode and 10% of those trial mode downloaders will actually buy your app/game.  That works out to 7 times the number of paid apps you will have earned than if you hadn’t used trial mode at all.

    So what defines a trial, anyway?

    What do you want it to be?  Seriously, that is the answer – we don’t limit the definition of “trial” to something we say it is.  Basically, we offer an API to query the Marketplace to determine if the user of your app has paid for it or not and you decide the behaviour of your app if the user has not paid for it.  In other words, the trial for your app is whatever you want it to be, including but not limited to scenarios like:

    • Limited functionality for your app if the user is in trial mode for your app
    • Ad-supported (i.e.:  advertisements show up at the bottom of your app) if the app is in trial mode
    • App may be used only x number of times if the app is in trial mode
    • App is time-bombed to not work after y number of days after the first use
    • App only allows z number of transactions in trial mode
    • App makes use of a service you implemented on the server-side only n number of times per day
    • etc.

    OK, so how do you use trial mode?

    There are two scenarios that are covered really well in the MSDN knowledgebase.  The first shows details on how to implement Trial Mode in a Silverlight app.  The second shows how to implement Trial Mode in an XNA-based game.

    If all you want to see is code, I have implemented trial mode in the following Silverlight sample here (a Visual Studio project in a zip file).

    How do you use trial mode effectively?

    As you saw from the code examples above, trial mode is extremely versatile.  Ultimately, it’s your choice as to how you implement a trial in your app or game.  That said, there are a few tips that can make your trial more effective, both for your end goals of having the user buy your app in the end as well as maximize the trial experience for your app’s users so they see the value of the work you have published.  Some of the things we have found are:

    • Don’t give it away:  Put serious thought into what you want to put in your trial.  Be diligent and understand the levers that will entice your user to want to go beyond the trial and pay for your app.
    • Make the trial experience compelling: Just like the advice to not give your app away, don’t limit the functionality or experience of your app so severely that the user can’t get a good understanding of the value the app holds.  Leave them wanting more; don’t leave them frustrated.
    • Use ads in your trial mode: The intent of implementing a trial in your app is to show the user that there is value in paying for your app, because one of the ultimate goals with your app is revenue (otherwise, why have a trial in your app?).  As a result, you should seriously consider monetizing your trial in a non-impactful way to your user through advertisements.  Hey, that way you get paid either way!

    Remember, if your app is a paid app, you want to add a trial.  Given that trials are common in the Windows Phone Marketplace, if you have a paid app with no trial, I can tell you that you are leaving a lot of money on the table as not many users will take the chance on your app.  Just some food for thought.

    This post was the second in a series of five posts on strategies for being successful on the Windows Phone Marketplace.  The first post (publishing in the right geographies) is here.  The third post (pricing strategies), fourth post (differentiation using Windows Phone-specific features like Live Tiles and Push Notifications) and fifth post (how to get promoted in the Windows Phone Marketplace) are upcoming on this blog.

  • Go DevMENTAL

    If I can build a phone app anyone can: Changing the keyboard and IsNumeric


    In todays blog I start coding my app, the first task is having users enter a time for my timer and making sure they enter a number. So I explore adding code to make sure they enter a number, and changing the on screen keyboard to show just numbers.

    Wow I’ve been spending a lot of time learning about the projects, tools, and controls, it’s great that I am finally starting to code! If you missed any earlier posts you can find them here. My application will be a presentation timer that I can use to make sure I don’t talk too long.

    I’ve created a New project of type Windows Phone Application in Visual C# (by the way as I start to code if you can make any of my code more elegant, feel free to leave comments, I am open to suggestions and improvements).

    When I created my project I chose target Windows Phone OS 7.1 (which is the same as 7.5 which is the same as Mango) because at this point most Windows Phone users have Mango and I want to be able to use the latest features.

    Adding validation code

    I need a text box where a user can enter the number of hours, minutes, or seconds for the timer. So I’ll just drag a TextBox control to my page. I change the name of the TextBox to txtHours and set the Text to a value of 1, this will be the default value. When I run the app and click in the TextBox it looks like this.


    I don’t want users entering letters, so I had better add some validation to make sure the users enters numbers in the TextBox and i will add a TextBlock for displaying an error message to the user.

    I create a TextBlock control and name it blkMessage and set the Foreground property to Red and the Text property to an empty string.

    Now I double click on the my TextBox control which takes me to the code page and creates a TextChanged event handler for me. The TextChanged event handler fires whenever a user changes the content of my TextBox, so it literally fires every time you type in a letter or number (that means I don’t want too much code in there because it wouldn’t be great for performance). In my event handler I test to see if the value in the text box is numeric, if it isn’t, I display an error message. If it is a valid value, I clear out the error message. My code looks like this. BUT IsNumeric is a function I had to add myself it is not built in! I got the code for the IsNumeric function from this blog post (thank you Keith Murray)

            private void txtHours_TextChanged(object sender, TextChangedEventArgs e)
                if (!IsNumeric(txtHours.Text))
                    blkMessage.Text = "You must enter numbers only";
                    blkMessage.Text = "";

    Now if a user enters letters or other non numeric values in the field they see an error message like this:


    Changing the on screen keyboard

    That works, but I don’t like the way the keypad comes us as letters as default which could be a bit annoying. With mobile apps you really want the user to have to use the keyboard as little as possible, so every keyboard tap I can save the user is a good thing. In addition, it’s good design to stop someone from entering an invalid value in the first place wherever possible, if I display a numeric keypad I don’t need to worry about someone entering letters and symbols! A quick bing search turns up a blog post that talks about setting the InputScope to get the numeric keyboard. Sounds worth a try. Unfortunately I can’t find a way to set that value in the property page so I am going to have to edit the XAML, and of course the XAML example in the blog post doesn’t work, but a quick search on MSDN for InputScope gives me the correct syntax.

    So I have to open up the XAML pane by clicking on the little arrow button in the corner

    imageThen find the <TextBox …/> called txtHours and add the InputScope attribute and set it to Number (wow I didn’t think I’d be messing in the XAML code this soon! but this really wasn’t that scary)

            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <TextBox InputScope="Number" 

    And now when I run the application in the emulator, check it out: just numbers! Much better for my user!


    So now I just need to replicate that logic for my hours, minutes and seconds textboxes. It’s fun to be starting my application. We’ll see what I learn next. Hope you are making progress with your apps as well. Remember if you publish an application by May 20th, 2012 you can get cool stuff thanks to the developer movement so get coding!

  • Go DevMENTAL

    Winning on the Marketplace: Where in the world are you publishing?


    If you’ve built modern mobile apps, you probably already know that coming up with the idea for the app/game and coding it is really only half the battle.  Success is largely determined in the marketing strategy you adopt for your app.  There are quite a few strategies that you can take and you can likely mix and match them, but there is no one “silver bullet” that will make your app an instant success.  This post is the first in a series of five that will give you an idea of some of the ways you can help your app become a success in the Windows Phone Marketplace.

    toughThere’s a statistic that was published by analytics vendor Localytics that states that only 26% of all mobile apps downloaded are ever opened more than once.  That’s actually a little higher than the numbers I’ve heard around mobile app circles, but still that number is quite astounding.  What it means is that for a myriad of reasons, most users are interested enough to open your app but quickly lose interest and either delete right away or never open it again.  Those odds are not good, so if you intend for your app to be popular, you need to adopt a strategy that will give you an edge and compel your user base to make use of your app more than once.

    There are multiple things you need to do before your app is ready for consumption.  One is to have a great idea (this is pretty much non-negotiable in my opinion).  Second, you need to build it the right way (i.e.:  great functionality, application flow, pleasant interface and intuitive app design). Third, you need to figure out a way for your app to make your users awesome in the moment.  All this before your very first user even thinks of downloading your app. 

    At the same time as building your app, you should be thinking about how you’ll market it once it’s ready.  Over the next 5 days, I’ll be posting an entry per day discussing some of the strategies you can employ to help make your app or game more successful on the Windows Phone Marketplace.

    Making your apps available on as many markets that make sense to support, not ALL markets possible

    The context of this first post is about understanding which geographies you can make your app available in.  Your first answer to “which countries should your app be available in?” might be “All of them, of course!”, but keep in mind a few things.  The correct answer to this question is that you should assess which countries your app will have value to users and how you will be able to support those users with your app.

    For example, there is a fantastic app called “Where’s Timmy?” that RedBit Development created and published that is a consistently popular one in Canada.  While there is nothing that limited Redbit from making the app available in every single market, the purpose of the app is to locate the closest Tim Horton’s coffee shop from your location.  Tim Horton’s is very popular in Canada and growing in popularity in the US, but has no presence in Europe.  As a result, Redbit did not publish the app in European countries but did publish it in Canada and the US.

    Another consideration to take into account is localization.  Making your app available in many markets may require you to support many different languages for your apps.  You must make a judgment call as to which languages you wish to support.  While this adds to the complexity of your app from a maintainability perspective, it enhances the local user’s experience while using the app.  By localizing the content of your app to the appropriate language and culture considerations, you will likely have better adoption and better ratings for your app in the Marketplace.

    Markets Supported by Windows Phone

    So with that said, what markets are currently supported by Windows Phone?  The graphic below shows which markets are supported (countries highlighted in yellow are markets that have been supported since launch in November, 2010 while markets highlighted in green were added just recently).



    Marketplace distribution and targeting the right locales is one of the strategies for being successful in the Windows Phone Marketplace.  Stay tuned for further Marketplace strategies over the next few posts on the Canadian Mobile Developer Connection, where I’ll talk about the trial API, pricing strategies, differentiation using Windows Phone-specific features like Live Tiles and Push Notifications and finally, how you can get promoted in the Windows Phone Marketplace.

    This post is the first in a series of five posts on strategies for being successful on the Windows Phone Marketplace.  The second post (trial mode and the art of the upsell) is here.  The third post (pricing strategies), fourth post (differentiation using Windows Phone-specific features like Live Tiles and Push Notifications) and fifth post (how to get promoted in the Windows Phone Marketplace) are upcoming on this blog.

Page 2 of 5 (25 items) 12345