I need to flag that there's a 'bug' in this video :) I goofed on the day and forgot to include a piece of code that's really quite critical.
At 12 minutes 43 seconds into this video I say "All you have to do is make a runtime check to make sure that it's ok to use the APIs that you want on a particular device family".
At around 28 minutes into the video, I forget to actually do that. When I'm writing a function called DoSomeGpioWork() I should actually be wrapping all of that code in an IF statement that checks that it's ok to use the GPIO APIs. I could do that by checking at the API level or the Contract level and I'd usually use the contract level with some code like;
// Do GPIO Work
I got away with this in the talk but it's important to flag that it was my mistake on the day and so I thought that I'd add it here to make sure it was clear.