Posts Tagged ‘WP7’

APODViewer7 2.3 released

01 Sep

A new update is available today, version 2.3.  I wanted to get this out earlier this month but the new ad rotator I added ( see previous blog post on multiple ad providers ) was giving me some odd stability issues. It magically corrected itself which was a bit unsettling.  I’m starting to think it was Google AdMob not serving the ads correctly up until recently.  If it starts acting up I can remotely kill the AdMob adds without an update.  The most significant change with this version is the automated slideshow.  You need to see this, its pretty cool just to let the images automatically go through random images you haven’t seen before.  I found myself just letting this run at work and looking at the details of images I found interesting.   On to the new features/changes:

  • Added an automated slideshow option from the main menu.  The slideshow picks random images, downloads them, and then picks a random zoom (1 or .5 vertical scale) and panning path to scan through the image. A menu is available when the screen is pressed.  Menu options are to go to the previous image, skip to the next, view the images details and description, or save to your favorites. As its showing the image, its actively downloading the next one in the background. This slideshow has settings available in the settings page which gives you the option to enable/disable the title bar, enable/disable the lock screen, and set the delay time for each image to either 5, 10, 20, or 30 seconds.
  • Live Tile now has a ‘Titles’ option that overlay’s the images title over the live tile image.  This will only work with the Latest image of the day or the Multi App Latest Image Left tile, for now.
  • Added Vimeo video identification and internal video playing.   Occasionally APOD would feature Vimeo videos.  Previous versions of APODViewer7 just returned an error saying it could not find an image.  Now it will show a video link much like the YouTube videos.  Currently there is no support by Vimeo to to play videos on WP7 in the web browser.  There is an app called Vimeo Viewer for WP7 by Max2 available ( the developer helped me through a Vimeo play problem I had, thanks Maxim! ) but there is no means to directly load Vimeo Viewer with a video from my app.  I implemented an internal Vimeo player to play these videos.  Its somewhat unstable due to how I attempt to load the video, but so far it seems to work well.  There is also a chance this could cease working completely, so I provided an option to attempt to load the vimeo web page in the web browser in hopes Vimeo eventually supports WP7.   As of today this does not work as vimeo does not support HTML5 in both the desktop and WP7 version of Internet Explorer 9.  Vimeo developers do state they are looking into, but its low on their priorities.  I read this they will not address it until WP7 gets significant market share.
  • Added a Random pivot from the main page.  These random images are pulled down from a list on my web server that tracks what random live tile images were shown.  This way if you want to see more detail on the random live tile from the start screen you can go to this pivot to find it quickly and view its details.
  • Added location services support.  This is purely for loading location specific ads for the free and trail versions.  You can enable/disable from the main menu.
  • Corrected YouTube identification on certain days that it was/will be featured.
  • Bug corrected that made the description text size extremely small.  This was only seen on the Mango beta build, but future release builds of Mango would of ran into this.
  • Added crash handling code that asks the user on the next start up to email the exception text to myself.  Hopefully this can help me nail down those rare bugs I cant reproduce in my enviroments.


I plan to take advantage of Mango’s new live tile features, but that may be put on hold until a good portion of the user base has been upgraded to Mango.  Once I update APODViewer7 with Mango features I can no longer update pre-Mango version.  Hopefully carriers will upgrade their user base to Mango ASAP but this is unlikely based on the current pattern of Android and WP7 updates.

No Comments

Posted in WP7


APODViewer7 2.1 released

29 Apr

This is a minor fix to the application that corrected two bugs.  They are:

  • Corrected the first of the month bug.  Previously if executed on the first of the month and the app was set to load the latest month on load, no data would be produced on screen.  The workaround was to go back a month then return
  • The HTML descriptions for the images when referencing links from the APOD site were set as relative links from the APOD server.  When clicked the browser would only show what the link name was.  This was corrected by expanding the link to what server your mirror settings were set to.

Looks like I submitted the APODViewer7Pro’s title incorrectly, it reverted back to the original title.  This will only be noticeable when viewing it in the marketplace.  I’ll be submitting a new update today to correct that.


APOD Viewer Pro and 1.1/1.2 changes

22 Jan

