Susan IbachTechnical Evangelist
Welcome to Building 92 on the Microsoft campus in Redmond, home of the Microsoft visitor centre and company store both open to the public.
So many serious posts lately, I thought it would be fun to take you on a quick tour of the Microsoft Visitor Centre that I got to visit in January.
As I enter, I’m greeted by a picture that looks like a cross between that 70s show and Big Bang theory. Do you think they had any idea what Microsoft would become?
A Microsoft surface table brings back memories, this was the first multi-touch device I encountered, I first saw it at the Professional Developer Conference in Los Angeles a few years back. At the time pinch, zoom, and swipe seemed revolutionary. Now we do it every day as we slide from one photo to another or zoom in and out of a map.
Now we’ve moved from multi-touch to no touch and voice recognition the possibilities really are amazing! And what really rocks is that it’s not just professors in research labs who get to play with this technology, we have it in our living rooms with Xbox and Kinect, in our coat pockets with smart phones! All we have to do is download the SDKs and start coding!
I can’t help it, playing with this amazing technology just brings out the kid and me and reminds me of how far we’ve come from punch cards, TRS-80 computers and Pong game systems. It’s an exciting time to be a developer!
Three students from Ryerson University: Kowsheek, Anthony, and Alexey (akaThree Red Cubes) build their second Windows Phone Game and share what they learned along the way.
Check out more tips and tricks from students here
Could you briefly describe your application/game?
Flipper is a simple and addictive puzzle game where you flip triangles to complete squares. As you progress through the game you should watch for the special squares that can help you. Gain points, compete with players around the world, but watch the clock!
Did you use XNA, Silverlight or both?
In Flipper we chose XNA over Silverlight. The reason we chose XNA is because it gives more flexibility in certain aspects. For example, customized screen navigation logic because most of the times it differs between games. Also it allows you to use the same technology across the entire game unlike in a XNA-Silverlight mix application. Developers using XNA know that it’s a beautiful framework to work with. It gives developers a great amount of raw power over the platform so that they can create awesome games.
What was your banging your head against a wall moment?
There was a moment when the game was lagging while scrolling up. We tried profiling it, we tried decrease the resolution of our assets, we tried banging our heads. Nothing helped. Then we realized the scrolling was too fast and due to the OS limitation of 30Hz, the movement seemed to be lagging.
The bottom line is you have to always remember that you are developing to a mobile device which has some limitations. That means that sometimes you have to do your homework before writing code.
Did you ever solve that issue?
The solution to that problem was limiting the top speed for the scrolling, which actually worked out nicely. The final result was a nice range of speeds for the scrolling effect. You can experience this in the game by dragging vertically across the screen.
If you had to build this same app again from scratch, what would you do differently?
Some of the reviews we got from Windows Phone users included a great number of ideas to improve the game and its experience. We would take this knowledge and build it in the game from the get-go providing for a better experience for the gamers. However, some of the changes can be pushed with an update and that is why the feedback is always useful. In fact we have created an application called metrX for the phone with the intention of helping users and developers communicate.
Any nice surprises?
In the new version that is currently available on the Marketplace, we've implemented system color as the part of game's theme. Discovering the ability to have access to some of the phone resources from XNA was a bit of a surprise and it was quite easy to implement.
We were also surprised and pleased that people enjoy the concept of the game and find it rather addictive. We received 25 reviews to-date and the average rating is hovering around 4.5 stars. We were trying to build a simple and addictive game and we think that we've succeeded.
Did you leverage the mobile platform?
Since Flipper is a quite simple game, it did not leverage any of the phone sensors unlike some of the applications that we've published previously.
Did you leverage the touch screen?
Yes we took the full advantage of the touch interface with both tap and drag gestures built into the XNA Framework. The API that XNA exposes for the touch interface is quite easy to work with and it can be used to provide a nice experience in games.
Did you have a favourite feature?
We have taken an advantage on our own API for a platform called Lead. It's an online cloud-based leaderboard that we have developed with ASP.Net MVC framework. We use this API in our game and it's been a great success. You can find out more about it here. We've talked about it and its technologies on the Canadian Developer Connection blog.
What is one thing you think you did really well in this application?
The game idea. We were able to build a great experience with Flipper and it is something we are quite proud of. Something in those chain reactions accompanied by flipping sounds, the endless game-play and the simplicity of it makes the game addictive and enjoyable to play.
Are you publishing your application/game?
Yes we published and updated the game over the last few weeks, it's available for download and we're pushing updates every so often to keep improving the game and its aesthetics.
Where can I learn more about your app/game?
We have a Facebook page where we post about updates and our Youtube channel has videos of Flipper and some of our other applications.
Who developed this application?
Our team members are from Ryerson University and we run a company called Three Red Cubes Inc. We have been developing applications and games for the Windows Phone since its release. Sudoku3D was the first game we released as a team and we're looking forward to building many more quality games and apps that Windows Phone users can enjoy.
You can find us on Twitter and Facebook.
Picture: Kowsheek (left), Anthony (centre), Alexey (right)
Let’s clear up some confusion that arose when the new Dreamspark launched over how students sign up for the free App Hub account and save the $99 fee.
Where do I go to download software?
This has not changed, though the page looks different. Visit www.dreamspark.com to sign up for Dreamspark and download software
Do I have to use a Windows Live ID for my email address?
Dreamspark does not require you to sign up using a Windows Live ID, but, App Hub does require a Windows Live ID. So if you are going to publish a phone app the answer is Yes.
How do I save the $99 and get my free App Hub student account?
Rob Miles is the captain of the Software Design category at Imagine Cup and is having a Q&A session today at noon ET
Get your questions ready! Join Software Design Captain Rob Miles on 21 February at 17:00 GMT (12:00 Eastern) or 22 February at 07:00 GMT (02:00 Eastern) via Live Meeting and ask him about competing in the Software Design Competition. Follow these instructions to join Live Meeting. The Live Meeting sessions will be recorded and posted on this page under the Helpful Links. Find out what time these meetings take place in your country/region.
Ok, I admit it. The headline was a bit of link bait given how obvious it is. That being said, it’s surprising how often the mistake is made by app developers to add more features and screen activity than is necessary. This is especially true of developers porting a PC app to the mobile form factor. It’s actually really easy to fall into the trap of making an app busier than it needs to be. Good mobile app design is more than an appealing UI. It’s even more important to understand the purpose of the app and how it will be used. Take your cues from that and your app will be more usable to the masses. This post is the first in a five-part series on creating awesome mobile UIs and creating your app with mobility-first in mind. The second post will be on placement of controls in your UI to be most effective for frequent use. The third post will be on the size of UI assets on the screen and why it is important. The fourth post will be on when to use an app bar vs. populating controls on your app’s screens. The fifth and final post will be on implementing gestures and animations to make them useful to the app.
A little while back, I wrote a 5-part Metro Primer blog post series that has received some pretty great reviews (thanks to those who shared your feedback on this series!). The intent of this series was to introduce you to Microsoft’s Metro Design Language if you hadn’t yet seen it as an app developer and if you had seen Metro before, to help you craft great Metro experiences. Metro is powerful and expressive and you can really create amazing and artful experiences for your apps with it. Like any other user interface paradigm, however, it’s just as easy (actually, maybe even easier) to create truly horrible experiences that ultimately hurt your app’s chances of being adopted.
This series of 5 blog posts (the others will be posted throughout the next few days on this blog and the Canadian Mobile Developers blog) is meant to be a companion to the Metro primer in that its purpose it to provide some good practices to use for your apps’ screens so that they are effective, intuitive and make your users come back to the app. Even if you never read the Metro Primer series, you might want to read this series as I will dive into tips that will make you think critically about how to build the UI for your app. And a little hint here – a lot of what I’ll talk about is actually platform agnostic. So if you are an Android developer, iOS developer or any other mobile platform developer, this content could be very useful to you.
Again, duh. Clearly they are not the same. Even the smallest of laptops are distinctly different from mobile devices. Yet many app developers make the fatal mistake of assuming a mobile app is just:
In the back of our heads, we all innately understand the concept that mobile devices and PCs are fundamentally different. But when we make the mistakes like the ones listed above (and trust me, app marketplaces across all platforms are littered with examples), it becomes clearer that the issue is not as cut and dry as it first seems.
Let’s face it. Even app developers that are currently in high school have earned a pedigree in understanding their way around a computer. In many cases, that history with PCs is long and full of experience building technology solutions that target PCs. When we make the change to becoming mobile app developers, we have a bias (whether or not we are aware of it) towards building apps that adhere to traditional PC software design principles, at least in part. Children in grade school are seeing a very different technological reality. Their first experiences in technology are just as likely to be on a mobile device (phone or tablet) than on a PC-form factored device.
If you take a look at the PC, it is a true workhorse tool capable of doing almost infinite things. It also has a lot of power behind it. It also has the ability to provide a huge amount of screen real estate. Mobile devices are by nature almost the opposite. They are capable of doing amazing things, but the use case is generally much more limited than that of a PC. Likewise, the power of the device, while equivalent in modern smartphones to PCs even just 5 years ago, is limited and the intent is to have it untethered from power sources for much larger amounts of time. Finally, screen real estate is generally fixed and often small.
As developers of traditional PC or web solutions, our mindset must change from creating apps that are scaled down versions of PC apps. That just doesn’t work. And believe me, it’s tough to remove yourself from a PC mindset when designing a mobile app. Instead, try to watch grade school children use mobile technology and try to understand the patterns they employ to get tasks done on those devices. The activities that grade school children do on mobile devices are much more pure to the spirit of the mobile form factor as they have no real past history on the PC form factor and provide hints as to how to best implement functionality in your mobile app.
The last point I will bring up in this post is to always keep in mind that we need to design for motion. By motion, I don’t mean crazy animation on the screen (that’s a topic for the fifth post in this series). I mean we have to design our app with the understanding that our users are always in motion. Your app will be used by someone that is just as likely to be walking to an elevator or shifting in the cold waiting for a bus as someone who is sitting at his/her desk.
In other words, this is what we think mobile experiences are like:
When, in fact, mobile experiences are more like this:
Busy user interfaces on mobile apps simply don’t work in truly mobile conditions. Users are not going to pay 100% attention to your app if they are on the move, so designing the user interface to take this in mind will make your app exponentially better to your users.