Archive

Author Archive

WP7 Marketplace FAQ: Do my free app submissions reset every year?

January 17th, 2011 Oren 4 comments

Summary

Yes.

Seriously?

Yup, you get 5 free submission credits a year, so every year you could potentially submit another 5 free applications to the marketplace (not to mention the unlimited free updates to existing free applications).

Can I see how many submission credits I have left?

Not at this point, though I hope to see this soon. For now, if you can’t remember where you’re up to, submit a support request and the team will get back to you asap (usually within 24 hours) with an answer.

Is your head spinning with all the free yet?

Categories: Uncategorized Tags:

SL WP7 Toolkit Pro Tip: Set a background on your LongListSelector so that it scrolls correctly

January 16th, 2011 Oren No comments

Got a LongListSelector in your project? Notice that if you try to scroll in blank areas (where the background shows through) it won’t react?

Set:

Background=”{StaticResource PhoneBackgroundBrush}”

or to whatever colour you prefer and all your problems should go away.

Categories: Uncategorized Tags:

WP7 Marketplace Tip #4: Include Contact info in your next app update

January 11th, 2011 Oren No comments

Summary

Make sure that you include the app name, version and technical support contact info within your app (or your next update)

The Fine Print

Section 5.6 says:

An application must include the application name, version information, and technical support contact information that are easily discoverable.

But my app was improved without this?

This was a late introduction into the certification guide (a couple of weeks before launch) so it hasn’t been enforced up till now. That said, it’s now been long enough since release for everyone to be able to have time to add the information so expect to see apps failing if you forget to include this information.

How do I do this?

Well, that’s the easy part, simply include an About page or Contact Us page. For contact you can send them to a forum link:

WebBrowserTask browser = new WebBrowserTask();
browser.URL = "http://somepublisher/forum";
browser.Show();

Or an email address:

EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.To = "Publisher <feedback@publisher.com>";
emailComposeTask.Subject = "Feedback About [Some App]";
emailComposeTask.Body = "";
emailComposeTask.Show();

When using tasks don’t forget to wrap it in a try/catch statement.

Categories: Uncategorized Tags:

WP7 Silverlight Gotcha: Using the ListPicker from the Toolkit may cause you to fail certification

January 9th, 2011 Oren No comments

Applies To: Anyone using the current iteration of the Silverlight Tookit from Nov 2010

Toolkit Link: http://silverlight.codeplex.com/releases

Quick Bits

A Toolkit ListPicker control that has less than 5 items in it will display inline (expands) but will not collapse when you press the back button (like the native control does). This can cause you to fail certification due to an erroneous interpretation of the certification guide.

The Fine Print

According to section 5.2.4c the following applies to the use of the Back Button:

If the current page displays a context menu or a dialog, the pressing of the Back button must close the menu or dialog and cancel the backward navigation to the previous page.

The Setup

You have a ListPicker with less than 5 items in it, using the standard Silverlight Toolkit library.

The Sting

The Toolkit ListPicker doesn’t listen for the back button when the ListPicker is in mini mode (i.e. it doesn’t pop up the full screen list picker), so when you press back normal navigation occurs.

The Solution

There will be an update to the Toolkit coming out sometime this month that will address the issue, but if you want a fix now you basically need to either fix the Toolkit or listen in on the navigation event (and then check if a ListPicker is expanded and if so collapse it). I prefer the first option, since it’s easy and you don’t need to write redundant code if you have heaps of ListPickers.

To this end, you can download a patched ListPicker.cs file (replace this within your Toolkit Source project), or a built Toolkit DLL (unzip and replace your Toolkit installation under C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Toolkit\Nov10\Bin), with one change – the ListPicker will now respect the back button.

Does It Really Matter for Certification?

Actually, no. My reading of the certification guide doesn’t indicate in any way that this is the expected behaviour, not to mention that I (and a bunch of other people) have other apps that were approved with the same control!

So, I fought the good fight, and lodged a support request (complaint) and got the following response:

