WP7

My Lumia Has Landed

Anyone that knows me personally or has been following this blog for a while knows that I was an early adopter of Windows Phone.  When I first heard about the platform and saw how Microsoft was re-imagining the mobile phone experience I knew which OS my next phone was going to have.  I’ve taken some heat from some friends over my enthusiasm of the fledgling platform but nevertheless I went ahead and got a Samsung Focus the day it was released and haven’t looked back.

Nokia Lumia 900Here we are about a year and a half later and the game has changed.  The highly anticipated (at least among us Windows Phone enthusiasts) Nokia Lumia 900 has been released on AT&T.  Unlike previous Windows Phones though, AT&T seems to be giving this device the respect it deserves with a massive marketing campaign.

Some of the best phones I’ve ever owned have been made by Nokia and being the Windows Phone fanboy that I am, I had to get my hands on one.  Amazingly, I was eligible for an upgrade so I wasn’t going to have to wait very long.  I moseyed over to my favorite AT&T store where Jessica tried to hook me up but they were already SOLD OUT of the cyan model!  She placed an order one for me and a few days later it arrived at my door.  That was about three weeks ago.  So how is it?  How does it compare to the Focus?  Does it live up to the hype?

(more…)

Advertisement

Building Magic Manager

Now that the first version of Magic Manager has been certified and published I wanted to document some of my experiences building the application.  I built Magic Manager partially because I wanted a way to track Magic games without using dice but mostly so I could learn a few technologies I don’t typically get to work with.

This project was full of firsts for me.  Until now I had never built a native application for any mobile platform let alone Windows Phone.  Come to think of it, I’ve never really done much with Silverlight either outside of some minor XAML tweaks.  End-to-end this project was one learning experience after another.

Back-End

The back-end for Magic Manager is pretty simple and I wrote most of that in an evening.  By far the most interesting part in terms of functionality is the command pattern used to track each action in the game.  I’m planning on exposing this piece on a history panel in the next release.

Data Persistence

Stick around.
— Dutch, Predator

A big factor in this decision was that Mango is bringing native SQL CE.

An important part of Windows Phone development is restoring application state when the app resumes.  WP apps can either be suspended or tombstoned which means that we need a way to persist that state.

The most difficult part here wasn’t so much deciding what to store but rather how to store it.  Since v1.0 of Magic Manager is entirely self-contained that left isolated storage as my only option.  I considered using something like Sterling but ultimately decided that a very simple isolated storage based repository around my game class would be good enough for now.

An advantage of the repository is that every time I call its StoreGame method the data is serialized to isolated storage.  By using this approach I managed to avoid many of the concerns of restarting and resuming since the game state is preserved automatically by the repository.

For serialization I used the XmlSerializer.  I considered using the DataContractSerializer but ultimately decided that I preferred XmlSerializer’s opt-in model for this simple application.

User Interface

Thanks my wife and some of friends for putting up with me constantly demoing and asking for feedback on my various UI concepts!

I have to admit that I really struggled building the user interface for Magic Manager.  When I say I struggled building the UI I don’t mean to imply that the actual act of building the UI was difficult but rather that I just suck at UI design.  I’ve lost track of how many variations of the UI I built over the course of the project.

The reason I was able to build and test so many different variations in such a short time is a great example of how easy it is to work with XAML.  I found XAML a joy to work with at least for this app.  My favorite feature without a doubt had to be data binding.  I hate to abuse the phrase but it really “just works.”  My two wishes in the area of data binding on the phone are to have more built-in converters and StringFormat.

MVVM

It’s a crystal. Nothing more. But if you turn it this way and look into it, it will show you your dreams.
— Jareth, Labyrinth

Silverlight on the phone isn’t without its problems though.  Being a such newbie to the technology I needed a bit of help getting started, particularly with the preferred UI pattern – MVVM.  Unfortunately most of the resources I found were for Silverlight 4 or WPF and many examples simply didn’t translate well to the phone.

