In this interview, Mike Benkovich, the founder of Imagine Technologies, digs into his upcoming tutorial at the Mobile Dev + Test Conference, Building Universal Apps for the Windows Platform. He covers the advantages of the Windows platform, as well as the process of making an app universal.
Josiah Renaudin:Today I'm joined by Mike Benkovich, the founder of Imagine Technologies and a speaker at our upcoming Mobile Dev + Test event. He'll be leading a tutorial on building universal apps for the Windows platform. Mike, thank you very much for joining us.
Mike Benkovich: Hi, Josiah, how you doing?
Josiah Renaudin: I'm doing fantastic. How are you?
Mike Benkovich: I'm doing great. It’s a beautiful day here, and I’m just kind of playing around with some of the technology that we're going to be covering as we get into stuff.
Josiah Renaudin: Before we really dig into the discussion that’s coming up, could you tell us a bit about your experience in the industry?
Mike Benkovich: In the industry, I've been working as a developer for quite a long time. Since high school, I've been writing code. I ran a consulting company in the twin cities up in Minneapolis for about twelve years with my brother before I took a job working for Microsoft.
I worked there for about eight years, in the role of developer evangelist, which is where you go out and you help people understand what's possible with the technologies. I left there a couple years ago, and I've been running a new consulting company, and we focus primarily on cloud and mobile solutions.
Josiah Renaudin: Your full-day tutorial focuses on the Windows platform specifically. How long have you worked with this particular Microsoft property?
Mike Benkovich: As far as Microsoft property, I assume you mean building Windows apps for the Windows Store?
Josiah Renaudin: Correct.
Mike Benkovich: I've been building the Windows Store apps since they were announced, the Metro style with Windows 8. I’ve been building Windows applications for more than twenty years. Got into it, started out working on Windows desktop with the PowerBuilder back in version three, way, way, way back. Have evolved through the different iterations of things that are out there. Got into XAML and WPF back in 2005, 2006. That XAML experience has carried me forward into the Windows 8 and 8.1, what they used to call Metro, where you've got the common design and things like that. I've had the good opportunity to talk about it and cover a lot of the different areas of it.
Josiah Renaudin: Like you said, you've been working with Windows. You’ve become familiar with it for many, many years. What about Windows do you enjoy more than other competing platforms?
Mike Benkovich: I guess one of the things is, when I look at other platforms like Android or iOS, is that Windows has some incredibly good tooling in Visual Studio that make it easy to go out and build on the Windows framework, using XAML, using some of the design tools, you can get very creative and take advantage of a lot of real powerful things in the UI that are a little bit harder to do. Plus, it requires more specialized knowledge of a particular platform.
One thing I really like about Windows and the XAML approach is that I'm able to build the app and run it across both the phone, as well as the tablet, and even be able to share code across the desktop. With Xamarin, I can even use some of those same shared code libraries to build for iOS and Android as well.
Josiah Renaudin: Of course, even if you do appreciate working on that platform, it has to have some sort of weaknesses. What have you run into over time that makes you think it's not as strong in certain areas that maybe iOS and Android might excel in?
Mike Benkovich: I think part of the challenge on Windows is going to be just the perceived market share of a lot of the apps that are out there. I think when I look at how I go out and build for ... Take for instance the language of WPF, which is the Windows Presentation Foundation. It came out in 2005 with Windows Vista, it was used on Windows 7, Windows 8, and 8.1, and the XAML language itself is very rich and capable. It has a lot of performance and nice things you can do with it.
It is a little bit different on the different implementations of the XAML rendering engine. Silverlight is slightly different than WPF, which is slightly different than the Windows universal schema, so it just takes a little bit of understanding the nuances of it. Another thing that I’ve been doing lately with Xamarin is that you can use XAML to go out and create iOS and Android apps and that the XAML syntax for that is also again slightly different. Be nice if they had a single universal XAML schema for everything.
Josiah Renaudin: You had mentioned perceived market share. When people think about mobile, Windows isn't the first thing that comes to mind. You think of using iOS, you think of Android. Why do you think Windows, especially Windows Phone, at least from the perception, seems so far behind?
Mike Benkovich: I think probably the reason why Windows is as far behind as it is ... You could say it’s because it’s late to get to get to the game. With Windows, or with the Windows mobile, which has been around for a really long time, since more than ten years. They discontinued that platform, and then reinvented it for the Windows Phone, which came out with Windows Phone 7, two or three years ago.
In the meantime, Apple had created a perceived market of "Hey, this is the new smartphone of touchscreen and real rich apps." They also happened to fall into a really nice application store. The App Store for Apple was very well received.
What's interesting I think is that Android has a much larger market share than what Apple does, and yet the first device that you mentioned was the iPhone. I think it's kind of interesting just where the perception is of what are the top devices that are out there. If you want to reach the most devices, how do you get the best performance and how do you build your apps? That's a big question, and really takes almost an hour to be able to answer it, and it's a topic unto itself.
Josiah Renaudin: I’m kind of moving on to a different topic. Can you talk a bit about the process of making an application universal? How much more difficult is it to bring an application to mobile, tablet, and desktop instead of just one of those. Instead of just worrying about “Well, we just want to be a phone app, we just want to be a PC app.” What are some of the struggles that come along with making it an app that works across all these different platforms?
Mike Benkovich: In the Windows world, in fact, when you look at the release of version 8.1 of Windows, they included a XAML schema that runs on both Windows Phone, and on Windows itself, the Windows 8.1. Building a universal app is actually very easy, straight forward. I think the challenge you’ve got is how are you going to do your layouts, and how you use the available screen real estate?
For instance, on a phone you've only got a very narrow available amount of room, and you've got a lot of information. How do you put that out there? There's some nice constructs inside of Windows for things like pivot screens, which makes it easier to have a large amount of content, to be able to tell that it's there, that is nice. Doing the same thing on other platforms means that I’m really almost developing the same app multiple times for each of the different sizes.
Josiah Renaudin: How much time is usually set aside for something like that? Making sure that, let’s say … Let's go back to Apple. An app that works on the iPhone looks scaled correctly and presented well on an iPad screen. Is there a big chunk of time that's devoted to creating that?
Mike Benkovich: As far as how much time do we end up spending testing and confirming things are laid out? One of the nice things about the XAML schema, which is the markup language for, or one of the markup languages that's available for Windows, is that it's got a very responsive nature built into it, and there's a lot of nice layout controls that you can use.
For instance, back panels, scroll views, things like that that make it easy to turn on different controls and layouts. It's not that hard to make an app universal, I think. If you're building something that's greenfield, which means that it's something that you're starting from scratch, it's especially easy to do because the framework provides all that stuff out of the box.
If you have an existing app that was built before 8.1, so taking a Windows 8 application, creating it into being a universal app, there is a little bit of re-write. There's also just the determination of what pieces should, you can use as universal and which ones need to be coded specifically for the device.
Josiah Renaudin: This next question’s a little bit broader, so you can go as deep or shallow as you’d like. How much has the cloud changed how you develop applications?
Mike Benkovich: It's interesting when you look at cloud, and just kind of what does the cloud really mean to developers? One of, probably the biggest thing that has impacted development is using the cloud for my code repository, so that I'm not tied to a particular machine with a particular set of code. When I build an app, I check it in, I do a most recent get, makes it a lot easier to collaborate and work on a team, or have multiple people be able to have a consistent view of that app, because the cloud really does bring a consistent view of data across different devices.
As far as storage on the device, or being able to take pictures or images or uploads, working with different pieces of data, I think the cloud makes it much, much easier to get started, much quicker to get to market. A lot less expensive to build solutions.
One of the talks I'm going to be doing at the conference is a mobile services talk where we'll cover how to create a mobile service application which is connecting through the cloud all the data pieces. We'll build out four or five client apps in about an hour, so we'll have a Windows app, we'll have a Windows Phone app, we'll have an HTML-responsive, we'll add an Android app, an iOS app and run all of them very quickly. We'll be able to tie in notifications through the different devices, tuned for each one of them.
We'll be able to do authentication, doing log-in, using third-party identity, like Twitter, or Facebook, or something like that. Cloud just makes it much easier and there's just a lot of real nice features and capabilities.
Josiah Renaudin: You mentioned really nice features and capabilities. You seem to be someone who looks at the Windows mobile platform and sees a lot of its different benefits, as we had talked about earlier. Going back to perception, a lot of developers, from my end, from what I see, if they're going to make an app, the main platforms they want to hit are, once again, iOS and Android. Do you think enough mobile developers see the benefits of creating apps for the Windows platform, especially, once again, in the mobile world with a Windows Phone?
Mike Benkovich: I think with the universal apps, and kind of where you can develop the app once and run it in different places, I think that if you look at phones versus tablets, versus other things, there's a big mix of things out there. I recognize that the Windows Phone market share is not enough to justify making that your primary target, but the tablets and the Windows itself, there’s a lot of devices out there.
Josiah Renaudin: Now more than anything, what message do you really want to leave with your audience in San Diego? What do you really want to be your sticking point that they keep in their minds as they walk away?
Mike Benkovich: That understanding what the tools can do, and being current with the technology, that you've got a lot of opportunity to build applications very quickly and easily. Learn how to use the tools. It's sort of like if you're going to go out and you've got … Different tools are good for different jobs, and using the right tool for the job, because some jobs you can drive in with the hammer but a screwdriver might be the better tool for it.
Josiah Renaudin: All right, well, fantastic. I very much appreciate your time, Mike, and I’m looking forward to hear more about building universal apps for Windows platforms at your discussion in San Diego.
Mike Benkovich brings it all—energy, laughter, and a contagious passion for coding—with him. In a career that has taken him from minion to business owner, from database administrator to developer, from author to evangelist, Mike has seen it all. In more than twenty-five years of working in the technology industry, he has been part of the latest waves to sweep the industry. Whether delivering MSDN events live or webcast presentations, on the developer resource site BenkoTips or his blog, Mike brings enthusiasm for tools and an energy for the search to find a better way. Follow Mike on Twitter @mbenko.