YAB (yet another blog) Site

Posts tagged ‘Metro Style Applications’

Windows Reimagined

First hand report on Windows 8

Indeed. Windows 8 is reimagined from underlying Chipset to Charms. The more we get hands-on with Windows 8, the fact is even more overwhelming that this next-generation Windows OS has undergone a lot of thought and too many good things have gone into it. Win8 is still Pre-beta and Developer Preview stage. The RTM version is rumored to hit MSDN by April 2012. Yes, that’s a long way to go. However, the wave this touch-first OS has brought is amazing and we thought of bringing you some details into its features and explain them as much as we could. Readers would find tons of features, and the UI gimmicks about windows 8 in many websites now. Our intention, rather, is to throw light on a Metro Style Applications, the context, architect, process-life-cycle and characteristics of the Metro style applications re-introduced along with Windows 8 OS. Though the Metro style is not new, for those who are used to Mango or Win Phones 7.

Chipsets to Charms

When we meant Chipset to Charms it is reimagined to the core, windows 8 development means it. Windows 8 is targeted to run on Intel based processors and newly added to the bandwagon is ARM based processors. Windows developer preview is still not available for ARM based processor. However, Microsoft claims that there will be a full-fledged equivalent windows 8 version that runs seamlessly on ARM based processors. For the readers, ARM based processors like Qualcomm’s Snapdragon is one of the most popular and powerful processors in the Tablets and Mobile devices world. Windows 8 masks the underlying processor architecture and provides similar functionalities across the different processor families.

Metro Style Apps

In short, it is a new UI standard for how the application should look like. Windows 8 introduces the new Metro style interface, which shows the information that is important to the end-user, embodies simplicity, and gives user the control. The new interface, built for touch, is a personalized layout with clean typography and animations to make interacting with your PC fluid and intuitive. The new Start screen puts all of your apps in front of user for immediate access. Windows 8 is optimized for easier navigation so moving around the operating system is effortless with touch interface or Mouse and Keyboard.

Charms

‘Charms’ are the standard fundamental contracts that bind Metro Style Apps with System UI and also with other Metro Style Apps. Charms are displayed on the Right-corner of the touch enabled screens and left bottom on a Mouse based screen. There are can be many contracts defined for Metro Style Apps. Search, Share, Devices, Picker & Settings is some of the fundamental ‘charms‘ contract defined in the Windows 8. Imagine an application about list of RSS Feed; the app can expose a Search Contract. A Search for this app is about searching RSS feed. When User clicks on ‘Search’ charm, without leaving the application, a search overlay panel is displayed on the right side of the screen. The search can behave differently, based on this contract each application has exposed. Search on Windows will be on Apps, whereas Search on Internet Explorer can be defined to that of BING Search and similarly, a search on Socialite application can be searching on Facebook Social Site. However the contract exposed as part of Search Charm is common experience across Metro Style applications.


Touch-First experience

Touch-first: What’s the big deal; it’s just an articulation of mouse operations on an UI with touch screen. It is much more than mouse orientation with touch senses. A lot of pre-defined meaningful gestures add the spice to the usability factor of this OS. The touch-first is designed with multi-touch functionality everywhere. Did I say touch is not only for tablets but soon into Desktop? Yes, days are not far when Desktops too have touch screens. By the way, Windows 8 is One OS for all form factors. It’s not only for Tablets but also for Desktops, Large Screen display machines as well! It is the same OS that provides the seamless touch experience on all. Apart from Touch as UI input method, Vision of Touch-first experience is to introduce a language for touch. It is lot more than moving a mouse pointer with fingers. For instance, how do we visualize Right click using touch? Right click is replaced with press & hold gesture on touch paradigm. The Touch-first experience brings in a whole lot of defining a windows touch language. That language has to simple, consistent, fast, based on limited gesture set and avoid timed gestures as much as possible, reversible and directly manipulated on the UI elements. Refer to the touch language picture below, most of them are familiar to us and few are new gestures. Remember, these gestures are not just for Windows 8 Start screen but also for all those Metro style applications that developers write using WinRT with not much of additional code for touch-first plumbing.