After reading several more general articles and attending an MVVM talk by Phil Japikse at IndyNDA it finally clicked.  MVVM purists won’t like my approach but ultimately I decided that the easiest thing to do was to make my model classes implement INotifyPropertyChanged and expose them through the ViewModels.  This approach greatly reduced the amount of code I needed to write and let me databind the Views to the ViewModels with minimal effort.

Commanding

Klaatu Barada N… Necktie… Neckturn… Nickel… It’s an “N” word, it’s definitely an “N” word! Klaatu… Barada… N… [coughs]  Okay… that’s it!
— Ash, Army of Darkness

One reason I settled on the event handlers is that Mango will include support for ICommand.  I’ll probably update that portion for greater flexibility.

On a related note, something that really stood out when using MVVM on the phone is the lack of native commanding. As I was learning about the MVVM pattern one constant theme was using commanding (via ICommand) to bind controls to actions but Silverlight on the phone doesn’t support it directly.

I briefly looked at MVVM Light but it seemed like overkill for this app so for now I’ve settled on hooking up the various control events in the codebehind to call a method on my ViewModel.  It’s not ideal but it works.

Navigation

Correction, I need the SUPERIOR information in your INFERIOR brain to fly this… thing.
— Max, Flight of the Navigator

Getting navigation working properly was a bit of a trick.  If I was just building pages with codebehinds I’d have been able to use the page’s NavigationService but I wasn’t – I was using MVVM.  The problem with NavigationService and MVVM is that NavigationService is a property of the page.  I could built my Navigation class with a dependency on the page but I wanted to avoid that as much as possible.

Luckily the PhoneApplicationFrame class also provides navigation methods so all that’s necessary is obtaining a reference to the frame through Application.Current.RootVisual.  Once we have that reference we can call Navigate or GoBack without requiring a reference to the current page.

Backward navigation is pretty simple unless you want to go back more than one page at a time.  Windows Phone maintains a navigation stack that allows us to return to the previous page simply by calling the GoBack method but if we want to go back more than one page we have to do a little extra work.

An early incarnation of the UI had a page two levels deep but I wanted to return the user to the application’s home page.  I’ve since removed most of the code for that scenario since I no longer need it but the work around involved setting a flag variable on the App object and checking that value in the OnNavigatedTo event on each page before calling GoBack again.

Page Layout

PHENOMINAL COSMIC POWERS …itty-bitty-living space
— Genie, Aladdin

The hardest part of developing Magic Manager though was just from the nature of mobile apps.  I was trying to present a bunch of information about game state in a tiny viewing area.  What I learned fairly quickly was that the default controls weren’t going to cut it.  I could either spend a bunch of time building some custom controls or I could look around for some 3rd party controls.

First I looked at the Silverlight Toolkit for Windows Phone but the only thing that it included that would be useful for this app was the WrapPanel.  Hope was not lost though, Telerik’s RadControls for Windows Phone were also available.  I installed the trial and was hooked immediately.

As with so many things in life timing is everything.  When I was looking at the controls they were still available for their introductory price.  As an added bonus, two days after I purchased a license Telerik released an update that included charting!

From the RadControls package I ended up using the DataBoundListBox, ListPicker, NumericUpDown, WrapPanel, and Chart.  Each of these controls greatly expanded my options for page layout yet simplified user interaction in a very intuitive manner.

The control that probably had the largest impact on design was the NumericUpDown control.  Without the control I was more or less forced into using a TextBox and setting its InputScope to Numeric.  At first it sounds like a good solution for getting a numeric TextBox but when you look at the keyboard you see that the InputScope doesn’t actually restrict the keyboard to numbers.  By using NumericUpDown instead I removed all possibility of setting a bad value.

I’m still not completely happy with the status page layout but I think it’s a good start.

Appearance

Hey, Hicks. Man, you look just like I feel.
— Drake, Aliens

A major part of the Windows Phone experience is the unified look and feel of the Metro UI.  I wanted to make Magic Manager feel like it belonged on the platform and I quickly discovered that the easiest way to do that was to make extensive use of the built-in theme resources.

