Lets have Windows Phone 7 Dev XMass Drinks in Sydney

Hi there Windows Phone 7 Developers in Sydney Australia,

I thought it would be cool to meet each other in person over some informal XMass drinks. So without any further delay, here are the details:

Event:
WP7Dev XMass Drinks meet and greet

Please indicate your attendance here – http://events.linkedin.com/Windows-Phone-7-Developer-XMass-Drinks/pub/496913

Purpose:
Let’s get together for some XMass Drinks and/or dinner to trade some WP7 Dev stories and demos. Event will be informal, i.e around bar tables, so bring along your device or laptop if you wish to show people what you have been up to.

Date, Time, Location:

6-8pm
Tues 14th Dec 2010
City Hotel,
Corner of King and Kent St, Sydney CBD.

Hope to see you there,

Nick Harris :)

Using TouchPanel for Gestures in Windows Phone 7

The Silverlight for Windows Phone Toolkit has some excellent controls, one of which is the GestureListener which makes implementing gesture support a very straightforward task.   However, as happens from time to time you’re hit with a scenario where you’re unable to depend on any third party content and as such I needed to add my own basic handling for gestures.  This is how you do it:

1. Add reference to Microsoft.Xna.Framework.Input.Touch.dll – Note: you will get a warning here that you can ignore for now.

2. In code behind  the gestures you want to listen for

The Gesture types you can enable are as follows Tap, DoubleTap, Hold, HorizontalDrag, VerticalDrag, FreeDrag, Pinch, Flick, DragComplete, PinchComplete

In my case I only want to deal with Flick, Hold and Tap therefore add the following:
TouchPanel.EnabledGestures = GestureType.Flick | GestureType.Hold | GestureType.Tap;

3. Limiting the scope for the gestures.

I want the gestures to be captured only when performed in a given for a StackPanel.  To do this I handle the ManipulationCompleted event on the StackPanel as follows:

<StackPanel ManipulationCompleted="StackPanel_ManipulationCompleted">

...

</StackPanel>

Note: if you wanted the gesture available to the content of the whole page then you would handle the ManipulationCompleted event of the PhoneApplicationPage.

4. Add handling code as follows

 
private void StackPanel_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
   //Check if touch Gesture is available
   if (TouchPanel.IsGestureAvailable)
   {
      // Read the gesture so that you can handle the gesture type
      GestureSample gesture = TouchPanel.ReadGesture();
      switch (gesture.GestureType)
     {
         case GestureType.Flick:
         case GestureType.Hold:
            ToggleToolbarVisibility();
         break;
         case GestureType.Tap:
            Navigate();
         break;
         default:
            //do something
         break;
      }
   }
}

Enjoy,

Nick

Windows Phone 7 and HTC 7 Mozart Review

I have had a several days to play with my new HTC 7 Mozart  now and I must say overall I am really impressed.  Having taken photos, emailed, used sms, used facebook, downloaded applications, watched video, listened to music, podcasts and the radio,  used the maps app to get directions, used Bing to find content, booked a steak night in my Windows Live Calendar and so much more.

The Hardware (HTC 7 Mozart):

Model – T8679

CPU – 1 GHz

Platform – Windows Phone OS 7

Memory – 512 ROM and 576 RAM

Size and Weight – 119 x 60.2 x 11.9 mm, 130 grams

Display – 3.7-inch touch screen

GPS – Internal GPS antenna

Network

  • HSPA/WCDMA (850/2100 MHz)
  • GSM/GPRS/EDGE (850/900/1800/1900 MHz)

Connectivity

  • Bluetooth 2.1 with A2DP
  • Wi-Fi: IEEE 802.11 b/g/h
  • 3.5 mm stereo audio jack
  • Standard micro-USB

Camera

  • 8 megapixel colour camera with auto focus and Xenon flash
  • 720p HD video recording

1. Face

– note my camera really does not do this Justice :(

2. Back

3. Top

4. Bottom

5. Side

6. Side

So what did I enjoy about my new Windows Phone 7 experience:

Well pretty much everything rocks, I don’t really go anywhere anymore without my phone and its only been 6 days :)

The whole Metro experience is definitely s3xy and slick the WP7 team have really done a fantastic job, if I ever met anyone of you then you would definitely receive a well deserved hug.

Nick + push notifications == love.  At the moment I am just starting to see some  third party apps out there starting to use them.  The build in phone, SMS, email and people tiles are using Live Tiles to bring your Start screen to life keeping  you informed e.g how many emails or SMS you have.  Some applications are also using toast notifications e.g SMS when it comes in and also AlphaJax a turn by turn based game to notify me when its my turn.  No picture could do the Start screen Live Tiles justice.  I would recommend that you check them out in action here for yourself or get your hands on a device to play with.

