Unlimited Possibilities through Code
This will not come as a big surprise to many, but I think maybe my reason why is a little different than most. Microsoft is missing that gateway device for kids that are too young to get a PC or a Windows Phone. Something like the iPod, iPad or Google Android tablet device.
This is usually a birthday or Christmas present, and they almost immediately switch all present requests to gift cards for their new ecosystem. Of course kids don’t call it that, they don’t know they have just made a major decision point in tech for their future. They just thought it was cool they had the same device as their friends.
Most of these devices are bought (rather then rented per the current US cell phone market model), so that makes them unique. Many parents are price sensitive to giving an 8 year old a piece of technology.
In my kids own classes during middle school the device of choice was the iPod. These kids would literally spend $100’s in gift cards on music, movies, TV and apps. Now normally you would think that is just what kids do, they spend money on short term thing like that. But now the bigger decision comes when they hit about 13 and go to get their first cell phone.
This was an amazing read for me. Not because of the writing, but because of the subject. I was a middle school kid at the time Karateka came and I played the game on my Commodore 64, and was instantly mesmerized by the game and its effect it had on people. The story was good, but it was the first game that actually had a cinematic feel for the play. You felt like you were part of a movie. Now this was a kid version of me, but I was in awe. My friends and I would play for hours and talk about how the animation was created.
I started writing games as a result of playing this one. I never achieved his level of success, but did have quite a few published while I was in high school. I even went on to work at a game company and made a few PC and console games in the mid 90’s.
This is a collection of his personal journal during the time he built Karateka. It is raw and a little scattered. I went through all those same ups and downs as a kid (sort of still do as an adult!). It was refreshing to me to see something that I took to be an act of utter perfection was actually a labor of love for someone who struggled with it's creation.
It was also a little scary to read wondering if he was going to flunk out of Yale. I knew a lot of geeks when I was in college who ditched a lot of classes to work on projects, but few of them ever actually finished what they were working on. So it is sort of amazing that Jordan was able to complete what he started, I think it was as much do to his parents encouragement as his own tenacity.
Refreshing read to see that others in the same field had a similar start and rough road. It is too easy to look back at your finished products and think it was obvious that is what was going to happen from the start. Every project I have ever worked on goes through a similar path of finding the right deliverable. You never start with a clean idea from the beginning and proceed to the end. This was a fun geeky read. Would have enjoyed hearing some of his coding travails as well, but this was very satisfying for a geek like me.
If you also know Jordan’s name he was the creator of Price of Persia and has published a journal about the creation of Prince of Persia.
Found this great post about the game itself from another gamer.
Love Is a Backwards Kick: The Romance of Karateka
Had totally forgotten about that backward kick.
The game in the Karateka Classic Game in original 8 bit glory is available on iOS and Android. I played through the Android version today, brought back a lot of memories. Took me WEEKS to complete when I was a kid. Having the rewind in the Android version saved a lot of time.
I have had a long love afair with LINQPad. I started using it when I was building data queries for VistaDB. I would use LINQPad to compare my code against SQL Server. It was so much easier than using SSMS for quick code comparisons. Take a look at my previous post about using LINQPad to help you learn LINQ.
There is a new Book from Packt publishing specifically about LINQPad entitled Building Interactive Queries with LINQPad.
I am just starting it today, but will post a follow up article with a review of the book.
I am a HUGE fan of having analytics in all your apps. Not only for the basics of how many people are using your app, trapping errors, etc. But also so you can tell what features they are using and decide where to spend your time working. I have been using Flurry for my Windows 8 apps so far and I wanted write a quick post about the latest SDK release.
I used MarkedUp.com for all of my Windows 8 apps. The basic functions to track number of users and get back crash dumps are so easy to add you will kick yourself for not doing it sooner. First thing a lot of people ask about is pricing, and the good news is that MarkedUp is free for up to 1 million data points a month. After that the cost is $99 a month per each additional million data points.
First go look at the MarkedUp Getting Started page. I had my first app running with the basics with less than 10 minutes of work (seriously!).
You will get some really nice high level reports like the one below for my Disney Backgrounds app for Windows 8.
By going just a little further you can get a lot more out of the service. I spent time adding tracking for in-app purchase displays, for both when a user buys and when they cancel.
private async void RemoveAds(object sender, RoutedEventArgs e)
await CurrentApp.RequestProductPurchaseAsync(App.InAppPurchase, false);
MessageDialog dlgThanks = new MessageDialog("Thank you for purchasing!");
MessageDialog dlgDenied = new MessageDialog("Purchase cancelled.");
catch (Exception ex)
MarkedUp.AnalyticClient.Error("Purchase Remove Ads", ex);
This gave me some really great statistics about people canceling their purchase.
Another feature that I recommend is adding custom events for core features within your app. I wanted to know how many times people clicked on the save button rather than the Pin Lockscreen button. By adding the events I could tell that a lot of people were hitting save (maybe because it was first) and then canceling the purchase and leaving the app. I rearranged the buttons and that problem has mostly gone away. I have noticed that now about twice as many people set their lockscreen before leaving the app. It was a simple change and one I probably would not have noticed without the analytics in the app.
To track features you add a small snippet of code like what is shown below. In this example I am tracking how many people click on the MailTo in my about page.
private async void OnMailTo(object sender, RoutedEventArgs args)
var hyperlinkButton = sender as HyperlinkButton;
if (hyperlinkButton != null)
var uri = new Uri("mailto:" + hyperlinkButton.Content);
I know there are other providers out for doing analytics, MarkedUp was recommended to me by a friend and I have never looked back. I use another company for my Windows Phone apps, but I wish MarkedUp had a mobile client so I could switch.
I have another Disney related app published to the store today! This one is very similar to my Disney Backgrounds for Windows Phone 8, but for Windows 8 tablets and desktops.
If you have a Windows 8 PC or tablet please visit the Disney Backgrounds for Windows 8 page to download the app. It is free, and has a lot of very high quality Disney images.
When you first power on your Windows 8 tablet or desktop you see a lock screen similar to the one below.
There is always a clock and date present, but users get to choose what other apps they want to show up on this screen. I have the weather, wifi, battery, and Outlook email count. Many different apps have the ability to be shown on the lock screen background. Pressing any key will slide the image up and allow you to login.
Most people may leave this image at the default Seattle image, but I prefer to put a little Disney in my day.
The application is pretty simple at this point. It shows you the HD quality images that are included by default in a thumbnail style display.
Each thumbnail also shows the image title, and a brief description of the image. Tapping any of the images will show an expanded preview mode.
The application bar (revealed by swiping up or down from the edge of the screen) lets you choose a random image, or pin the current image as your lock screen background image. The left and right arrows walk through the images in order, but you can also just swipe left or right on a touch screen.
All of the 56 included images were taken my myself over the past year. I have a TON more images, but I wanted to keep it simple for this first release. I would love to be able to provide 365 images (one for every day of the year).
I actually spent about 45 days of nights and weekends sorting through images, cropping them to fit a lock screen and just obsessing over the images themselves. That was why I had to stop myself and just ship something. In the future I would like to include images from other photographers.
All of the images are cropped to 2560x1440 which is higher than HF resolution and ensures they look great even on large monitors.
If you like these pictures and would like to see more of my work please visit the Jason Short Flickr Photostream. I already have a Flickr group for Windows Phone Lockscreens, maybe I will add one for Windows 8 as well.
I didn’t have enough time to put the random lock screen code for this initial release. I had set myself a hard date that I would ship the app no matter what state it was in, and I hit that date. So I will add a randomizer that you can just pin to the lock screen and have it automatically rotate images hourly, daily, or weekly.
Another nice feature would be to have the wide tile update to match the current lock screen. Let’s face it, you will see the live tile a lot more than the lock screen in most cases.
Saving the images to your local pictures is another feature that is probably really easy, I just didn’t have enough time.
Additional photo packs, pull from my flickr groups, etc are al things I can think would be nice to add in the future.
I have a new app for the New Year on the Windows 8 App Store!
Disney Facts is a quick fun app for getting random facts about Disney Trivia, parks, movies, characters, quotes, and more.
Download Disney Facts on the Windows Store
Snapped view gives you the ability to have the facts on the side panel while continuing to work. I think I should add a playback mode to change the fact periodically while it is running in this mode, what do you think?
If you are interested in Disney and don’t care about the technical stuff, just use the link above to go get it from the app store. The rest of this article will include some technical information about he implementation of the app.
There a very cool new feature in Windows Phone 8 that allows an app to be the lock screen provider for images (and other things, but I only cared about the image for this app).
I am an avid Disney parks fan, and photography has been a hobby of mine for most of my adult life. I wanted to make a wallpaper app for Windows Phone 7, but you just couldn’t do it with a good user experience. You could save the images to the users photos and then they could go set them as the wallpaper. Not what I wanted.
The app was approved for the store on December 20, go download Disney Backgrounds now.
All that changed with Windows Phone 8! Now from the lock screen settings page you can set an application for the background. That app can then set the wallpaper, and run periodically in the background to update it. This is exactly what I have done for this app. The background agent runs about every 30 minutes (there are not guarantee of exact runtime from the phone). I took a very simple approach in just randomly picking a photo from one of the collections.
I have included two photo collections as a start. One is from Walt Disney World (in Florida), the other is from Disneyland (in California). I have been fortunate enough to get to visit both of the parks in the past year and took some great pictures.
I am working on a lock screen wallpaper app for Windows Phone 8 and had some interesting findings to share with the community at large. The lock screen is customizable in Windows Phone 8 for the first time! You can have custom PP app specified wallpaper, notifications, and icon tiles. See the MSDN Lockscreen Article for more information.
First lets take a quick look at all three of the emulators running at 50% resolution. You will immediately notice the two on the left are larger (duh). They are the new resolutions, with the one on the far right being the WVGA of the WP 7 resolution.
This does complicate things a bit if you have existing apps that you want to look pixel perfect on Windows Phone 8. Your XAML code will just scale and look correct. But if you have images (like a splash screen) that you want to take advantage of all that resolution there is a bit more you need to know.
I started this little experiment for Windows Phone as a test. First, I am a football fan and love to get news on my favorite team. But I wanted to see if a team specific app approach would work with NFL teams. I only did a few of the teams based upon their social network popularity.
This REALLY surprised me. I had previously only built and released apps for free. The total amount I made on those apps was quite disappointing. I was half expecting to only see a few dozen downloads of a trial to paid app after all the information I had read about free app vs paid app downloads. Maybe that is true for games, but in my sports apps the paid got a lot of trial downloads.
949 Trials generated 190 paid users. That is something I did not expect. I made way, way more money from the paid app that I ever would have made from ads running in those apps. If I look at a similar app that is free and has about the same number of sessions for this period (one of my non football apps) I only made $3.65 for that period. Compare that to the $283.10 I made from the NFL apps.
I have been selling apps for mobile devices since the late 90’s and this is the best conversion rate I have ever had. Of course the Windows Marketplace makes that possible. You would never have been able to get 1,000 people to download your trial after finding you in some search engine. I did have good success on Blackberry in the early days, but it all points back to having a store is key. I think this is why app developers on Windows 8 (PCs, not phones) will do so well. Imagine having a market of 400+ million users to find you in the store.
OK, another week has flown by and I wanted to update the app numbers. Mostly because I am dying to know myself how things went, and partly because I have an update for all of my football apps in the marketplace pipeline.
I personally really hate that time between when you have added a new feature and can’t wait for users to get their hands on it, and when it actually happens. For me it seems to be about 8-10 days. There is the 5-7 day app review, and then once you are certified it still takes another 2-3 days before people get the update.
But this is really a small delay, it is just the desire to see users with the latest and greatest that makes the waiting period so hard.
©2010-2012 Jason Short. All Rights Reserved. The opinions expressed herein are my own and do not represent my employer’s views in any way.