I pumped out three APOD submissions and realized I didn’t blog squat about it!  APOD Viewer Pro was released on Jan 12th.  This was the 1.1 version of the APOD Viewer app with major improvements, some exclusive to the paid version of the app.  I will be maintaining the free version of APOD Viewer at the same time.  The trial version of APOD viewer Pro is identical in capability to the free APOD Viewer.  The trial is unlimited.

Version 1.1 changes are as follows:

  • Using the instead of the official feed. This feed provided the description and image in a better way. The only issue with it is the descriptions sometimes do not come through and it only updates around 9am EST. Description icon will be disabled when descriptions are not loaded.
  • Added Previous/Next buttons to menu bar when viewing images.
  • Thumbnail images will now correct when they did not initially load.
  • Progress bar added to show download percent as it was downloading.
  • Pinch to zoom capability on images. The scale/position resets when switching images.
  • Added description of image with full browser capability within app accessible from the question mark on the menu bar.  This is disabled if there is no description downloaded.
  • Added favorites capability to bookmark your favorite images.  Click the ‘add image to favorites’ from the application bar menu to add the image to the favorites pivot off of the main page.  If saved, you can remove it by selecting ‘remove image from favorites’.
  • Live Tiles! Enabling this will schedule the pinned application tile to update with an image either one time or hourly. Updates occur around one hour after the user has left the application. So if you enter the app every 50 minutes it will never update! Three options to live tiles are:
    • Latest Image – Updates with the latest image from the APOD site.
    • Random Image – Updates with random images every hour. The image itself changes more then once per hour off of my site, but you can only schedule Live Tile changes to be once per hour.
    • User Specified Image – Although selectable from the settings page, you need to use the ‘Use as tile image’ option from the images application bar. Selecting it from the settings page will use either the latest image or the previous user selected image.
  • Paid version features:
    • Removes ads
    • Removes 4 image limit to favorites.
    • Unlocks the 25 image retention limit. Initially set to 100, but is user changeable.
    • Unlocks the Random and User Specified Live Tile capabilities.


Version 1.1 update was only released for the APOD Viewer Pro app.  I then made some additional changes for version 1.2 and updated both APOD Viewer and APOD Viewer Pro with it around Jan 19th.  Version 1.2 changes are:

  • Stability changes.  Images are cached with state storage.  This works fine with the large images as long as you don’t leave the app.  Viewing the browser then coming back to the system sometimes caused it to crash.  I now clear the state storage on exit.  To reduce duplicate downloads, I store the currently viewed image to isolated storage.  This is causing a delay of up to a few seconds, but this should be faster when the next WP7 update gets pushed out next month.
  • Changed how the cached images are loaded. These changes were done to reduce duplicate downloads as much as possible.  If you save all your images to the Picture hub it will never download those images from the internet again (unless connected to Zune desktop).  When viewing images it will now attempt to load the image in the following order:
    1. Temporary buffer (this always clears out when leaving the app)
    2. Pictures hub (will fail if connected to the Zune desktop)
    3. Isolated storage (only stores the last image viewed when leaving the app)
    4. Direct download from web server
  • Changed progress bar colors to have better contrast
  • Fixed ‘Share’ link, was loading as a blank page.
  • Corrected Live Tile scheduling. It appears to have been stacking the schedules with 1.1. This change stops the previous schedule and starts it again when leaving the app. Only noticeable if you changed say from Latest to Random. It would update with the Random, but the Latest schedule would kick in and overwrite the Random Tile.  This probably was causing many unnecessary live tile image downloads.


Whew!  I suggest keeping both apps on your phone.  Pin both apps and use the free version for the latest image tile update, then the paid version for the random or user specified tile update.

I am working on 1.3 now.  This will have Mirror site selections to download images from servers other the official APOD web server.  This should speed up downloads and failed download with people who are as far as possible from the APOD server.  I’ll post when that update is pushed out.

No Comments

Posted in WP7


WootTracker7 1.3 submitted

30 Oct