The phone provides a ton of default resources that tie in to the current OS theme.  The resource picker in Visual Studio does a decent job of listing the resources but overall isn’t all that helpful since it doesn’t adequately depict them.  I also found myself working almost exclusively in XAML so it was usually easier to type the resource names than hunt for them in the picker.  Fortunately MSDN has a comprehensive listing and description of the theme resources.

Some of the resources I found most useful were:

  • PhoneAccentBrush
  • PhoneBackgroundBrush
  • PhoneForegroundBrush
  • PhoneBorderBrush
  • PhoneBorderThickness.

¿Hablas Español?

Whoa, lady, I only speak two languages, English and bad English.
— Korben Dallas, The Fifth Element

One final thing that I wanted this first version to include was support for Spanish.  There is no better quote than the one above to summarize my ability with foreign languages so how could I provide a Spanish version?  That’s where having a bilingual spouse comes in handy for software development! [Thanks, Esther!]

Although Esther is fluent in Spanish she’s not a Magic player so she was a bit worried about some of the translations but with the help of the Spanish version of the rules we were able to work through the handful of phrases that she didn’t know.

Supporting multiple languages only requires a little setup work:

  • Add the resource files for each language we want to support.  The default resource file doesn’t need a language identifier in the name but any secondary languages do.
  • Update the project’s Assembly Information to identify the default (neutral) language
  • Manually modify the project file (in a text editor) and list any secondary languages in the SupportedCultures element
  • Expose the resources as a property on a new class so control properties can be bound

When the app runs the runtime will determine the appropriate resources to show based on the phone’s settings.  Testing the Spanish resources was merely a matter of switching the phone’s language over to Spanish and restarting it for the changes to take effect.

Final Thoughts

When Microsoft started promoting Windows Phone one of the key selling points for me was that it was going to be easy for .NET developers to transfer their existing skills to the mobile platform.  After developing an app I feel that for the most part they achieved what they set out to do.

Developing Magic Manager was a fun way to learn some Silverlight and experience developing for a mobile platform but even with such a limited experience to draw from in these areas I was able to be productive in a short amount of time.  I’m really looking forward to the API improvements that Mango will bring and already have some ideas for my next app.

If anyone has any tips or tricks they’d like to share I’d love to hear them.

Download Magic Manager

Download Magic Manager

Magic Manager Now Available

A few days ago I posted that I submitted my first WP7 app, Magic Manager, to the Windows Phone Marketplace.  Late this afternoon I received the email I’ve been anxiously awaiting.  It read:

“Congratulations! Magic Manager has successfully passed certification for Windows Phone Marketplace.”

You can now find Magic Manager in the Marketplace by scanning or clicking the Tag below.  If you play Magic and have a Windows Phone I’d love to hear your feedback.

Download Magic Manager

Happy Gaming!

Magic Manager

I’ve achieved a milestone!  For the past several weeks I’ve been hard at work on my first Windows Phone 7 app.  You may remember that I’d started building a flickr client but stopped when Yahoo! announced that they were working on one that far exceeded anything I’d be able to accomplish on my meager budget of $0.00.

For the longest time I struggled to come up with a replacement idea but then I started playing Magic: The Gathering again with several of my friends from work.  After a few weeks of playing the idea to build a utility to track the game started to develop.

I’m pleased to announce that last night I submitted version 1.0 of Magic Manager to the Marketplace.  Once approved it will be available for download for $0.99.

v1.0 Features:

  • 2 – 8 players
  • Normal mode (20 life)
  • Two-Headed Giant mode (30 life)
  • A graph to quickly visualize game state
  • Life and poison counter tracking
  • Lifelink
  • English and Spanish (thanks Esther!)

Planned Features:

  • Commander mode
  • Dice rolling
  • Game timer
  • Undo actions

Screenshots:

In the coming days I’ll be posting more about my experiences developing this application.  For now though it’s time to rest.

Scrapped