Dear Oren,

I am sorry for the inconveniences you experienced! It seems that there was a little misunderstanding during certification testing. Dropdown list or list control does not need to be collapsed at Back button press and instead its previous screen can come up or if the back button was pressed from the application’s first page, it can exit the application. Please add a short tester note while submitting it explaining that the list control is not dialog and does not need to be closed.
We will also instruct our test team to correctly apply different expectations for list controls.
Thanks,
Windows Phone Marketplace Certification

I was impressed (I don’t think they even knew I was from within Microsoft)!

Categories: Uncategorized Tags:

WP7 Marketplace Tip #3: Free app updates are free, even if they fail!

January 8th, 2011 Oren No comments

This has finally been clarified by the Marketplace team as the most current, up to date, lore on the subject of free app updates – they’re free, they don’t count towards your 5 free submissions, even if they fail. Here’s the word for word story straight from a Marketplace PM:

Paid Developer (USD$99):

1.     Unlimited number of paid applications.   You cannot change the price on a paid app to be free.

2.     Updates to paid apps that have been published are no charge.

3.     5 submission credits for free apps

4.     Updates to free apps that have been published are no charge.

DreamSpark (free):

1.     Unlimited number of paid applications.   You cannot change the price on a paid app to be free.

2.     Updates to paid apps that have been published are no charge.

3.     5 submission credits for free apps

4.     Updates to free apps that have been published are no charge.

* the failed updates for free apps are not  accounted against the developer quota

What do I do if I get charged for an update to a free app?

Submit a support request via the portal and you should get a response within 24 hours. Feel free to reference this blog post if needed.

Categories: Uncategorized Tags:

WP7 Marketplace Reporting Outage

January 5th, 2011 Oren No comments

Hot on the heels of the previous post (but, unfortunately, not related) the Marketplace team have sent out a notice that there will be a reporting outage affecting Trial and Free download numbers for the next couple of days:

Details:

  • Starting tomorrow (1/6), developers will see a drop in the 12/31 download numbers for their apps – (remember there is a 6-day delay in reporting)
  • This only affects Trial and Free download numbers – no impact to Paid downloads
  • All download numbers prior to 12/31 will continue to be accurate
Categories: Uncategorized Tags:

New Year, New WP7 Marketplace Clarifications

January 5th, 2011 Oren No comments

Check out the final word: http://www.nachmore.com/2011/marketplace-tip-3-free-app-updates-are-free-even-if-they-fail/

I’m starting the year off a couple of days late so there’s plenty to catch up on…

We’ve got some new policy clarifications incoming from the Windows Phone Marketplace team – though as usual there is still some confusion around free apps. For now this is what I have:

Paid Developer (USD$99):

  • Unlimited number of paid applications.
    • You cannot change the price on a paid app to be free.
    • Updates to paid apps that have been published are no charge.
  • 5 submission credits for free apps
    • Updates to free apps that have been published are no charge. (see below)
    • USD$20 for each additional submission
    • Failed app submissions will count against your credits

The same seems to be mirrored for Dreamspark accounts (students with free accounts).
The big “but”

Unfortunately it seems that we’re still ironing out the kinks - In reality I am seeing updates to accepted free apps counting towards the 5 credits and then (once you run out of credits) being charged the $20 fee, even for already accepted apps. I’m still trying to get final word on this, but it seems to be the current policy…

Got any good Marketplace stories to share?

Categories: Uncategorized Tags:

WP7 Silverlight Gotcha: Setting the Source on a MediaElement will stop background music playback

December 2nd, 2010 Oren No comments

Applies To: Silverlight (the restriction applies to XNA, but the MediaElement is only Silverlight)

Quick Bits

Simply setting the Source of a MediaElement to a valid source will stop any current background playback, causing you to fail Marketplace certification, according to section 6.5.1 from the certification guide.

The Fine Print

From the certification guide:

6.5.1  Initial Launch Functionality