I submitted a new update today, version 1.3.  You should see the update in a few days.  Changes are as follows:

  • Added Deals.Woot site to the pivot!  The behavior of this page is different from the rest as its just a list of items and a small thumbnail.  On list item press, it will load show the items full description in the browser.   The data feed was a bit more limited then the other sites, what I did was about all I can possibly do with the data.  This page will not show up on the trial version, just the paid.  Blog, Discussion, and Share menu options do not work for the Deals.Woot pivot.
  • On restore from tombstoning I changed the pivot to immediately show the last pivot loaded.  Before it would always show the Woot pivot, then jump to the last pivot the user was at.
  • Corrected a bug with podcast pausing.  It would start the podcast from the start after pressing the play button again.  It will now continue properly after pausing. 
  • Changed order of data thread delays based on last pivot viewed.  Before the threads delayed based on order from the woot pivot by increments of 2 seconds.  This prevented all the threads from pulling data simultaneously.  However, if you say last viewed Sellout.Woot and loaded the app it would take over 8 seconds before that page loaded.  Now the delays are based on what page you last loaded, so Sellout.Woot in this scenario should load almost immediately (if you have a good data connection).

Still working on Notifications.  The delay is mostly do to infrastructure.  I have to get a service running externally to WP7 on a server.  I plan to have it up and running at some point next month.


WootTracker7 version 1.2 submitted

23 Oct

I submitted a new update version 1.2 today.  You should see it available as an update in the marketplace within 7 days.  The changes are as follows:

  • Added new settings pivot called ‘SiteEnable”  This replaces the “SiteAlerts’” pivot. This pivot allows you enabled/disable the specific site pivots.  This will stop alerts immediately for that site, but the site will not disappear/reappear until the app is reloaded.   Dataloads will cease if the pivot does not exist.  This was requested twice in my app reviews.  Your welcome.
  • Corrected the behavior on percentage sold out alerts.  Before once the threshold was passed it spammed the user with the percentage on every update.  The behavior now to alert once between 20% to 10%, once between 10% to 5%, once between 5% and 1%, and finally once between 1% and 0%.   If it is sold out it does not submit a percentage alert. 
  • Cached the site data on tombstoning.  Tombstoning occurs when the user presses the “I want one’” button or locks the screen when the “Continue to run under locked screen” mode is not enabled.  When the user returns to the app the data will now show the previous data load immediately rather then having to wait for another update cycle.
  • Corrected the podcast play and stop button behavior.  In the last few days the podcast sometimes plays again immediately after it finished, but the stop button was disabled and play button was unresponsive.  The only way to stop the play was the leave the app.  Could not reliably reproduce, but I think I stopped the repeat behavior.  If it does the stop button should be working.
  • Changed the “Share” page’s formatting to match the web browser “Share’” page a bit closer.  Handled Light theme better too.
  • Added a silent Podcast alerts on change on all sites.

Please email me if you have any bugs and/or additional features.  I’m still working on notifications, I hope to have that in the next update.


First WootOff since Marketplace deployment!

20 Oct

Today is the first day my app has gone through a WootOff after its deployment onto the Windows Phone Marketplace.  I’ve only tested against one WootOff back in September, so I’ve been anticipating this.  So far so good.  A few issues however:

  • The RSS feed I pull data from appears slow.  It doesnt seem in sync with the web site.  This is unusual, from what I’ve seen the RSS feed is usually a few seconds ahead of the main site.  I’m keeping an eye on it, hopefully its not a problem on my end.
  • The Alerts pop ups for the sold out percentages is firing off to often.  The idea was that if your settings are at 20%, and the sold off percentage goes from 50% to 19%, it shows an alert.  It should not show another percentage alert until it hits or passes 10%.  And so on with 5% and 1%.  Now it spams you once it hits your settings threshold.  I am sorry about this, my next update will correct this.  So for now set your percentage tolerance to ‘None’ or 1% so you don’t get super annoyed by it.


Also I changed the app to shut off pivot pages based on what sites are enabled/disabled in the settings.  That will also make it in the next update.


Windows Phone 7 Sound Effects Issue

08 Aug

I’m writing this for new people who are just starting Windows Phone 7 development.  This is something I’m sure all WP7 developers solve while developing their projects, but I thought I’d share my experiences on sound effects to save someone’s time when they run into this.

I’m starting a new application that had a need to create a sound effect on a button press.  Simply enough, right? I figured this would be very easy but this was my first attempt at developing a WP7 project.  First I added the MP3 to the project:


Then I referenced it using MediaElement into my Grid from the MainPage.xaml file like so:

  1. <MediaElement x:Name="MySoundFile" Source="soundeffect.mp3" AutoPlay="False"></MediaElement>

