Wednesday, June 23, 2010

WP7 Suggestions

Today at Remix I had the opportunity to play for the first time with a WP7 device (it was an LG flashed with a build from last week that includes the XBOX Live hub) . The device looks nice and pretty responsive.

Playing with the LG there are some suggestions that came me to mind and that could be implemented (improvements from my point of view):

  • In the call answer menu in the current build there is a big image and two small buttons (Answer and Deny I think) . There is a lot of space for more functionality. One would be the ability to deny a call using an SMS message (I am using it every day on my Omnia 2)

  • This one I've already posted on the WP7 forum. It is important for developers to receive error reporting from applications that they've posted on Marketplace (of course ask the phone user if he agrees to send that error). It would be a feature that would make WP7 Marketplace unique and more attractive.

  • At this moment (from what I've understood) silverlight applications can only intercept the Back button. It is important to be able to intercept/use also the Search button (I saw that this functionality is currently implemented into Marketplace). This way the developer doesn't have to put another button on the UI.


WP7 Device Request

What better time to blog than during a conference (I am attending ReMIX in Milano). As every Windows Mobile developer out there I would love to have a test device before the official launch. So when I read the post of Brandon Watson about the availability of developer devices in July I've "spammed" him with a message on Facebook and he put me in contact with Microsoft Italia. Today I had the pleasure to talk with Lorenzo Barbieri which told me that it will be difficult (almost impossible) to have a test device without an application proposal that really requires a device (because in Italy there will not be many devices available and there are some "big names" in the queue to which Microsoft wants to "push" the new device to). Of course I started processing to find something that would justify a developer device. The bad thing is that all our end-user applications rely on "features" that are missing from the initial release of WP7: Wasabi (used internally by Maybelline Italia, Mediaset, Samsung, L'Oreal developed for DP&V) uses Sql Ce with replication so is definitely out, our s.f.a. solutions (Neomobile, Memo) are using printing so without socket they are also out (I have to look at HP WebPrinter which might be a solution for this part). The good thing is that I could finish (or at least make it usable) the Sqlite library for WP7 (my second post on the blog). I will definitely need a device to test :) this way I don't risk to develop/optimize something that isn't usable on a real device.

Hope my proposal qualifies


Sunday, June 20, 2010

WP7 Marketplace Limit download size over 3G

I was looking at the Teched sessions and one of the aspects that cut my interest was the limit for application download using 3G network (maximum 20MB). It's a choice that Apple made and from my experience with the end user they are loosing clients for some applications. For example A friend of mine that owns an iPhone, uses it, loves it but is not able to connect it to a PC via iTunes. It's not said that somebody that will own a WP7 will also know how to connect it to a PC (it's a sad reality but it's like this). A lot of people will buy a "trendy" phone but don't know how to use a PC, or more are not interested in connecting the phone to the pc.
Another scenario would be that I am in a town, don't have a car navigator but I need to arrive in some place in town and I don't have an internet connection besides the one my WP7. In this case I would happily pay 40Euro to download TomTom with Italy map and I would wait 5-10 minutes to download it (download size around 400MB).
So why "block" the user buy applications that they are interested/need it? The price in Italy for unlimited data traffic it's really small (Tim Italy offers unlimited unlimited data transfer from for just 2 Euro/week but only from the phone)? Ericsson declared that the world wide data traffic over the cellular network surpassed the voice traffic.
If battery it's a problem wait for the user to connect the power plug. I personally would prefer not to power up my pc, connect the phone and download the application especially if it doesn't matter if I download using 3G or ADSL. You are also cutting off the users that don't have internet at home but have the latest phone on the market in their pockets and those are the users for which the price doesn't really matter.

The only reason I can think of is if the voice provider Vodafone, T-Mobile is imposing a maximum download size (it would be strange, but also in that case I cannot believe that all the providers have the same conditions).

So my way would be WARN THE USER but if he agrees DON'T LIMIT HIM


Tuesday, June 15, 2010

WP7 Multilanguage App Proof Of Concept

For quite a while I wanted to write this post but always the same problem NO TIME. There is nothing innovative, but it's something that you might need/use in your apps. As you know I am romanian, I live in Italy and I usually develop in english :). So we usually add multilingual support to our solutions. The way we did it in previous version of Windows Mobile(Phone) is using xml files. I've implemented this mechanism slightly changed for WP7. I've added xml language files as resources to the solution. Each xml file has a tag which gives us the culture.
language name="English" culture="en-US"
I use it to set CurrentCulture and CurrentCultureUI of the current thread (it's just a proof of concept that can be improved).
Inside the language tag we have all the classes (xaml pages) with the various controls and properties that need to be set :

class name="MainPage" Title="Main Page"
control name="textBlockPageTitle" Text="MY APPLICATION"
Obviously it's easier to look at the code than to explain it. I also use a singleton class to share the XDoc, loaded from the xaml language, between various pages of the project and also to "translate" the pages.

There are still some problems with the ApplicationBar as there is no way to get a reference to the MenuItem using the name (when you debug the property doesn't even exist). I think it's a problem/missing feauture of the CTP. The solution I've adopted is to add a control name that doesn't exist on the page "AppBarMenuItem" that has 2 attributes Index and Text. This way I use the index to set the text of the MenuItem

control name="AppBarMenuItem" Index="1" Text="First"

The sample attached to this post is a project with 2 pages. If you need more details or you think it's useful please let me know