The People hub == awesome.  I can see whats going on with my Facebook, Windows Live and LinkedIn contacts, thats right I am watching you people, as well as post comment on their status.  You can even Pin some of your contacts to your Start screen and you get a nice Live Tile of that person on there that will show their updates as they come through.

The Pictures Hub and Camera is pretty cool. You can easily setup Zune to sync your pictures bidirectionally between your phone/PC .  Further you can configure your phone to upload the pictures you take to your windows Live Skydrive you can share your pics on facebook.     For those of you a bit hesitant to have photos uploading to Skydrive directly keep in mind that you can configure the uploaded files to be private.  Settings –> Applications pivot –> Pictures and camera — Auto upload to SkyDrive.  When selecting this you it will give you options on how visible you want the photo e.g private, friends, public etc.

Music and Video Hub, using Zune I was able to sync down music from my personal collection buy a Video to watch on the device and also listen to the radio.  Like the people hub you can pin items from here to your start screen as well.

Speech recognition and speech synthesis.  If you press down on your Start button your phone will start listening for your commands.  E.g “Call Adam Harris”, “Open Boom Baby” and if your not in Australia “Find local Pizza”.   You can also set speech to work when in locked mode through Settings –> Speech –> Use Speech when in locked mode.

If your a big fan of gaming you will also love the XBox Live Integration and I also find the Location Map application using Bing Maps is really handy.  One little know feature that i think is a good idea is the Find a Lost phone idea where you can lock your phone, see itslocation and even remote wipe it to see the full list of stuff you can do here check this out

So its been 6 days and I have had a good dig around through the Marketplace Hub, bought several apps and also used Trial mode on a few to see if i liked them.  Her here some of the gems I have found.

Apps:

  • Couch to 5k – This is the first application I purchased.  It is designed to help you move up to running 5km (which I have never been able to do) within 9 weeks. Will let you know how I go
  • Yoink – is a really cool concept you can get stuff free and also give stuff away in your local area straight from your WP7 device
  • Channel 9 – stream Channel  9 content
  • Ted – looking for inspiration then Stream some TED content
  • Facebook
  • BoomBaby – Download if your a developer and after using it if you are thinking whats that about my question to you is – Where were you?

Games:

  • Max and the Magic Marker – Awesome use of a physics engine.  Seriously, download it and test it out in trial mode now.
  • AlphaJax – A cool word game, sort of like comparable scrabble.  You can play a random person or call out for a game to  friends  on facebook or twitter.  The game also has an in application chat feature and is the first game where I have seen push notifications being used.
  • Unite – Uses your phones accelerometer to move balls around obstacles with the goal of uniting them.  Pretty cool actually.
  • RocketRiot – good for a bit of  rocket blasting and jetpack fun
  • Helicopter – first application that I have come across with Ad Content within it.  Still a fun application
  • Krashlander – This was fun also, i liked the design of the control overlay on the screen. I think it will be interesting to see what the new updates to this game will have

Theres a lot more that I could go into that I liked but I could quite literally go on forever.  In fact if you have read this far through I applaud you :), keep going :)

What could be refined and/or improved – in no particular order:

  1. While the phone has many features it seems like some extra cool features are available in the United States but are missing for us Australians :(.  It would be great to see the following features available in Australia or I may just have to move to the United States:
    • Music Purchase directly in phone, or direct on PC, from Zune Marketplace
    • Music “Rental” i.e Zune Pass Marketplace – pay per month listen to as much music as you want and keep 10 at the end of each month.
    • Location and Direction features
      • Support Local Search results  Bing result pivot
      • Support Speech Find command
      • Support Clickable addresses to Maps from emails and websites etc.
  2. When we talk about developers its Developer Developers Developers, when you talk about a large proportion of consumers its not just Video it is also – Music Music Music.  The Music and Video hub is great and Zune helps sync the movies you have purchased through Zune onto the device.  As for music, currently in Australia you are unable to purchase music through Zune Marketplace or directly on the phone.  For many consumers including the one non tech female I tested it on it was something expected as an essential feature.  I assume that Zune Marketplace would open for music sometime in the future within Australia – lets hope its before everyone gets their new shiny device for Christmas – Anyone got any announcements about when this may happen?

  3. Improvements for Map Application that comes out of the box:
    • Enable drag on waypoints within map directions for re-routing.
    • Directions given by voice synthesis when driving
  4. Squeeze some more Battery Life –  I have not had major problems e.g only recharge about every 24hrs and i do listen to the radio, check email, and stream Channel 9 and TED sessions daily.  Here are some further small suggestions that could be made that would enable those who want to make the most of their battery to take it one step further:
    • Vibration feedback on Back, Search and Start button press is not configurable – even when the battery level is critical.  For me personally while the vibration feedback is cool, i would like to be able to turn off the vibrate for these virtual buttons through settings to help conserve battery.
  5. Zune Video Rentals – So this is available in Australia.  Rent for 14days or 24hours after first play.  Cost is about 350 credits – a bit steep…. well come on I don’t have a job :).   As for an improvement with the rentals it would be cool if this too kept up with the always connected user experience.  Example I rented a movie to my Device and then Synchronized the copy of the Video back onto my PC for watching through Zune.  On attempting to watch through Zune it reports – “You have already used the maximum number of licenses for this item”.  So the experience I would expect here is sure the rental rules above apply.  But hey watch 1/2 on the desktop then go catch a train/bus/tram and watch the other half on your phone – This would rock :).
  6. So what movie did I watch – Crazy Heart, was pretty cool and I must say having never been to the US the  landscape in the film is awesome.  And if your not using the HTC HD7 with built in stand, you can improvise with a Windows Phone cap :)
  7. I want the music on here to be available in the ringtones – :)