When the user is already playing music on the phone when the application is launched, the application must not pause, resume, or stop the active music in the phone MediaQueue by calling the Microsoft.Xna.Framework.Media.MediaPlayer class. If the application plays its own background music or adjusts background music volume, it must ask the user for consent to stop playing/adjust the background music (e.g. message dialog or settings menu).

Note: This requirement does not apply to applications that play sound effects through the Microsoft.Xna.Framework.Audio.SoundEffect class, as sound effects will be mixed with the MediaPlayer. The SoundEffect class should not be used to play background music.

Note: This requirement does not apply to Music + Videos Hub applications that are described in Section 6.4

The Setup

You have a MediaElement which only used to play back one file, so you set the Source in your XAML.

The Sting

The user starts playing some music in Zune, then launches your XAP. As soon as your XAML loads and the MediaElement‘s Source is set, the background music stops playing, even if the MediaElement is not playing. That’s right, even if you set AutoPlay = "False", the background music will still be stopped.

Since you must ask the user for consent, you will have failed certification.

The Solution

  1. Never set a MediaElement‘s Source in XAML, unless that XAML is on a page that you navigate to after asking the user for consent.
  2. Check to see if background music is playing and then set the source (in code).
    Note: If you set the source and then immediately call Play(), the Play() will have no affect since the MediaElement will still be in the "Opening" state, instead set "AutoPlay = true" (works from code)
Categories: Uncategorized Tags:

WP7 Dev Tip: Detecting whether or not the user is playing music in the background

December 1st, 2010 Oren No comments

Applies To: Silverlight & XNA

Quick Bits

Microsoft.Xna.Framework.Media.MediaPlayer.GameHasControl

The Setup

Your app does some sort of music playing that doesn’t make sense to blend into any already playing background music (for example, you’re going to stream your own music) or you simply want to show a video.

Why You Care?

If you just start playing music you will fail certification according to section 6.5.1 of the certification guide if you don’t ask the user if you can stop the background music, but how can you stop the background music if you don’t know it’s playing? Hence, you care!

The Solution

Query Microsoft.Xna.Framework.Media.MediaPlayer.GameHasControl (it’s a bool) – if you have control, then you’re good to go. If you don’t have control, then there is something in the background and you need to prompt the user before continuing.

Silverlight Note: you’ll need to link in Microsoft.Xna.Framework.dll for this to work, but make sure you don’t distribute this file with your XAP by mistake (or you’ll also fail certification for redistributing phone assemblies)

Categories: Uncategorized Tags:

WP7 Gotcha: Showing a Launcher or Chooser will crash while Navigating

November 30th, 2010 Oren No comments

Applies To: Silverlight & XNA (anyone using Launchers / Choosers)

Quick Bits

Always wrap [some launcher object].Show() with a try/catch block which catches InvalidOperationException, since running Show() while navigating (for example, if the user clicks your button multiple times quickly in succession) will cause this Exception to be thrown.

The Setup

You have a button that says “Purchase Me” which launches the Marketplace or one that says “Send Feedback” which launches Outlook to send an email. For example:

EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.To = "feedback@awesomeapps.contoso.com";
emailComposeTask.Subject = "Feedback for AwesomeApp";
emailComposeTask.Show();

The Sting
The user hits the button multiple times, quickly. The app crashes.

The Cause

If you debug this you’ll find that you can’t reproduce this behaviour on the Emulator (at least, I couldn’t) but that it reproduces pretty consistently on the phone.

On the phone you’ll get an InvalidOperationException with the following message:

Navigation is not allowed when the task is not in the foreground. Error: -2147220989

The Solution

There are a couple of solutions – you could remember your state, so that if you clicked the button once and haven’t navigated back yet then you just don’t callShow(). Alternatively you could check if you were currently Navigating, and not call Show(). I personally prefer to wrap the statement in a try/catch block since it’s the easiest to have to worry about and the cost for the try/catch block is minimal (performance wise).

Categories: Uncategorized Tags: