Categories
Windows Phone

Windows Phone SDK 7.1.1

At MWC today Nokia announced the Lumia 610 which is a lower spec device designed for emerging markets. This is running an updated Windows Phone OS which supports devices with just 256MB of RAM. To enable developers to create apps which support the new lower memory devices Microsoft are releasing an update to the Windows Phone SDK – 7.1.1.

At the moment a CTP has been released so that you can test your applications on a 256MB emulator but you should not install this to your main development machine as it doesn’t have a Go-Live license. To try out the new SDK you can download the CTP here:-

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=28962

There is just one API addition to support this change which is an additional property available from Microsoft.Phone.Info.DeviceExtendedProperties.GetValue – “ApplicationWorkingSetLimit” which will let you know whether you are running on a device with 256MB RAM. If your app/game is sufficiently resource heavy that you don’t feel it will run on such a device you can opt out so that your app/game will not be available on these lower powered devices. This is done by adding the Requirements element to your WMAppManifest.xml:-

<Requirements>
      <Requirement Name=”ID_REQ_MEMORY_90″ />
</Requirements>

The other main difference for these devices is there is no support for Background tasks – either Periodic or ResourceIntensive and attempting to add a background task on one of these devices will throw an InvalidOperationException – so it’s important to to check the capabilities first. Because of this limitation you need to design your app such that it doesn’t rely on a background task and that whatever sync/processing the task normally performs can be done when the app is running in the foreground.

Microsoft have prepared some information on optimising apps for 256MB and it is available here:-

http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx

Some of the suggestions including using the built in launchers and choosers rather than running functionality such as the WebBrowser control or Bing Maps control within your app. They also suggest avoiding using the page transitions provided by the Silverlight Toolkit but don’t suggest an alternative – not sure if this means these devices don’t have the smooth page transitions at all or if they are suggesting that doing them from managed code is too resource intensive. You may decide to implement multiple approaches and use different methods depending on the device capabilities. Obviously the trick here is the balance between providing the best possible experience on each platform and avoiding adding too much more code to maintain.

Categories
Windows Phone

Windows Phone Update due shortly

Microsoft have published details of a new update (7.10.8107.79) which adds a number of fixes to the Mango release. It fixes the issue where the on screen keyboard will randomly hide itself which I’ve been finding frustrating recently and also a fix for the SMS bug which could disable messaging. It also hopefully finally resolves the issue when forwarding Exchange messages where the original message body would disappear. It hasn’t shown up yet but expect it over the next couple of weeks. Full details on all the updates and fixes are published here:-

http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/update-history.aspx

Categories
Windows Phone

Windows Phone 7: Localisation and Windows Phone Features

Anyone who has built an application for Windows Phone 7 in multiple languages will know there are three parts to the process. Within your application you can use managed RESX resource files to provide localised strings. For your application title or the initial text for your Live Tile you must use native resource dlls. Then when you are ready to submit your application to Marketplace you’ll need to provide descriptions, keywords and screenshots tailored for each supported language. At the moment there are six possible languages on the device side:-

  • English (United States)
  • English (United Kingdom)
  • French
  • German
  • Italian
  • Spanish

On Marketplace there are five languages – English (International) is used to cover both variants above. Even if your icon is standard across all languages you still have to submit it with each language as you upload to Marketplace.

There are several ways you can get your text translated, however one thing we noticed from experience is that certain features have established names in these different markets which may not equate to a direct translation from the English. Because the emulator and all retail Windows Phone 7 devices support all six languages you can easily change your device language and see how your application looks.

Feature names

For my future reference (and for yours) I’ve included a table below of some of these which may be useful. As I compile a list of more common words and commands I’ll add them to the table:-

English French German Italian Spanish
Start screen Écran Démarrer Startseite Start Screen Pantalla Inicio
Live Tiles vignettes dynamiques Live-Kacheln riquadri animati ventanas vivas
People Contacts Kontackte Contatti Contactos
Pictures Photos Bilder Foto imagenes
Games Jeux Spiele Giochi Juegos
Marketplace Marketplace Marketplace Marketplace Marketplace
Email E-mail E-Mail E-mail Correo electrónico

 

Common Controls

See also my previous post with localised resources for the Silverlight Toolkit which localises the Date/Time pickers and ToggleButton controls. This also works with the latest February release of the toolkit, simply use this destination folder:-

C:Program Files (x86)Microsoft SDKsWindows Phonev7.0ToolkitFeb11Bin

The exception which proves the rule

Finally another observation which is specific to German. While the UI normally displays pivot headers and toolbar/menu text in lower-case this is not true for German where items should be capitalised.

Categories
Windows Phone

Windows Phone 7: More Tilt Effect

The Silverlight Toolkit for Windows Phone (Latest version is February 2011) contains a Tilt Effect implementation. To add it to your controls requires the addition of an XML namespace definition and one dependency propery set in your page XAML.

<phone:PhoneApplicationPage

…etc…
xmlns:toolkit=”clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit”
toolkit:TiltEffect.IsTiltEnabled=”True”>

 

However the implementation doesn’t apply the effect to all the same places as you will find it in the native application. So far I’ve identified the ListPicker and MenuItems within the ContextMenu control. You can add additional types to receive the Tilt effect and I’ve raised an issue in the CodePlex project so hopefully this will be addressed in the next update. In the meantime you can add the following to your App constructor:-

TiltEffect.TiltableItems.Add(typeof(ListPicker));
TiltEffect.TiltableItems.Add(typeof(MenuItem));

By itself I found that this didn’t actually fix the ContextMenu and the items do not tilt as they do in built in applications. However all is not lost! If you apply the property to each entry in your ContextMenu it does use the feature:-

<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem toolkit:TiltEffect.IsTiltEnabled=”true” Name=”firstMenuItem” Header=”edit” Click=”FirstMenuItem_Click”/>
<toolkit:MenuItem toolkit:TiltEffect.IsTiltEnabled=”true” Name=”secondMenuItem” Header=”delete” Click=”SecondMenuItem_Click” />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>

Once you’ve done this you’ll have a context menu which behaves closer to the built in control. The Silverlight Toolkit is a great resource for additional controls and features which are not present in the Windows Phone 7 SDK. As always I’m eagerly awaiting the next update!