Skip to content

My first windows 8 app (MySmug for windows 8)

I've created my first windows 8 app. It's a simple image viewer for a smugmug gallery.

MySmug for windows 8 status quo


The preferred method to authenticate to SmugMug is OAuth V2.0. OAuth in windows 8 can be achieved straight forward with the WebAuthenticationBroker. It will do most of the work for you. The only problem is that you can’t style this control properly. At the moment the authentication site from SmugMug doesn't fit into the WebAuthentication-Broker control. But it seems I’m not alone with this problem.

Albums list

After a successful authentication, a list of albums is shown. Photo & Video Sharing by SmugMug

Image list

After selecting an album from the albums list, all images from this album are shown.

Image detail

After selecting an image, it is shown full screen with some information. In this view it is possible to swipe through all images.


The good

Here I’m showing a list of things which are cool when creating a windows 8 app.

Overall concept

I like the metro concepts. I like the colors, style, tiles, contracts, responsive behavior and so on. In my opinion it is the right direction even if windows 8 is not finished yet.

Cool controls

There are a lot of cool controls like the FlipView or the WebAuthenticationBroker which hide a lot of complexity.

Good templates

There are some good metro style templates like the items page or the item detail page. They im-plement a lot of cool functionality and are quite easy to use.

Visual Studio 2012

I love VS. Just give VS2012 some more colors and don't use upper case in menu text. And I’m missing a stable resharper for VS2012.

The bad

A list of things which suck(At the moment at least) when creating a windows 8 app.

Change from Consumer Preview to Release Preview

I've started development with the consumer preview of windows 8, and this was a mistake. After upgrading to the release preview of windows and to VS2012, my solution didn't work any-more. They've change the whole LayoutAwarePage on which most of my sites were based.

Windows/VS2012 crashes

While developing, i had about 10 crashes where i had to do a hard reboot. Two times i even lost source code.

Missing concepts

I miss some concepts/basic functionality in metro apps.

  • Navigation concept/Application state
  • Settings dialog.
  • Others i can't remember...
  • Unfinished and missing controls

    I tried to use the ScrollViewer in order to zoom images. After a hack with the HorizontalScroll-BarVisibility it worked, but not as smooth as it should. Why is there no control which i can pan/zoom and which is super-smooth and behaves as it should? There are people which say you have to implement this all by yourself, but i don't agree.

    Why is there no settings control/concept? I've used callisto from tim heure, but this is a control which must be part of the core.

    Why is it no possible to change the size/style of a WebAuthenticationBroker?

    Image share contract

    I've implemented an image share contract. Why for gods sake did the mail client and the build in image viewer not implement the opposite of this contract? At the moment it's useless (I can share images only with puzzle-touch^^)

    Next steps

    I'll try to implement a video player in order to show movies, and i'm going to cleanup the existing code. I also hope to get the surface tablet anytime soon... :)

    cheers manuel

    MySmug version 1.2 available

    MySmug version 1.2 went again smooth through the submission processs, and now is available at the marketplace. New features are:

    • Save single pictures to the phone
    • Upload pictures from phone to smugmug
    • Change the image orientation based on the phone orientation.
    • Performance optimization(Album data caching)

    Photo & Video Sharing by SmugMug

    What to do if OnOrientationChanged is not fired on windows phone 7 emulator?

    If you debug your windows phone application, and the OnOrientationChanged event is not fired, just press Page Up or Page Down. Those keys are used to activate/deactivate the phone keyboard. If the phone keyboard is active, the following code will be executed. Strange thing...

    protected override void OnOrientationChanged(OrientationChangedEventArgs e)

    Found(after some time) on the microsoft forum.

    Todo for the next version of MySmug

    This is the list of issues/features i have in mind. I'm not sure whether i will solve all of those, or even when. It's just to keep them in mind. Write me a comment if you have anything in mind which should be changed/fixed.

    • Save single pictures to the phone
    • Save album to the phone
    • Upload pictures from phone
    • Better panning/zooming
    • Change the image orientation based on the phone orientation.
    • Bing Map integration based on the GPS data .
    • Performance optimization(Album data caching)

    Feature list Version 1.1. In submission process This was just a little bugfix release. Submission sent 06.01.2012

    • Bug fix: Album list was loaded more than once after some time.

    Feature list Version 1.0. Release date: 06.01.2012

    • Authentication via oAuth
    • Album browsing
    • Pictures browsing
    • Picture details