Your UWP Push Notifications are now Toast

Posted by Brandon on November 16, 2015 Tags: ,

I recently pushed an update to the UWP I’ve published to the store at work. After installing the app on my 10581 Windows 10 device and using it all weekend, I was dismayed to see when I received a push notification the app didn’t do what it was supposed to do.

I dove in.


No Comments on Your UWP Push Notifications are now Toast

My first exception caused solely by .Net Native

Posted by Brandon on November 6, 2015 Tags: ,

In a current project we’re developing a UWP application which, as you may or may not know, *requires* you to compile to .Net Native in order to submit to the store. No biggie, that hasn’t been a problem.

Until now.


No Comments on My first exception caused solely by .Net Native

Can’t deploy to Windows 10 Mobile 10581? Read this

CSgQHn5WsAEGX7K.png Posted by Brandon on November 2, 2015 Tags: 

I’ve been doing Windows 10 UWP development since July. During that time I’ve upgraded from the latest slow-ring builds of Windows 10 all the way up to 10565 on my work desktop. Also during this time, I’ve updated our test bench devices with the latest Windows 10 Mobile fast-ring builds so we weren’t surprised at any point and could be testing against the latest code. However, after pushing our test bench up to 10581, a weird thing happened:


No Comments on Can’t deploy to Windows 10 Mobile 10581? Read this

*MY* Microsoft Band 2 review

MS-Band-2-side.jpg Posted by Brandon on November 1, 2015 Tags: 

I had the privilege of having my MS Band 2 delivered last Friday and have spent the entire weekend wearing it… so… here are my 48-hour thoughts.


No Comments on *MY* Microsoft Band 2 review

Pull-to-refresh on a Windows 10 UWP

grabilla.q18088 Posted by Brandon on October 28, 2015 Tags: , ,

If you’ve ever tried to pull this off, you’ve likely either A) pulled your hair out then drank ruthlessly in celebration or B) researched what it takes and said “yeah… looks like we’re going with a button”

I was the same way.


No Comments on Pull-to-refresh on a Windows 10 UWP

Static Grid, Dynamic Content – Part 2: The Stragglers

Posted by Brandon on October 23, 2015 Tags: , ,

In my previous post I talked about how to get a dynamic set of content chunked up in to batches that could then be displayed in a static grid, stacked within an items control. This works great if your dataset is evenly divisible by the number of items in your grid, but what if it’s not?


No Comments on Static Grid, Dynamic Content – Part 2: The Stragglers

Static Grid, Dynamic Content

image.png Posted by Brandon on October 22, 2015 Tags: , ,

On a recent project, we wanted to lay out some dynamic content in a very specific way, and have that repeat a la the USA Today app for Windows 10.

The main challenge facing us when doing this is that Grid isn’t an ‘ItemsControl’ and therefore can’t be bound to a collection of data.

So how do we solve it?


1 Comment on Static Grid, Dynamic Content

Build Windows 10 UWP in the cloud

Posted by Brandon on July 17, 2015 Tags: ,

I’m working on a new Windows 10 UWP at the present and went to set up my CI builds in, of course, Visual Studio Online. But it wasn’t as straightforward as I’d hoped.


No Comments on Build Windows 10 UWP in the cloud

On Windows Store "crap apps"

Posted by Brandon on June 13, 2015 Tags: , , , ,


Yes, Dear Reader, this actually happened.

Now, I as much as the next dev will not beat around the bush when it comes to acknowledging there’s a problem with “crap apps” on the Windows (Phone) Store. But is there a platform that doesn’t have this problem? I doubt it. Shall we have a look?

Yes. 189 weather apps.

(notice the scrollbar on the right)

Now for the purposes of framing this discussion, let’s have a look at Windows Store Policy Requirement 10.1:

Distinct Function & Value; Accurate Representation