Architecture

Metro Style apps are different from Desktop applications that run on Windows 7. Desktop applications are allowed to continue running on Windows 8 for backward compatibility. Refer to the architecture diagram below; Metro Style Apps are completely built on top of Windows runtime. WinRT is a One-window API application model with full-fledged APIs on the foundation.

When developers gear-up to build a Metro style application, they have freedom of choice to choose their favorite language, use their style of markup and ready-use windows RT libraries. Developer could write the UI using XAML and code behind on conventional C++. Or for that matter, use C# or VB to do the plumbing for XAML UI. The Windows 8 surprise inclusion into the programming bandwagon is HTML 5. Developers can now use the full-fledged HTML5 with CSS as the UI markup and use JavaScript to access the same set of Windows Run Time APIs as they could do with other programming languages. To make this happen, Windows has provided common metadata and uniform namespaces and APIs that can be accessed upon different language projections. When it comes to HTML/JavaScript metro style apps are hosted and executed inside WWAHost process (Windows Web Application Host). Windows runtime (win RT) is an efficient solid foundation to build the metro style apps. WinRT provides all necessary APIs including UI, Storage, and Network. Above all these UI APIs exploit and provide the developer with graphics, animation and hardware acceleration features inbuilt in those APIs for the developers to exploit free.

Process Life Cycle

Where’s my close button on the top right corner of the application? First of all, Metro style Apps do not have Windows or Chrome. Second, User does not need to close the applications they open. What are we talking? When do these Apps get closed? When will the CPU & Memory utilization come down? The Answer is AUTOMATIC, OS takes care. When the application is no more in the front view (after losing focus), and no background running is required, the OS will move the process to Suspended state. For people who have used iPhones or Androids, the Suspended state of application is not new. The Suspended state helps in reducing the resource consumptions (like CPU or memory) and improves responsiveness of other applications. There are some applications which try to run at the background even after losing focus, like Windows Media Player, will signal OS that they should not be suspended. When OS pushes an application to Suspended state, the App has 5 sec to save session state, in response to the event to mark suspended state. Similar to Suspended state, when app resumes from Suspended state, the app is notified of the state change. However, No event is notified when App is moved to ‘Terminated’ state. It is imperative to mention that Developers have to additionally take care of these App/process life cycle events, as well, to ensure they work consistently within Win8. By the way, if you desperately want to close an app, you always have the task manager.

Visual Studio 11 Developer preview

11? Yes, you read that right, the new visual studio for developing Metro Style apps. As usual Visual studio makes the life easier by providing a lot of new template to build from the scratch, and a lot of plumbing and usual features like stronger intellisense is provided. WinRT, like .NET, has a rich namespace and meta-data format, VS taps on this rich Meta data to provide intellisense. While developing Metro Apps, developer could use HTML/JavaScript or XAML with C++ or C# or VB. Apart from that, there are different application templates to be used as basis, like Grid Template (suitable for News feed or Tweeter update kind of apps) or Navigation template or blank template to begin with. For those UI design savvy, Expression Blend is now more closely integrated with VS for styling and animation background. The new part of this story is that these animations use WinRT graphics APIs for those effects. One feature that caught my attention and many eyes is Store Menu. You would have heard of the Windows Store, and this menu will compile the solution and package it and upload them into store as well! That way, VS 11 provides integrated development experience that covers the entire life cycle of software creation, right from architecture to code creation and beyond that now selling and marketing.

Before we close on, for all those .Net lovers, Visual Studio 11 supports development with .NET 4.5 framework. However, that is not significant when we talk about Metro style which is based on WinRT rather.

Reference

http://channel9.msdn.com/

Architecture, Process Lifecycle, Languages representations are from Slides prepared by Jensen Harris & Scott Dickens, at the Build conference

%d bloggers like this: