Susan IbachTechnical Evangelist
This blog is part of a series, you can see the rest of the series here.
If you want to develop for Windows 8, you need to decide which programming model best suits your needs and skills and find some resources to help you get started with your chosen model. Don’t forget in Canada, any app you publish before end of March 2013 can earn you rewards through the Developer Movement, and students building apps can enter them in Imagine Cup!
Let’s look at options for different types of developers:
There are a number of options for game development on Windows 8, what makes sense for you depends on your existing game experience and the complexity of the game you plan to build.
I would not recommend C++ and DirectX for a beginner programmer, but, when it comes to high performance games, serious gamers turn to C++ and DirectX. With DirectX and C++ you can build great games for Windows 8. To get started, check out the Developing Games for Windows 8 or Developing apps with C++ and DirectX (scroll down to the section Game Programming in C++.)
Easier for beginners than DirectX, you might be surprised at the games you can build with HTML and Canvas. It is growing in popularity for web games, especially with fewer platforms supporting Flash. The same HTML and Canvas capabilities that exist on the web can be used to build cool games for Windows 8. To get started here’s a good post by David Rousset called Everything you need to know to build HTML5 games with Canvas
XNA is not included on Windows 8, however there is an open source cross platform implementation of the XNA framework called MonoXNA that you can use to build Windows 8 apps. To get started check out Tara Walker’s blog on Windows 8 development using C#, XNA and MonoGame 3.0
There are a lot of companies out there who produce tools for beginner and experienced game developers. These products have their own development environments and generate the application code for you. Some of these tools are free, some charge you either for the development environment tools, or to publish the apps. To get started check out cross platform tools that support Windows 8
If you are already familiar with the .NET framework, you will probably find it easiest to develop your apps in C# or VB .Net with XAML. To get started check out the Roadmap for Windows 8 apps using C# or Visual Basic.
If you have already coded in Java, you will find it pretty easy to pick up C#. Consider building your apps with C# and XAML.To get started check out the Roadmap for Windows 8 apps using C# or Visual Basic.
Go ahead and build your app using C++ and XAML. To get started check out Building your first Windows Store app using C++.
There’s some great resources to help you bring your knowledge of Objective-C, Cocoa Touch, and XCode to Windows Store app development. To get started check out Resources for iOS developers. If you are planning to build a new app and want to target multiple platforms you may also want to check out Cross platform tools that support Windows 8.
The platforms are different, but you can certainly take an app you built for Android and port it to Windows 8. To get started check out this article Porting Android apps to Windows 8 . If you are planning to build a new app and want to target multiple platforms you may also want to check out Cross platform tools that support Windows 8.
Want your app on multiple platforms without rewriting all the code? Here’s a summary of some of the tools, libraries and SDKs out there to support building multi-platform apps.
Every mobile developer struggles with the decision of which platforms to support, and most end up building for more than one platform. I am frequently asked what tools are out there to make it easier to build for multiple platforms. Well, there are lots of options out there for you, everything from professional paid tools to open source libraries. I decided to sit down and put together a list for you. Information is all based on what I could find on their websites at the time this blog was posted. For the most up-to-date information I recommend you visit the product sites themselves. Each product title is linked back to their website. There are some gaming and graphic specific tools listed as well.
Don't forget good design of your app also makes it easier to implement on multiple platforms. Using a Model View ViewModel architecture makes it easier to re-use your code. Check out this MVVM Light Toolkit or Okra (formerly Cocoon) to help you get started with the MVVM model pattern in XAML. This is great when combined with portable class libraries which allows you to share code between Windows Phone 8 and Windows 8 apps.
Apache Cordova (formerly known as PhoneGap)
Embarcadero RAD Studio XE3
Yo Yo Games GameMaker
Construct2 by Scirra
I’m sure there are some I missed, feel free to add comments to point out any good tools and tips for cross platform development that you have discovered. Don’t forget in Canada when you publish your app you could earn rewards through Developer Movement!
How do you get the Windows 8 SDK and Visual Studio? What if you have Visual Studio already?
This blog is part of a series, you can find the entire series here.
In Step 2 we learned where to find and different options for installing Windows 8 which is required before you download and install the SDK. Now you need the Windows 8 SDK and a version of Visual Studio 2012. In this blog we’ll look at what you need to install so you can start building a Windows 8 app. This blog post covers the following:
If you are in a technical program like Computer Science you may have access to DreamSpark Premium which is usually accessed through your school IT department or through a special portal maintained by your school like this one from Carleton where you can download Visual Studio and Expression Studio.
If you are a student in a non technical program such as business administration or you are in a technical program that does not have a DreamSpark Premium subscription, you can still get a copy of Visual Studio through DreamSpark Standard. DreamSpark Standard subscriptions are given to universities, colleges, and even school boards so that high school students can access Microsoft developer software. They are usually tied to a school email address. For example a student with an email address that ends in @Ryerson.ca is recognized as a student from Ryerson who can access the Ryerson University subscription. If your school does not have a subscription, you can request a verification code by contacting your local Microsoft representative. (In Canada that’s us!). Now you can
Note: when you download Visual Studio and Expression Studio, you will get an .iso file. You will need to either burn a copy of the .iso onto a DVD or use a tool such as Virtual Clone Drive to read the .iso and allow you to install it.
If you are a Microsoft Student Partner, or work at a company with an MSDN subscription you can download a copy of Visual Studio from the Microsoft Download Center.
That’s okay you don’t need a full version of Visual Studio to develop an app, when you install the Windows 8 SDK it will install a copy of Visual Studio 2012 Express with Blend you can use to develop your app.
If you do have access to a full version of Visual Studio 2012 and Expression Blend, install it before you install the Windows 8 SDK. When you install the Windows 8 SDK it will detect your copy of Visual Studio 2012 and install the Windows 8 templates into your existing copy of Visual Studio. Visit the the windows dev center (dev.windows.com) to download the tools and SDK.
If you do not have a copy of Visual Studio 2012 already, then all you need to do is download the tools and SDK and it will install a copy of Visual Studio 2012 Express and Blend for Visual Studio on your system so you can start developing.
An app can’t be great at everything, what will your app be best at? Figure that out you are well on you way to a great app
This blog is part of a series, you can see all the posts in the series here.
We all know the value of apps, we’ve used good apps, and lousy apps. We appreciate the value of being able to do something quickly and easily on a tablet or phone.
A tablet or phone is something we just grab off the kitchen table or couch, or bring with us when we go out. It’s smaller and more portable than a laptop. We’ve learned that it can be a great way to get things done or to pass the time with a fun game.
You have an app idea of your own, but with all the apps in the market, how do you ensure your app stands out? How do you ensure your app adds value? After you come up with an app idea ask yourself one question
Take the time to figure out what your app will be best at. Write it down! It’s called a “Best at” statement. Keep it short and to the point. Focus on one specific strength. Start the phrase with “My app is best at …”
Taking the time to write a best at statement helps in many ways
Here’s a few sample best at statements to get you thinking about their power.
My app is the best at timing for bakers – Would a timer app for a baker have different features from the usual timer apps? Sure it would. I want a notification when it’s half way through baking time so I can turn the baking sheets around for even cooking. I want to be able to add 1, 2, or 5 minutes to the timer after it runs out when I look at the cookies and decide they need another 2 mins. I want to be notified if my volume is turned off so I don’t miss the timer and burn the cookies.
My app is the best at pong for making you laugh - my pong game will have a twist, it will randomly add small pictures on the board and every time you hit a picture it will either have an effect on the picture (like spin) and make different noises. Users can create their own library of pictures or take pictures with the built-in camera to appear so they can hit their friends. They can also record their own sounds to make when they hit a photo.
My app is the best at posting to multiple twitter accounts – users can log in to one or more twitter accounts. When they write a tweet they can select which accounts to use for the tweet. They can also define groups of twitter accounts and select to tweet by all accounts in that group. They can select one account to tweet, and other accounts to retweet.
My app is the best at keeping track of family gift lists – this app allows me to figure out who in my family wants what for Christmas and what has already been purchased. In the app you can define one or more families or groups of people. When there is a group I can invite the members of that group to add items to their wish list. Items can include URLs, photos, and store names where you can purchase the item. When another group member logs in they can see the other family members wish list and they can indicate if they have purchased that item. When you log in to update your own wish list you cannot see what others have purchased from your wish list. Users can also suggest items for each others wish list (e.g. parents suggestions for their kids wish list) when others add to your wish list you do not see what they have added.
Whether you are already working on an app, or have been thinking of writing an app. Take 15 minutes and come up with your best at statement and write it down. Then score yourself 10 points for getting started on your app! Don’t forget to check our Windows 8 resources page and Windows Phone resources pages to help you start building the app.
Do you see how the best at statement helps me think about what my app will be able to do, and the features that I should add to the app? The best at statement could appear in the description of your app in the store, so anyone looking at your app in the store instantly understands what your app is best at, so they are more likely to appreciate and use its features because they understand when to use it.
Where do I get Windows 8? Can I set up a dual boot? Can I install it in VM? How? This post answers those questions
This post is part of a series, you can see all the posts in the series here.
You can’t build a Windows 8 app without installing Windows 8. So you need to get a copy of Windows 8 and you need to install it. This blog post will either explain or provide links to references that explain the following:
First check the System requirements to make sure your PC can handle Windows 8. You do not require touch, Windows 8 works fine with keyboard and mouse. Though you might want to learn a few keyboard shortcuts.
All of the options below will provide you with a .iso file, so you will either need a DVD burner so you can burn a DVD with the .iso file to install Windows 8, or you will need a tool like Virtual Clone Drive to read the .iso file directly.
You may be able to download Windows 8 for free from DreamSpark Premium. Note: this is only available for students in programs that have DreamSpark Premium. Many students have access to DreamSpark Standard which allows you to download a lot of free software including Visual Studio, but does not include the operating system software such as Windows 8.
if you are a Microsoft Student Partner, or you work at a company that has an MSDN subscription, you may be able to download Windows 8 using your MSDN subscription.
There is a 90 day evaluation version of Windows 8 you can download for free, but note: IT CANNOT BE UPGRADED TO THE FULL VERSION. To upgrade, the evaluation must be uninstalled and a non-evaluation version of Windows must be re-installed. So if you are going to choose the trial version, you probably want to do it as a dual boot or in a virtual machine.
Until Jan 31, 2013 you can buy a Windows 8 Pro upgrade for $39.99. You can do the upgrade easily if you are running Windows 7. If you are running Windows XP or Windows Vista you will need to reinstall your apps after you upgrade.
If you are downloading the trial version, or you just aren’t ready to upgrade yet (though honestly I found, after a week on Windows 8, I didn’t miss Windows 7, and was completely comfortable working with Windows 8, my existing printer, external monitor, mouse, and programs all work fine on Windows 8). But still I understand that you may have reasons for keeping a copy of Windows 7 running on your laptop. You can of course set up your laptop to have dual boot so you can start it in Windows 8 or Windows 7.
Installing Windows 8 in a Virtual machine won’t run as fast as upgrading your operating system to Windows 8 and from what I am seeing in the comments on these blogs, you may need to brace yourself for a bit of fiddling to get it working. But for those of you who are not ready to upgrade, it is certainly an option and I’ve seen lots of developers at our hackathons building Windows 8 apps inside a VM.
Here’s a twist on the virtual machine option to consider as well. Windows 8 comes with Hyper-V support. So you could install Windows 8 on your machine and then run Windows 7 in a Hyper-V virtual machine on your Windows 8 PC.
Now you’ve got Windows 8 installed, you can develop apps for Windows 8 or Windows Phone 8! Great preparation for the Imagine Cup or your first step to getting rewards from the Developer Movement. Get coding!