Your app and its associated metadata must accurately and clearly reflect the source, functionality, and features of your app.

  • The screenshots, app name, developer name, tile, category and app description, and any other related metadata you provide with your app, should make it easy for a user to understand the functions, features, and any important limitations of your app.
  • Your app must be fully functional and offer customers unique, creative value or utility, and your app may not use a name or icon similar to that of other apps.
  • You should not represent your app to be from a company, government body, or other entity if you do not have permission to make that representation.
  • If your app contains content or features restricted to certain languages, markets or geographies or has other important limitations, they should be clearly described.
  • If your app declares an association with a given file type or extensibility point, it must provide the functionality that a customer would expect, given that association. For example, if your app declares an association with the .jpg file type, the app should be able to open the image for viewing or editing.
  • On its face this seems pretty innocuous right? So how did Upload to YouTube get yanked due to this? If you’ve followed my development of the app, it was the first YouTube uploader to upload videos from a user’s camera roll. I then added background uploading and Cortana integration. I’d say it checks all the boxes.

    In full disclosure, I was fully prepared for the day The Evil One came knocking and asked for a name change based on trademark; that I would have understood, no problem.

    So as one might expect, I responded to this initial e-mail with an attempt at voicing my confusion and concern for what had just taken place:


    Trying to give them an “out” by saying “oh, yeah. Yup that’s why we yanked it.” but nope:


    the “blog” link takes us to the 5/27 post by the Windows team outlining how they’re taking a more strict approach toward policy 10.1. I want to cite what is, to me, a particularly troubling piece of verbiage in this blog post:

    For example when there are many apps that do not provide differentiated value (e.g. many flashlight apps with the same look and feel and functionality), some may be removed from the Store.

    Here’s the question we should all be asking as developers: “which ‘some’ get removed?”

    Walk with me here. UtY has been published for almost a year now. Let’s say Dev X comes along and publishes an app with a similar name and copies my icon. What do you think would happen given what we’ve seen here? Would they kill mine? Would they kill the new one? Perhaps some other app that maybe says it uploads videos to YouTube as well, but provides a subset of features relative to mine? How fair is that to devs? To users?

    The bottom line here is we just don’t know what is going to be happening to our *legitimate* apps. And we have no recourse when it happens to us.

    On to the last sentence of the blog post:

    make sure your account contact email is accurate in Dev Center, as this is the email the Store uses to begin a dialog with you if we locate any problems with your apps.

    That seems fair. If they locate a problem w/ my app, they’ll start a dialog with me. One would presume this means before they take it down, right?


    wrong. What you’ve seen in the screenshots I’ve posted is the entire extent of the “dialog” I had with the Windows Store team.

    Now let’s talk real numbers here. UtY, at the time of this writing, has 32,500 downloads. It’s about a 3.9/5 rating in the store with over 200 reviews. In full disclosure, it nets me ~$130/mo in store and ad revenue. It’s not a lot, but it is something I’m proud of. It’s my most well-received app, and I spent quite a bit of time getting it to a good spot to where it could be something I’m proud of. It’s on my résumé. I talk about it at interviews.

    I started developing for Windows Phone in November 2010 when the SDK was launched. I’ve been in this since the start. I have supported this platform. Evangelized this platform. Invested in this platform.

    I am fortunate enough to have a kick-ass circle of friends that are also devs. One of whom is even an MVP for the platform. I also have a bunch of awesome twitter followers.
    Now I didn’t make a stink about this publicly because I was honestly in shock. Microsoft picked the absolutely perfect time to pull this on me as I was in the middle of changing jobs and had way more things to think about than this, so I just did not have the time to deal with it.
    So, I just told my buddies. They were equally in shock. We talked about it quite a bit on episode 25 of the 25.4 Podcast. It was there that my good friend Robert suggested I consider taking it to the media – especially after getting shut down the way I did in the last e-mail from the Store team.

    To us, it was pretty clear this was somebody that didn’t understand what they were doing; just following instructions (or worse, an algorithm) blindly. And they didn’t have the time or knowledge to properly assess the situation.

    Again I’m fortunate. I’ve had great interactions with Brad Sams over at Neowin so I sent him the e-mail and details on my situation along with the stats on UtY. He posted an article this morning, despite the fact he’s prepping for a long vacation! Great guy, that dude. It was also picked up by the folks at WMPowerUser – also another great bunch.

    Roughly 6 hours later, to my amazement honestly, I received this:


    As I said on twitter, I can’t thank the dev community and other supporters enough for the time they took of their own volition to back this lowly indie dev. It speaks volumes of the community we have built. And while I’m not going to argue whether or not camera roll upload is the defining function of my app, I’m also not going to look a gift horse in the mouth ;)

    But it’s time for a hard conversation.

    Let’s be honest, I got lucky. What if I was a complete newbie to this platform, trying to break through? I get a great idea, publish my app, and enjoy some success. Only to have this happen to me. I can’t get answers, I don’t really have a following, what’s my recourse? Nothing. What would you do if this were you? I know what I’d do. Go learn Swift, or Java, or buy a Xamarin license. Why would you stand for this?

    Furthermore, imagine the havoc this type of process could wreak on somebody who maybe writes that killer app and quits their job (let’s not debate the merits of that decision)? Now what??

    I’m fully convinced that were it not for my friends reaching out on my behalf – being willing to put my story out there – UtY wouldn’t be in the store today. But where does that leave the lesser-known devs? The ones we’re trying to get on our platform? What does this say to them?

    Another thought: what’s the goal here, Microsoft? Are we trying to clean up the 50+ fart apps in our store? The 200 weather apps? Or the 5 YouTube uploaders? Which would you, Dear Reader, tell them to go after first?

    I would even go so far as to argue if the search algorithm were better, we wouldn’t need such a drastic culling of the herd. To illustrate, let’s use UtY as an example. As I search “Upload to YouTube” in the store on my Windows Phone right now, UtY is listed #13 – the 3rd page of listings on my Lumia Icon. And the search exactly matches the app title. It’s listed beneath “GetThemAll”, “Video” (from Microsoft), and even “Google” (from Google).

    To finalize my thoughts on this process I really have to put this out there: can you think of some apps that perhaps filled a gap at one point, but have since been succeeded by an app from the official owner of the service? Which app should be killed? Why? Should both be allowed? Why? Because this policy is, and Microsoft’s actions toward me are, pretty arbitrary. There’s simply no knowing who they’ll pick to stay, who they’ll pick to chop, and what you can do to affect the situation. Or if they’ll even take action in some instances.

    In the meantime, good luck devs. Sound off to your local reps if you’re at all concerned. Many voices may just be the key to getting some real action here. It’s unfortunate it had to come to this, but the first one through the wall always gets the bloodiest.

    3 Comments on On Windows Store "crap apps"

    Application Insights in your WinForms? Yup!

    Posted by Brandon on May 13, 2015 Tags: , , ,

    Microsoft’s Application Insights is one hell of a tool. It was showcased a number of times throughout BUILD 2015 at the end of April and continues to make my jaw drop every time I see it shown off and look into my own instance of it.

    However, if you’re a Windows Desktop app developer (Forms, Console, Service, etc.) – as most enterprise developers continue to be – you might get a feeling you’re being left in the dust by Microsoft with this new service.

    Until now.

    Enter my latest project: DesktopApplicationInsights. It’s really just a helper library on top of the App Insights Core API, but it does work pretty damn slick if I do say so myself. Since I have a feeling there will be a lot of thoughts and ideas around this once people see it, I’ve posted it on Github as well. Or if you’d rather just get crackin’ today, you can simply import the NuGet package and be logging telemetry within minutes.

    Note that I have currently labeled the NuGet packages as beta since I am rapidly evolving the API and functionality so update often (and be prepared for breaking changes) :) Right now I have completed some “automatic” telemetry for some WinForms controls, but I do have plans to add the same for WPF constructs.

    No Comments on Application Insights in your WinForms? Yup!