I’ve spent quite a bit of time over the last several weeks working on a Flickr app for Windows Phone 7.  I was getting really close to having something to release to the Marketplace but then last night Flickr announced that they’re releasing an official app for both WP7 and Windows 7.  Immediately after watching the video highlighting the features of the apps I decided to stop working on mine.

I was really happy with how my app was shaping up.  It was interesting to see how many of our design decisions matched up.  We both displayed interesting (explored) images, “my” images, and recent images from contacts in a panorama.  For the photo view page I was using a pivot control with two items.  The first contained details such as the preview image, title, upload date, and description.  The second item was going to list comments.  I was even thinking about including a map for geotagged images.

Ultimately though, I’m just one person and they’re, well… Yahoo!  As nice as my app was turning out I just don’t have the resources to pull off anything near what they’re doing with Azure – mainly a live tile and cloud based state management.  If the official apps work anything like what the video shows when they’re released on January 31 they’ll quickly become my go-to resources for all things flickr.

So even though I won’t be putting a flickr app into the Windows Phone Marketplace the project wasn’t a total wash.  Until starting this project I didn’t really have any opportunity to work with Silverlight.  By extension, I’ve never really done anything with XAML or the MVVM pattern either.  Naturally, this project also taught me a lot about the flickr API since I chose not to use the Flickr.NET library.

Of course, I’ve already paid the developer registration fee so now I need to think of something else to build.  In the meantime though I’ll be looking forward to the release of the official apps.

WP7 Resources

I’ve recently found a few good resources for getting the most out of Windows Phone.  I’ll be adding more as I find additional resources that I like.

WPCentral

Sister site to other established smartphone sites such as androidcentral and TiPb, WPCentral is a great resource for the latest Windows Phone news.

Windows Phone Secrets

Windows Phone Secrets is a listing of tips and tricks for the phone.  This is where I learned how to dismiss the notification bar.

Bing Visual Search

Looking for an app?  Check out Bing’s WP7 app visual search.  To get the most out of the visual search make sure to install Microsoft’s Tag Reader on your phone so once you’ve found what you’re looking for you can scan the tag on the page to install it.

WM Power User

Another Windows Phone news site similar to WP Central.  There’s some overlap but WM Power User has enough unique content to keep it interesting.

Missing Facebook Contacts on Windows Phone 7: Resolved

When I first connected WP7 to Facebook it quickly imported all of my contacts.  Earlier today though I added a friend on Facebook but even after a few hours I couldn’t find her anywhere in the contact list.  I searched both Bing and Google looking for possible solutions.  I even looked through the user guide (*gasp*) but came up empty.  After some fumbling around on the device I finally stumbled upon the solution hidden away in a context menu.

Here’s how I did it:

  1. Open the People Hub
  2. Tap and hold on the “people” heading to open a context menu
  3. Select “settings”
  4. Pan down to the accounts list
  5. Tap and hold on the “Facebook” account to open another context menu
  6. Select “sync”
  7. Wait for the process to complete (the account will be greyed out while it is synchronizing)
  8. Return to the People Hub

Note: As an alternative to options 1 – 3 navigate to Settings –> email & accounts.

This process isn’t limited to Facebook either.  I noticed I had to do the same with some new Exchange contacts as well.  Just remember, if you have some contacts that aren’t showing up you probably need to force the account(s) to sync.

A Few Days with Windows Phone 7

I’ve been using an iPhone 3G for nearly as long as it has been available.  It has served me well over the years but I’ve been wanting something different for a quite some time.  As the end of my 2 year agreement approached I started looking at other smartphones.  Back then there were only a few serious options: iPhone 3GS, a few Android phones, and Blackberry.  For a while I was leaning heavily toward the Nexus One but then I started hearing rumblings about a new phone operating system from Microsoft, one that would replace the much hated Windows Mobile and was going offer a significant departure from the traditional smartphone experience.

The more I heard about this new OS the more interested I became.  Tiles and hubs, social network integration, “smart links”, it all sounded like an obvious evolution.  I decided to put my upgrade on hold and see if Microsoft’s experiment could be a contender in the arena.

