Podder v2 Beta

Just over a month ago I introduced my WPF podcatcher project, Podder. Shortly after the initial release of Podder I began collaborating with Grant Hinkson, Visual Designer extraordinare. He has been working on a new skin for Podder, actually a new “structural skin,” as I call it. I designed Podder to allow for structural skinning, meaning the entire UI can be swapped out at runtime or compile time. It has been very exciting to see Grant turn Podder into a thing of true beauty, by substituting my UI with his own! 😀

Part of this process has required me to change the way Podder works, as well as implement several new features. At this point, I have implemented all of the new functionality and refactored some of the previous code. I’m not sure how long it will take Grant to finish his Podder skin, so I decided to release the new build of Podder as a beta.

Here it is: Podder v2 Beta

NOTE: You will need to change the file’s extension from .DOC to .ZIP and then decompress it. This is a workaround for a limitation imposed by WordPress. Podder requires .NET 3.5

If you have already been using Podder, you must erase the files it stores in your AppData/Local/Podder directory. On my Vista machine, those files are located here:

C:\Users\joshs\AppData\Local\Podder

I am not sure where the equivalent directory would be on XP.  If you do not delete those files, Podder will not work correctly.

I added quite a few features between v1 and v2. Here are some of the big ticket items:

  1. Vastly improved podcast management dialog.
  2. The Podder process runs at a high priority so that it does not freeze under heavy CPU load (thanks to Marlon Grech for that tip).
  3. Episode tooltips now contain a summary, duration, file size, and more.
  4. The app has a system tray icon and minimizes to the system tray.
  5. No matter which podcast is selected, you can click on a link to return to the active episode.
  6. The app detects when it does and does not have internet access (hacky…).
  7. The app can load and apply skins from DLLs at runtime (this feature is disabled in the Beta).
  8. Lots of tweaky bug fixes and better error handling.

Here are some screenshots of the Podder v2 Beta, still using my plain old skin. Click on the images to view them at full size.

Podder’s main window

Podder v2 Beta (Main Window)

Podder in the system tray

Podder v2 Beta (System Tray Icon)

Adding a new podcast to your list – Processing…

Podder v2 Beta (Processing New Feed)

Adding a new podcast to your list – Finished!

Podder v2 Beta (Podcast Added)

I hope you have as much fun using Podder v2 Beta as I had making and using it. If you find any bugs, please drop a comment on this post and let me know. I appreciate all the help I can get. 🙂

By the way, I have seen the skin that Grant is making. OMG it looks good! Once it is ready, I will write the next article in the Podder series on CodeProject, and show you why WPF rocks so hard!

28 Responses to Podder v2 Beta

  1. Karl Shifflett says:

    Josh,

    Fantastic release! A lot of thought and hard work went into this version of Podder.

    Thanks for sharing this with us!

    Cheers,

    Karl

  2. Josh Smith says:

    Thanks a lot, Karl! Have fun.

    Josh

  3. sacha says:

    looking good Josh

  4. Josh Smith says:

    Much appreciated, Sacha. Please let me know if you find any bugs. Thanks.

  5. Scott says:

    Can you use the ‘let’ keyword in your XML parsing? That way you don’t call GetMediaFileUrl() three times for every element… Something like:

    var episodes = from item in rssFeed.Element(“channel”).Elements(“item”)
    let mfu = GetMediaFileUrl(item)
    select new Episode(
    item.Element(“title”).Value,
    mfu,
    GetMediaFileLength(item),
    item.Element(“pubDate”).Value,
    GetWebPageUrl(item)) {
    IsFavorite = PodderDataSource.Instance.IsFavoriteEpisode(mfu),
    IsFinished = PodderDataSource.Instance.IsFinishedEpisode(mfu)
    };

  6. Rhonda Tipton says:

    Very cool!!!

  7. Josh Smith says:

    Scott,

    Thanks for the great piece of advice! That works like a charm. I didn’t know about the ‘let’ statement in LINQ, so thanks for the LINQ lesson as well. 😀

    Josh

  8. Josh Smith says:

    Thanks a lot, Rhonda. I’m glad you like Podder. Have fun with it! 🙂

    Josh

  9. Matt says:

    Nice. I’m looking forward to reading about how the skinning works (and seeing what a real designer can make of it!). I keep finding that my attempts at doing something visually appealing generally end up being ok but definitely not great.

  10. Josh Smith says:

    Matt,

    Most of the material necessary to understand how the structural skinning works has already been covered by two articles I published on CodeProject:

    http://www.codeproject.com/KB/WPF/SkinningInWPF.aspx

    http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx

    The next article in the Podder series will assume that the reader has already digested those two articles. It will be like a case study in how my “design patterns for WPF” can be put to use in a more realistic scenario. So if you have not already read those two articles, they are a good place to start.

    Thanks,
    Josh

  11. […] Podder: the WPF podcast player [EDIT] The beta of Podder v2 is available for download here. […]

  12. marlongrech says:

    always getting better 🙂 great job !!!!!

  13. Josh Smith says:

    Thanks Marlon! Nice post today, on the lamba value converters. There’s a lot of potential there…

    josh

  14. Dr. WPF says:

    Great work, as always!

    Btw, It’s just mean to tease us with the new design and not even give us a screenshot… Looking forward to seeing Grant’s magic! 😀

  15. Josh Smith says:

    Doc,

    I had considered showing a screenshot of Grant’s skin, but I’d rather wait until it’s done. I don’t know if Grant would want me to show his work-in-progress.

    Thanks,
    Josh

  16. I like the data about the podcast.

    I did some visual changes to the displays and then trashed something and put it back to a simple little change in the two skins.

    When the skins are done will you release source?

    TIA

  17. Josh Smith says:

    Stephen,

    Yes, when Grant’s skin is complete I will publish an article to CodeProject about Podder’s skinning and Grant’s skin. At that time the new source code will be released.

    Thanks,
    Josh

  18. Michael says:

    Suggestion: Add some kind of processing indicator when you change the “Select a podcase” dropdown (some of them are slow to load up).

  19. Josh Smith says:

    Thanks Michael. I’ve thought about it before, but just can’t decide what I want to display for that purpose. I’ll give it some more thought…

    Thanks,
    Josh

  20. Nick Polyak says:

    Hi Josh,
    Question unrelated to the above discussion.
    can I use parts of your WPF library in a commercial product?
    Can I also use the MouseUtilities class written by Dan Crevier?
    If you can, please reply via e-mail.
    Thanks
    Nick

  21. […] to stop by Grant Hinkson’s office.  Grant is the Visual Designer working on a new skin for Podder.  I wanted to check in with him, and work through any issues or questions that might have cropped […]

  22. venu says:

    Hi Josh,

    Could you give me suggestion for this requirement.

    I dont have idea about Design patterns even little bit.

    I have plan to start Design Pattern for WPF (i have 1 1/2 yrs experience WPF).

    Could you please let me know which book and site is better for WPF design pattern. Where i need to start?.

    Thanks in advance.

    Regards,
    Venu.

  23. Josh Smith says:

    Venu,

    There are no sites or books, that I know of, showing WPF design patterns. Perhaps the occasional blog post or article, but nothing “authoritative” on the subject. Have you read my article about using MVC in WPF yet?

    http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx

    Josh

  24. […] Content Introducing Podder: the WPF podcast player Podder v2 Beta The WPF Podcatcher Series – Part 1 (Introducing […]

  25. […] have been working away on Podder, my WPF podcast player.  Grant Hinkson, my favorite Visual Designer in the world, has spent some […]

  26. VO 01 says:

    Why you do not create a WPF UI for doppler ?

    Take a look : http://www.codeplex.com/doppler

    It sounds to be the most advanced Podcast manager in .NET

  27. […] important concepts, but really don’t have practical uses (with the exception of the awesome Podder podcast tool). That leads me to this series of […]

  28. […] episodes = from item in rssFeed.Element???channel … josh smith Says: February 11, 2008 at 12:31 pmhttps://joshsmithonwpf.wordpress.com/2008/02/10/podder-v2-beta/YouTube – NBA Josh Smith 05-06 Season MixJosh smith 05-06 Season Mixmade by […]