Then within the button click event method I added:

  1. MySoundFile.Position = TimeSpan.Zero;
  2. MySoundFile.Play();

This is apparently a standard way to play sounds within Silverlight.  This did not work in the emulator.   Even changing the Build action of the file to ‘Resource’ did not help.  After some Binging around I found out this is a known issue and someone suggested this workaround.  Within the App.xaml add the MediaElement to Application.Resources:

  1. <!–Application Resources–>
  2. <Application.Resources>
  3.           <MediaElement x:Key="AppSoundFile" Source="soundeffect.mp3" AutoPlay="false"></MediaElement>
  4. </Application.Resources>

Then create method within App.xaml.cs as:

  1. public void PlaySoundEffect()
  2. {
  3.     MediaElement myME;
  4.     myME = (MediaElement)this.Resources["AppSoundFile"];
  5.     myME.Position = TimeSpan.Zero;
  6.     myME.Play();
  7. }

Then call this method from your click event as:

  1. App currentApp = (App)Application.Current;
  2. currentApp.PlaySoundEffect();

This worked great in the emulator. I am not sure why, but it may be how the MediaElement is defined programmatically compared to being referenced from XAML when played.

However, a major problem became apparent after deploying directly to my LG WP7 preview device; it didn’t play at all.  Some more Binging and I found this logged bug.  Someone posted a workaround to use the XNA libraries to play the effect.  The problem with this is you have no control to stop it after the sound is executed and it cant be an MP3 file, but WAV works.  I converted the soundeffect.MP3 to soundeffect.WAV.  I then added Microsoft.Xna.Framework to my project references.  Within my MainPage.xaml.cs file I added:

  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Audio;

Then I made a call to the effect within the click event as such:

  1. var stream = TitleContainer.OpenStream("soundeffect.wav");
  2. var effect = SoundEffect.FromStream(stream);
  3. FrameworkDispatcher.Update();
  4. effect.Play();

This worked great in both the emulator and device.  For something I thought would be extremely easy this seemed like a bit of a chore.  I’m presuming the direct MediaElement call will work on release, but I’m surprised at something as common as playing a sound file is not completely functional yet.  I’m not sure if this is the best way to do this within a WP7 application.  If anyone has a better way to handle sounds, please let me know.

Update – 8/21/2010

Turns out that having my hardware device physically connected to my computer AND the Zune player disables MediaElement.  Once you disconnect it from the Zune player, the object plays fine on real hardware.  So I just need to remember to yank the device off to test any MediaElement objects. 

In the case of the app the example above shows pieces of, I’m going to continue using the XNA calls.  The reason is it allows multiple calls into it to stack the sound multiple times.  MediaElement can only be called once and will not play additional sounds until the first call completes.  In some situations this is fine, but is not preferable in my case.  


Posted in WP7


Windows Phone 7 Series from MIX10

21 Mar

Great stuff this past week out of Microsoft’s MIX10 conference.  The opening keynote seemed focused in being a Windows Phone 7 Series (I hate saying that, I’m using Windows Phone 7 or WP7 instead) promo video for developers, which I liked.  Check out the keynote here, skip to time 27 minutes for Joe Belfiore for the initial WP7 demo. Things I like that came out:

  • Silverlight focused development
  • Complete Zune capability
  • Xbox live integration
  • Many third party developers are preparing apps for WP7
  • Controlled display specs on all phone models


Scott Guthrie claimed its truly Silverlight on WP7, not a ‘light’ version.  However, its come out that its not Silverlight 3 or 4, its something in the middle.  So its essential a unique version of Silverlight, ala WP7 Silverlight.  Perhaps it will catch up to true Silverlight 4 shortly before or after release.  Check out time 85:30 on the keynote for the Foursquare demo by Laura Foy.  Seems fairly slick for an app that was developed just a few weeks ahead of time.

I’ll cover my thoughts of the development environment in a later post.

Things I found out that bothered me:


None of those are deal breakers, but they are ruining the dream.  The phone for me better have at least 32 gigs of RAM, I want it to be a replacement of my first gen 30gig Zune player.  I need at least that much.  I cant imagine anyone using the phone as a serious music player with less then 16 gigs of RAM.  </ramble>

I’ll be watching news on this topic closely and post anything significant.  I plan to go through some development examples and possibly prepping for publishing a WP7 application on release.

1 Comment

Posted in WP7