As the months passed I attended a few preview events and watched several “first” look videos.  Everything I was seeing was getting me more and more interested.  With the majority of the post-launch reviews I read being largely positive I made the decision to jump to a WP7 enabled phone upon their release.  This past Monday morning I purchased a Samsung Focus.  Now that I’ve had it and used it for a few days was it worth it?  Does it deliver on its promise?

Absolutely.

Now before my friends who were joking about the odds of me giving it a negative review get too excited about being right let me clarify.  I said it was worth the wait and that it delivers on its promise, not that it’s perfect.  WP7 is a first generation release.  With any first generation release there are going to be rough spots.  There are going to be features that seem obvious but are missing.  I got into this fully aware of the shortcomings and I really haven’t found any surprises.

I’m not going to go into any depth about individual features – that’s all available elsewhere and most of the major reviews say pretty much the same things.  Instead I’m going to highlight the pieces that have had the biggest impact on my overall impression of the phone.

On the Surface

The first thing I noticed about the Focus as I lifted it off the display stand is how light it is.  Compared to the iPhone 3G it’s a featherweight.  Some reviewers thought that the device felt plasticy but I haven’t really noticed.

When I woke up the device for the first time the Super-AMOLED display really brought it to life.  It’s bright, it’s crisp, and it’s vibrant.  Just for fun I held it side-by-side with the neighboring HTC Surround and the difference was immediately noticeable.  For a device geared toward multimedia applications the HTC’s display was a big disappointment.

The physical buttons are adequately sized and well placed although I still find myself trying to press the non-existent top sleep button like on the iPhone but I’m adjusting fairly quickly.  I haven’t had much occasion to use the dedicated camera button but it’s definitely a welcome touch as is the LED flash when used from a moderate distance.

There are only two things that I’ve found annoying about the Focus hardware.  First, the power connector is located at the top of the device making it difficult to use when plugged in for charging or syncing.  Second, the lack of a silent mode toggle switch means turning off the ringer takes four button presses.

After three days of usage I’ve found the battery life to be a tad short but still acceptable.  I can generally make it through the work day using around a half charge.  I plug it in on my way home and it lasts the rest of the day pretty easily.  A good overnight charge and it’s ready for the day.  The fact that the battery is user-replaceable is a welcome change from the iPhone.

Generally speaking though there’s very little that makes the hardware stand-out.

It’s What’s on the Inside that Counts

The Windows Phone 7 operating system is what makes this phone interesting.  Being apprehensive about this new OS is completely understandable.  Couple this being a first generation release with the well deserved hatred of Windows Mobile and the quick failure of the doomed from the start Kin and the apprehension about this OS is magnified.  Complaints about missing features or being a bit rough around the edges in some areas is also standard fare for reviewers of the first generation of any brand new system and WP7 is no exception.  After three days of heavy use on the phone I feel that I can say that the apprehension is unnecessary and with a few notable exceptions the “unpolished” areas have hardly been troublesome.

In the time that I’ve had the phone I’ve used most of the features at least a little bit.  I’ve connected to Windows Live, facebook, my work and personal email and calendars, and Xbox Live.  I’ve surfed the Web, I’ve made calls, I’ve sent and received SMS messages, posted status updates, taken a few pictures, played some games, and installed some apps.  About the only thing I haven’t done is played some music.

Now that I’ve exercised nearly everything on the phone in real-world usage I can highlight some of its strengths and weaknesses.  As I mentioned, I don’t want to simply restate what virtually every review has already said but some overlap is inevitable.  I’ll be commenting more on some of the nuances I’ve encountered along the way.

General Platform

The overall feel of the system is incredibly clean and intuitive.  Scrolling, panning, and zooming have all been smooth and snappy but there have been several occasions where the touch screen has treated swipes as taps and taken me into something I didn’t want to go into.  As mildly annoying as this can be the system is fast enough that tapping the back button causes minimal interruption.  That said, I do find myself missing the back button quite regularly but that’s due to me not being used to the button positioning.

