My experience with the Windows Phone Platform
From the moment I picked up a new Windows Phone (the Nokia Lumia 800) I’ve been in love with it. I actually got mine for free from Microsoft after I had expressed interest in getting a free Windows Phone by becoming a Windows Phone developer from day one. The deal I worked out with my local technology evangelist was that if I could write a Windows Phone app in a two-day period he would give me a free phone. I had done some Android and some iOS development work before, and I knew the pains that came along with them. For my first app I wanted to do something very simple, and over the next couple of days “Simple Windows Phone Notepad” was born. That app was simple: it had a textbox that allowed you to write text and save it to the phone’s isolated storage. At first I thought that mobile development for Windows Phone would be painful and, to be honest, a task I would never want to do. That all changed from that first app. Since that first app, I have had 3 others published in the marketplace, including the one I’ll talk about here.
Where’s My Car? – Inspiration
“Where’s My Car?” was actually my third phone app out of four. I remember very clearly how I was inspired to write this app. Have you ever forgotten where you parked your car after a sporting event, going to the mall, or just wondering around downtown? It happens. And it happens to a lot of people. One day I had walked out of one of the malls in Tampa, and I remember completely forgetting where I had left my car. Mind you, this was a big mall! At the risk of heat stroke and severe dehydration, I stepped forth into the 90º weather to search for my car. Eventually about a half hour later I found my car, discovering it was on the complete opposite end of the mall that I thought it was on.
That’s the moment when the idea popped into my head: “I wonder if I could store the GPS point on my phone and then recall it later!” The old saying developed for the iPhone immediately came to mind: “There’s an app for that!” Well, as it turned out, there was NOT an app for that… at least not at the time. So I drove home, thankful that my car has some of the world’s best A/C, and immediately went to work.
Did I ever hit any “speed bumps” while making this app?
There’s only one way to answer this: “You bet I did!” From the start, this app was challenging. Aside from the certification requirements to get the app published in the marketplace, there were quite a few challenges. One of the more difficult challenges I faced was storing the “car’s” location, which I assume is the phone’s location. Of course I decided to use isolated storage, but you cannot natively store objects by using isolated storage. Meaning, I could not just take the GPS coordinate object and push it into isolated storage. My solution was to develop a helper class which will serialize an object (using JSON) and push that string into isolated storage. It also will desterilize the object and return it.
Another major setback was handling all of the scenarios that my app might encounter. The app uses the phone’s Location Services, which presents all sorts of challenges. The main one I encountered was if the user disables location services while they are using the app. If your app expects to be using Location Services and the user disables it in the middle of running the app, the app will crash. In addition, there are a lot of app certification requirements surrounding location services, such as having to give the user the ability to opt-out of using location services within your app.
Advice for developers
All in all, I would say that developing this app has been a huge success. Numbers aside (650+ downloads with a 4.5 rating) the app was a success simply because of how much I learned about Windows Phone development, and especially because I learned just how easy Windows Phone development is. I would say start simple, and use that simple app to get used to the IDE, SDK, and Framework that you have at hand. The Windows Phone SDK is a very friendly SDK and offers many built-in features so that your life as a developer is very simple. When possible use what’s there. There is no use in reinventing the wheel.
After that simple app, find something that truly inspires you. For me, it was a hot day and being lost in a parking lot. Whatever it is for you, find that app that inspires you to make something, look at what’s out there, and then make your own. Even if there’s a bunch of other apps out there, make your own and publish it. The best thing that the Windows Phone app marketplace can possibly have right now is competition amongst apps.
Lastly, I would recommend learning the advertisement SDK. My apps are all ad-supported. The money made off of the Microsoft advertisements is very minimal, but it’s something more than if it were completely free. In the future, “Where’s My Car” is going to have a paid version (ad-free) and a free version (ad-supported) so that I make money off of it regardless.
A couple of closing remarks…
I actually recently graduated from the University of South Florida and got hired on by Sogeti. We are a HUGE Microsoft Partner, and always trying to play with the latest toys and technologies they have to offer. I didn’t get this job by luck; I got this job by being smart. I don’t have the best GPA, but I did everything right. After I gave them my resume, I followed up with phone calls, emails, and being involved in company activities such as code camps and lectures. The best I can offer for advice is to apply for jobs early. Don’t be discouraged because you don’t have your diploma yet. Apply now. Technology companies are always looking for fresh minds to join them and be inspired to take their company to the next level of success.
Links and stuffYou can find “Where’s My Car” at here or by searching for “Where’s My Car” on the Windows Phone Marketplace. My developer name on the Marketplace is Dig1tal One.
Developing for Windows Phone is 5x Faster than Developing for Android. That is very very very very very very TRUE! Congratulations Matt.
Sometimes the simplest apps make the biggest difference. I've had the "Where's my car" experience too many times to count. Thanks for developing this!