The Developer Platform:

The developer platform for WP7 is world class and even better its free :) I recommend that you jump in and try it out yourself.  Here is a link to a great starting place for getting your free developer tools – App Hub Downloads

In addition to these I recommend you check out

  1. Azure – I believe Azure is going to be an enabler for many great WP7 applications – got an application idea that needs to scale, process and/or store data in the cloud?
  2. OData SDK for WP7 – Makes easy work of consuming OData feeds.
  3. Sync Framework 4.o October 2010 CTP – enable data sync scenarios for WP7, iPhone, WM, Silverlight and more
  4. Silverlight Toolkit for Windows Phone 7 on Codeplex – a great bunch of controls for the UI.

Summary:

Windows Phone 7  Rocks and is a huge leap forward for both consumers and developers – it is “My Preeeeciouous” (Gollem, Lord of the Rings)

Now back to development :)

Nick

Note: if you want to have a play around on my device please feel free to approach me at http://thesaug.org this Thursday night 25/11/2010.

Tips for a Fast Windows Phone 7 Developer Phone Registration

Steps to register a Windows Phone 7 device:
  1. Open Zune on your PC
  2. Turn on your WP7 device and unlock the screen
  3. Connect your device and ensure Zune can see your WP7 device
  4. Open the Windows Phone Developer Registration Application (All Programs –> Windows Phone Developer Tools –> Windows Phone Developer Registration).  This tool should display a status showing that the phone is ready.
  5. Enter your Windows Live ID and password then click Register
  6. If all goes well you should see a message. Registration successful.

At this stage it should have all worked.  If it didn’t you should read on.

Tips for ensuring successful registration of the phone – Step 6 above:

  1. Prepare for GeoTrust verification early. Get a phone  Phone Bill that is <= 6 months old,  scanned  that shows your name  or Company Name (same as applying in app hub) and your your phone number.  If you don’t have this you will have to get a template letter they provide signed and witnessed by someone like a JP.
  2. Ensure you have a phone plugged in for GeoTrust to call you on :)
  3. You need to have signed up on App Hub.
  4. You need to have gone through the GeoTrust verification process – phone call and bill provided.

So what next, you may find that GeoTrust have called and verified you but the Windows Phone Developer Registration Application still fails. In my case it was with the following error:

Status: Marketplace registration incomplete. Please return to the developer portal for more information. (ErrorCode:0x80043009)

Solution: So it turns out this means that your GeoTrust identity verification is incomplete.  But thats weird right, they just verified you.  You can double check the by logging into your App Hub and going to My Dashboard –> Windows Phone.

If the Publisher identity verification  is not complete you will not see a tick as per below and in its place you will see an Arrow:

So what do you do, particularly in Australia:

The FAQ states to to contact GeoTrust support chat: https://www.geotrust.com/support/chat/order-processing.html

After trying this a number of times I was never able to get through to the chat.  It was always asking which state in the US you are from and also for the order ID.  After entering Aust over a couple of days and having to send an email with a description of the problem I had not heard back.

So I decided to move to Washington for about 30 minutes :), and within seconds I was in a chat.  Apparently the issue was they needed another email address that included my name.  After giving them the extra detail they then said it should be processed by Microsoft within 24hours.  ~3hours later the job was done – fast, Azure worker roles?.   You can check within App Hub by verifying the Publisher identity verification is correct,  You will see a tick as per the following

At this point you should then run through the steps at the top of this article to register your phone.  If that too is successful it the Status in the Windows Phone Developer Registration Application will indicate so.

Hope these tips help save you a couple of days :)

Nick

FREE Event The Sydney Architecture User Group Open Conference Protocol Co-creator Aaron Powell

Open Conference Protocol: Co-creator Aaron Powell discusses what it is, what problems it solves, and how it does it.
Aaron Powell
Thursday 25/11/2010 06:30 PM
Grace Hotel , Kiralee or Pinaroo Function Room77 York stSydney,NSW. 2000