Of all of the platform wide controls the keyboard really stands out.  The keys are responsive and the predictive text is both unobtrusive and useful.  The dictionary even includes proper names!  I already find myself typing faster on the focus than I ever did on the iPhone.

As many reviewers have noted one notable feature that’s missing from WP7 is copy and paste.  When I first heard about the feature being cut from the initial release I was baffled.  It seemed like a huge mistake and I knew that reviewers were going to include it in their list of cons but after using the phone for a few days I’ve hardly noticed that it’s not there.  The “smart links” that make the system components work together so seamlessly have almost eliminated the need for it.  I’ll still be happy when it’s added though.

People/Contacts

The People Hub is easily one of the best features of WP7.  I like this feature so much I’ve placed its Live Tile in the upper right corner right next to the messaging tile.  At this time the People Hub integrates contacts from address books, facebook, and Windows Live.  As I added my accounts I found that the software did a really good job of linking the “duplicates” under a common contact.  For those few exceptions where it didn’t link them manually establishing the link is just a matter tapping the Link button and browsing for the contact.

I have several hundred unique contacts across all of my accounts.  Scrolling through all of them on the all panel can be cumbersome but there are three alternatives.  One method is to jump to a letter of the alphabet by clicking one of the letter icons.  We can also tap the search button and start typing.  Both methods are quick and easy.  Frequently accessed contacts can pinned to the start screen for one tap access.

Individual contacts show their aggregated information (determined by linkages) on the profile panel.  This makes it really easy to interact with that person be it through phone call, text, email, or other available methods.  If the contact is linked to a social networking service the profile panel will show their most recent activity and there will also be a what’s new panel that shows the contact’s recent activity across all sites.

Like many others my biggest complaint about the People Hub is the lack of integration with services beyond Windows Live and facebook.  I’d really like to see support added for these, particularly twitter and flickr and I know others want more too.  In fairness though, this really is the first phone to offer this level of integration with any social networking site at all.  The fact that it feels so natural that users are already demanding more speaks volumes.

My other complaint with contacts is that there doesn’t seem to be a way to easily share contacts nor does the phone properly handle any received .vcf files.  My wife tried to send me a .vcf file from her iPhone through both MMS and email.  For MMS the phone said the message contained content that couldn’t be displayed.  The email showed the attachment and opened it as a contact but the only information it contained was the contact’s name.  Hopefully support for .vcf files will be added.  Being able to merge contacts with information contained in a .vcf would be a big plus.

Email/Calendar

The email and calendar support is pretty strong.  I don’t really care about the lack of a unified inbox or message threading though I know some people do.  I would prefer to just have a single mail app that listed my inboxes individually rather than having a separate tile for each one.

Each inbox has panels for viewing all, unread, flagged, and urgent messages.  Composing a new email works as expected.  One stand-out feature is the ability to select an attachment (read: photo) from the new message panel.

The calendar is really well implemented.  The only thing I’ve noticed missing is a week view.  The fact that the agenda is integrated into the lock screen is a huge plus.  The “I’ll be late” button is a nice convenience feature but I haven’t used it yet.

One of the nice subtleties that illustrates the attention to detail is the use of typography rather than icons to distinguish various statuses.  In place of icons to identify unread messages WP7 uses a colored, bold subject line and color coding to identify the source calendar for a calendar item.

Web Browsing

Gone are the days of the mobile version of Internet Explorer.  WP7 comes equipped with a hybrid of Internet Explorer 7 and 8 for a more desktop-like experience.  This version even supports “tabbed” (I use the term loosely because this is still a mobile platform) browsing.  In general the browser works quite well.

By default the browser will display the mobile version of a site if one is available.  This can be changed adjusting the “Website preference” option in the IE settings panel.  I switched mine to prefer the desktop version and have been really happy with the result.  Of the sites I’ve viewed I haven’t noticed any real problems aside from one site that didn’t fully build the contents of a canvas tag.  I was pretty impressed with how well it handled an iframe on another site.

