Ha! Thanks. I knew I was being dense. My problem was that, working through all these tutorials from Neuburg and Wenderlich, I never paid attention to the PreviewProvider or what makes Canvas work because it always just worked and doesn't affect the app's behavior on the device anyway. I guess I thought there was some automagical connection to make Canvas work with some sort of exceptional struct, but now I see the logic.