With the growth of internet-enabled mobile devices, conference goers are expecting easy access conference information. Conference organisers are forced to make a decision on how they provide their attendees with this experience. Some conferences develop native applications, such as the MIX iPhone app. Others, such as Web Directions, opt for mobile-enabled websites. This redundant development is costly and often a last-minute exercise. Let’s stop reinventing the wheel. After all, the only reason to reinvent the wheel is to learn more about wheels. The Open Conference Protocol is the plumbing we need to start delivering reusable conference applications across the full spectrum of platforms. Built on top of existing formats, conference organisers now have a documented and agreed format for providing their data to application developers. Now anybody can build their preferred conference experience, for their preferred platform, with easy access to the data. In this presentation, protocol co-creator Aaron Powell will provide the background to the protocol, discuss its implementation and review the API ecosystem evolving around it.

Aaron is an ASP.NET developer with a thing for Content Management Systems and Open Source software. Aaron is one of the core contributors to the Umbraco CMS open source project initially responsible for developing LINQ to Umbraco. As well as contributing to Umbraco he contributes on a number of other open source projects. Most recently he was involved in the Open Conference Protocol.
- Thanks
Note: If anyone wants to have a play with a Windows Phone 7 device i will have mine there, please feel free to grab it and have a play – Nick

Unboxing the HTC 7 Mozart

Being a mobile developer that has targeted windows mobile devices for over 6 years  now I was happy to see Windows Phone 7  announced, delivered and as of last Thursday even happier to have a device I was fortunate enough to win at the PDC replay delivered to my hands by Christian Longstaff.  The device you ask is a HTC 7 Mozart – but first the traditional unboxing.

Wrapping:

The wrapping paper is a personal touch from someone at Microsoft.  Judging by the amount of sticky tape on the sides + back and on my own shocking gift wrapping abilities I would be guessing it was a developer, or new receptionist, that wrapped this :)

Box:

Box Open:

Initial Warning:

To Prevent damage, do not apply excessive pressure to the screen or device case. Please remove the device from your pants pocket before sitting down. For more details, see the Quick Start Guide.

Wasting no time – Initial Power Up:

- Beautiful

After a bit of personalisation:

– More on the pink tiles in my coming Review


Stay tuned, I am working on a Review and it should be up in the next couple of days after I have a chance to dig a bit deeper and play with more apps :)

Nick

How to Create a Custom Pushpin Control Template in Expression Blend for Windows Phone 7 Bing Maps

You may find yourself building a Windows Phone 7 application with the Bing Maps control. When you add the default Pushpin to your map you map you may find that you want a little more, perhaps to establish your brand a bit more or to make the pushpin fit in with the rest of your application. This post details the basics of how to create a Custom Pushpin Control Template in Expression Blend.

Steps are as follows:

  1. Open Visual Studio – yes we are going to start from here :)
  2. File –> New –> Project …
  3. Select Silverlight for Windows Phone then Windows Phone Application.  Name the project CustomPushpin and click Ok.
  4. Right click on your project in Visual Studio and select Open in Expression Blend…
  5. In Blend select the projects tab, Right Click on References and add a Reference to C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Libraries\Silverlight\Microsoft.Phone.Controls.Maps.dll
  6. Select the Assets Tab and type in Map
  7. Drag the Map control onto the page then right click and select Auto Size –> Fill
  8. Set the mode on the map to Aerial
  9. In the Assets Tab drag on a MapItemsControl
  10. In the Assets Tab type inPushpin and Drag two Pushpins onto the Map
  11. In the Properties tab change the color of one Pushpins to red so that it stands out
  12. Select the remaining Pushpin and right click –> select Edit Template –> press Edit a Copy…
  13. In the Create ControlTemplate Resource specify the Name (key) for the resource to be CustomPushpinControlTemplate and press Ok
  14. Crate your custom Pushpin using the blend tools
  15. End Result – yes I am not much of a graphic designer ;)
  16. Note that now when you add new pushpins all you can re-use this template. This can be done through the XAML or on the properties tab in the Miscellaneous group.  Select Template, Local Resource, CustomPushpinTemplate.
  17. Save your blend project and return to Visual studio.  It will prompt you to reload the project.  Click Reload.

Note: rather then having gradient fills, Ellipse etc as your custom template, you could simply add an image to your project and set the image control to that resource in your custom template. Just ensure your build action on the image is Content.

From a developer perspective Blend did make it quite fast to create a custom Pushpin with some nice gradients.    From here i could take the output and start building in my MVVM implementation to add my Pushpins from a service feed or through capturing user clicks.

You can download the output from the blend session here: Full Visual Studio Solution

Enjoy,

Nick