One minor annoyance is that although the browser supports landscape mode the address bar is inaccessible there.  I really haven’t found this to be too troubling but I can see where people that prefer browsing in landscape would find it irritating.

Something slightly more obnoxious is the search.  That’s not to say that the search doesn’t work well because it does – it is Bing after all.  What’s annoying is that entering search criteria into the address bar switches over to the search app to display results and clicking any of the results jumps back to the browser but opens the page in a new tab rather than reusing the original tab.  This leads to a lot of unnecessary tab cleanup.

There is currently no Flash support and although the phone’s development platform is Silverlight the browser doesn’t support it either.  The lack of Flash and Silverlight support is a bit of a disappointment but it’s not the biggest problem.  I’ve been managing just fine without either technology on the 3G for over two years.  The real problem, the one problem with the phone that I actually get angry about, is that the vast majority of videos aren’t accessible from the browser!

Want to watch something on YouTube?  I hope you’re using the mobile site because they won’t work on the desktop version (you can change the URL from “www.youtube.com…” to “m.youtube.com” as a workaround).  Found a site with a Flash video?  You’re out of luck.  To me this is easily the phone’s biggest weak spot and I really home Microsoft addresses it soon.

Marketplace

The marketplace works basically as one would expect.  The fact that apps, games, and music are all available through a single utility is a nice touch.  The try before you buy model is probably the best marketplace feature.  I’ve already downloaded and installed a few things (mostly games) that way.

Of the free apps I’ve already installed:

  • Flickr Manager
  • IMDb
  • Netflix
  • Slacker
  • Twitter
  • WeatherBug

Other sites have already remarked on most of these apps pretty heavily.  I’ll readily admit that I haven’t used most of them all that much yet but there are a few things to highlight.

If you’re a flickr user you’ll immediately start wishing for flickr integration in the Pictures Hub.  Flickr Manager partially integrates into the Pictures Hub as an “extra” so you can upload photos to flickr without having to manually open a separate app first.  When selecting Flickr Manager from the Extras option the app will load and automatically go to the upload screen with the image already selected.  It’s not as tight as a native integration but it’s a step in the right direction.

There are no native weather apps in WP7 so when I saw that WeatherBug already had an app available I thought I’d check it out.  I’m not one that normally cares much about the weather but WeatherBug could change that.  WeatherBug actually has a Live Tile that shows current conditions (sensitive to time of day) and temperature so unlike on the iPhone it’s not always 73 and sunny.

Games

The Games Hub has been one of the most talked about features of Windows Phone 7 for as long as I can remember.  Connecting to Xbox Live was easy but I found it interesting that I needed to download Xbox Live Extras in order to get the full integration.  It seemed odd that the extras pack wasn’t included automatically.

Have a game you find yourself playing frequently but tired of going through the Games Hub?  Long pressing a game tile in the Games Hub will display a menu that allows pinning it to the start page.  Once pinned the tile can be moved around like any other tile.

In the End

After reading so many reviews and watching so many demos I really had a good understanding of what I was getting into.  As a result very few of the “rough” features have surprised me.  Even with the big problems like playing videos from the Web or the combination of smaller annoyances like the lack of a silent toggle switch or lack of integration with services beyond facebook and Windows Live, I’m still incredibly happy with Windows Phone 7.  It’s ease of use is simply incredible.  The common UI and virtually seamless integration of the various components makes jumping between apps transparent.

Overall Windows Phone 7 is a great addition to the smartphone market.  It is already a solid product even in its first generation.  It’s certainly not for every user but it shouldn’t be ruled out as a contender.  I stand by my decision to switch and am looking forward to the first update.

[Update 11/11/2010]

Until this point I’ve only tried connecting my phone to my home WiFi network.  Setup with known networks is quick and easy but what if you need to connect to a network such as an enterprise network that doesn’t broadcast it’s SSID?  Just like with video, you’re out of luck at this time.  Not including support for connecting to hidden networks is a huge miss and will be a show stopper for many users.  Hopefully Microsoft will patch this hole soon.