Susan IbachTechnical Evangelist
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.
appDesigner
Xamarin.Mobile
Trigger.io
Appcelerator
Marmalade
Apache Cordova (formerly known as PhoneGap)
Sencha Touch
Embarcadero RAD Studio XE3
appMobi
RhoMobile
jQuery mobile
Yo Yo Games GameMaker
Unity
Construct2 by Scirra
monogame
Cocos2d
SharpDX
Ogre3D
Axiom 3D
Game Salad
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!
This open source template makes it easy for you to take a WordPress site and provide it’s content through a Windows 8 store app
if you are a WordPress user (Wordpress.org this template does not support Wordpress.com), there is an open source Windows 8 template built by IdeaNotion you can use to quickly create a Windows 8 store app to showcase the content on your WordPress site.
The app created by the template allows a user to
You can download the source code and there is a quick start guide from IdeaNotion to help you out as well.
Make your WordPress site available to more users through the Windows 8 store! Don’t forget students can publish their Windows 8 apps for free!
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:
If you’ve been coding HTML, HTML5, CSS or JavaScript you can use those same programming skills to build a Windows 8 app. To get started check out the Roadmap for Windows 8 apps using JavaScript.
Websites have been built with HTML, CSS and JavaScript for years. In the past few years the trend has been towards HTML5. Microsoft started to enter the HTML5 world with Internet Explorer 9. IE9 added a lot of support to HTML5 features, and IE10 took it even further. Windows 8 continues the trend of supporting HTML5. If you haven’t explored it yet, HTML5 is more than just new markup tags like <video> and <audio> it includes improvements to CSS (like media queries to handle different screen sizes) and updates to JavaScript. HTML5 has been gaining in popularity in the web space because it does not require any plug ins and every year more HTML5 features are being supported by more browsers. So if you are already developing websites with HTML and JavaScript take what you know and apply it to Windows 8 app development.
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.
This series features interviews with student Windows 8 app developers who share the lessons they learned building windows 8 applications.
This week’s interview features Richard Ye a student from The University of Waterloo who built an application called Converter.
Could you briefly describe your application/game?
Unit converters are one of the easiest and most overdone apps that are made for any platform. A conversion from meters to feet, for instance, is a simple multiplication by a constant factor, and is ridiculously easy to implement. However, because it’s so easy to implement an app like this, many of the apps in the store aren’t very good, or polished, or easy to use, and most of them consist of a bunch of menus and a single number input.
When I made Converter, I tried to do better, and the result is an intelligent, polished app that predicts conversions as soon as users start typing. The app can return results in as little as a single keystroke, making Converter the fastest and easiest to use Unit Converter out there. In the words of one reviewer, “effort was put into this app”.
Did you use .NET and Silverlight, HTML and Java, or DirectX and C++ ?
I had some existing code for my concept already built in JavaScript, so I decided to stick with it when making a more fleshed-out version for Windows.
What was your banging your head against a wall moment?
Integrating with the Search Charm was a rather time-consuming process. From what I’ve seen, JavaScript isn’t the most popular choice of language, and I couldn’t find and easy-to-understand guides on how to integrate at the time.
Did you ever solve that issue?
Eventually, I figured it out by carefully reading the JavaScript documentation.
If you had to build this same app again from scratch, what would you do differently?
Though it was very possible to use the JavaScript toolkit, it’s not as full-featured as the other ones. It would probably be easier and faster to have use another language with more extensive tools, like C#, to build the app.
Any nice surprises?
My existing backend code built in JavaScript just worked, with little modification required. I could make improvements to it just like I’ve always done when working with websites, which was nice.
Did you leverage the mobile platform?
Unit converters are rather simple apps, and there’s not much in terms of mobile technology which I leveraged. I used a simple, tiled interface that I optimized for mobile devices and the on-screen keyboard, but that’s about it.
Did you leverage touch?
The libraries were pretty good at making sure touch worked nicely for my app. Have a pretty simple interface which is basically just a bunch of tiles, but semantic zoom is also supported.
Did you have a favorite Windows 8 feature?
I definitely appreciated the tiles feature, and how it basically implemented a smooth and consistent interface for me.
What is one thing you think you did really well in this application?
I really think that Converter is the best unit converter out there, simply because it is faster and more polished than the competition. People shouldn’t have to navigate through menus just to make quick conversions, and I think I’ve solved that problem with Converter. I hope that people will find it useful.
Are you publishing your application/game?
Yes, Converter is available right now on the Windows 8 Store. It’s free and ad-free, and I plan to keep it that way for the foreseeable future.
Where can I learn more about your app/game?
If you don’t have Windows 8, I have an old web version that you can check out here . It doesn’t share any of the code, but it has similar functionality.
Who developed this application?
I’m a student in Computer Science at The University of Waterloo. Some of the backend code was written by Nick Frosst, a Computer Science student at The University of Toronto.
Don’t forget to create your account in the Windows 8 store, reserve your app name, and get your app out there. For information about how to create your account and resources on how to get coding check out our Windows 8 resources page
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.