Created my first Windows Phone app
After getting a Lumia 900 last week, I decided to write an app for myself. One of the complaint that I had is that I need a minimum 4 taps to dial a number from a contact list, something I would like to avoid when I am driving. I can pin a few my most frequently used numbers to a tile; from there I can dial them with 2 taps. I set out to write an app and hope I can dial 30-40 number in 2 taps. The hear is the idea:
- I group my phone number in groups, such as family, friends, colleagues, etc.
- I display the groups using the panorama control and phone numbers within each list in a list control.
- I need a tap from the tile to start the application. I may or may not need a swipe to get to a contact. I do another tap to dial the phone number.
It turned out that I need another tap after I tap the phone number. The reason is that the PhoneCallTask does not trust me; it prompted me to confirm if I really wanted to dial the number. I hope Microsoft can make this a policy that can be granted when the application is installed.
I am an experienced WPF and Silverlight developer. This is my first Windows Phone app. I hoped I can write this app is a couple of hours, but it turned out that I spent almost a whole day to learn unique features in Windows Phone. The WindowsPhoneGeek.com site is immensely helpful. So here are a list of things that I learnt through this simple app:
- Panorama control and data binding to panorama control.
- Windows Phone Toolkit ContextMenu control and reference the tapped item from the context menu click handler.
- Application bar icon button and menu.
- WP7 navigation framework and pass an object from a page to another page.
- WP7 built-in theme resources.
- PhoneNumberChooserTask and PhoneCallTask.
- WP7 application and page events.
- WP7 icons, application icon, background icon, marketplace icon.
- WP7 Isolated Storage.
These appear to be minimum to get started with an app. I was able to deploy my app to my phone. I cannot deploy to my app to marketplace yet. That is because I unlocked my phone with my employer’s account but I could not possibly release my app to the marketplace using my my employers account. I either have to pay $99 to get my own account, or release my source code to make arrangement to have someone else release the app for me.
[Edited 5/3/2012 to add some pictures]
Experimenting with Visual Studio 11 Beta
Windows 8 is coming soon. You need Visual Studio 11 beta to develop Windows 8 applications. That said, Visual Studio 11 also offers many new features even if you do not specifically program for Windows 8:
- .NET Framework 4.5
- ASP.NET 4.5
- ASP.NET MVC 4
What is the best way to start experimenting with Visual Studio 11 Beta? .Net Framework 4.5 is a highly compatible in-place update of .Net Framework 4.0. If you uninstall .Net Framework 4.5 beta, you will have to reinstall .Net Framework 4.0. For this reason, I would suggest you not to experiment with Visual Studio 11 beta on your main work machine. Fortunately, there is a way that allows you to experiment with Visual Studio 11 with satisfactory performance without a spare machine.
If your operating system is Windows 7, you can dual-boot your machine off a VHD. You secondary OS will resides in a VHD so it will not mess up your primary OS, yet your machine will boot from the VHD natively so the performance is much better than running a virtual machine. In my case, I installed a copy of Windows 8 consumer preview on VHD by following this blog. I then install Visual Studio 11 Beta on top of it. I then get a Windows 8 Preview/Visual Studio 11 Beta combo that I can experiment with. The performance is only slightly (let’s say 10%) worse than a dedicated machine. I can still access the files in my native file system. Is there inconvenience in dual boot? The inconvenience can be managed if you rearrange your data to live in the cloud.
5 days after getting a Nokia Lumia 900
My experience has been very pleasant so far. This Windows Phone is always very responsive and stable. I also like the idea of charging through mini USB connector rather than a flimsy proprietary connector. My primary focus this week is to be able to dial a contact quickly. The other focus is to find a list of apps both for usage and fun.
Clean up the contact list
Windows phone requires me to use a Windows Live account (a Hotmail account, in my case) as a cloud account. The phone maintains bi-directional automatic sync with my Hotmail. When I add other accounts such as GMail and Facebook to my phone, and import the contacts from my old phone, Windows Phone synced them all to my Hotmail contact. The result is that my contact list is flooded with over 400 contacts, many of them are duplicates. So my first task is to clean up the list. Fortunately, it is fairly easy to combine contacts in Hotmail. I was able to get it down to about 100.
Windows phone does not automatically sync Hotmail categories as group. I had to create several groups on the phone and add contacts to groups. Windows phone also allow me to link contacts for phone/email to my Facebook and Linked-in contacts. The result is that I have a much more organized list now and is easier to navigate through groups. However, it still requires a minimum of 4 clicks to dial a number through the contact list.
Apps, Apps and Apps
Many journal articles claim that Windows Phone has far less apps than iPhone and Android. This is not a big concern to me as long as I can find enough good apps. Currently, there are a bout 80,000 apps for Windows Phone. I need only 20-30 good apps. So here is a list of apps that I downloaded this week:
- Adobe Reader.
- Facebook and Twitter: these are actually written by Microsoft, nothing fancy but do the job.
- Nokia Drive, Nokia Maps and Nokia Transit: these are from Nokia collection.
- Translator: This from Microsoft, actually quite powerful and fun to use.
- Unit Convert: A simple utility from Microsoft.
- CNN and ESPN: these are actually written by Nokia.
- Level and the Unite game: these are from Microsoft demonstrating gyro sensors. Pretty fun.
- Nokia Creative Studio: An Instagram-like app created by Nokia that makes me wonder how possibly Instagram worthed $1 billion.
- Endomondo Sports Track: Use the GSP to track my walking statistics.
- Mobile Magnifier: I could not find one as good as the iPhone equivalent that I saw. I hope someone will create a better one.
Lastly, I have a problem that cannot be solved by an app. I would like to block some spamming phone numbers. Windows Phone does not allow me to do that. I cannot find an app because Windows Phone does not have an API to do that. Samsung has implemented in hardware in some Windows Phones. For now, I just have to hit the volume key to reject a call.
Bought a Nokia Lumia 900
I am sick of my Samsung Galaxy. I considered it as a half-done project with beta software. I saw a fantastic deal for Lumia 900 on Amazon Wireless for $49. In addition, Nokia is offering a $100 instant rebate to make up for a post-launch bug by April 21. The phone is currently ranked #1 on Amazon wireless and has a incredible customer rating. So I decided to give it a try.
The phone arrived 2 days later. The construction and screen of the phone looks really nice. When I set the date/time of the clock, I really like the very large number and how it scrolls. The phone feels more responsive than Galaxy. However, I have also found a few places that could be polished:
- Outlook setup. The small company that I work with uses a self-sign certificate on the Exchange server. The Outlook in WP7 does not have an option for me to ignore the certificate error warning. So it took me a couple of hours to figure out how to access our Exchange server. Basically, I use browser to visit the Outlook Web Access. I will see the certificate warning in my Internet Explorer. From there, I bring up the property page, click “Certificates”, then Details and click “Copy to File…”. I export the certificate as a .p7b file and then email to my hotmail account. I open the email in my phone, and then open the .p7b attachment and installed the certificate. I was able to access our Exchange server from then on. I think an option to skip certificate error could be nice.
- Marketplace: In the search results, there isn’t any indication whether an application is already installed.
- Contacts: The phone imported by Hotmail contacts. I also imported the contact list from my old phone using the Contact Transfer application under Nokia collection. When I tried to dial the phone, both email and phone contacts show up. I think the phone can certainly filter out the contacts that do not have phone number. Right now it seems there are too many contacts. I am going to try the grouping feature try to group the contacts.
So much for my first day of experience with Lumia 900. Lastly, I would like to share this very useful article that I found: