Click here to Skip to main content
15,879,348 members
Articles / High Performance Computing
Article

Developing Immersive Apps For A New Breed Of All-In-One Computer

Rate me:
Please Sign up or sign in to vote.
4.00/5 (1 vote)
6 Nov 2014CPOL16 min read 7.3K  
This paper presents four guidelines that can help guide software developers as they design applications that encourage touch interaction and deliver a memorable user experience on Intel® processor-based pAIOs.

This article is for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers

Introduction

Over the years, All-in-One (AIO) computers have become a mainstay in both home and office delivering processing power and big-screen graphics capabilities along with sleek styling that saves on space. With Microsoft’s introduction of Windows* 8, AIOs have been building on traditional keyboard and mouse input with innovative touch capabilities that give end users new ways to interact with software and hardware. And now, a new form factor is emerging that will extend these capabilities even further — the Portable All-in-One (pAIO).

Portable All-in-Ones feature high-end technical specifications including large touch screens that can operate in lay-flat orientations, and a built-in battery that supports limited mobility. These capabilities make new use cases possible and open the door to development of applications and games that incorporate innovative features such as:

  • Multi-user and multi-touch (MUMT) user interfaces
  • Multi-modal interactions based on voice or camera-captured body gestures
  • Multi-gadget scenarios such as using smartphones as game controllers
  • The use of Intel® Wireless Display (WiDi) to provide additional game or application visuals on an HDTV
  • Intel Rapid Start Technology for fast system resume

The ability to operate in a detached horizontal orientation offers both opportunities and challenges to software developers who will need to adjust their mindset to take advantage of the features that pAIOs bring. This paper presents four guidelines that can help guide software developers as they design applications that encourage touch interaction and deliver a memorable user experience on Intel® processor-based pAIOs.

Guideline #1: Understand the platform capabilities of Portable All-in-Ones

pAIOs bring unprecedented opportunities to application developers with large touch screens, light mobility with lay-flat orientations, and the processing power for demanding multi-touch multi-user applications

Portable All-in-One computers share many design elements with traditional AIOs; however, Intel processor-based pAIOs have several key characteristics that promise to bring new opportunities to software developers and new experiences to end users. Portable All-in-Ones support both stationary and adaptive computing experiences with a screen recline mechanism that allows for vertical, reclined, and lay-flat use cases with screen sizes from 18.4” to 27” (Figure 1). Multi-touch capability is delivered by touch panels supporting a minimum of 10 touch points, and light mobility is supported with an onboard battery. With light mobility and lay-flat capabilities in the picture, pAIOs open the door to developing innovative new software that takes full advantage of multi-touch, multi-user capabilities delivered on an immersive large-screen canvas.

Image 1

Figure 1. High Level Development Environments for Windows 8 Apps

The visibly smart Intel® Core™ processor family delivers the incredible performance and stunning visuals required by full featured, multi-user, multi-touch pAIO applications in categories such as gaming, education, entertainment, health and wellness, business, content creation, and lifestyle. Application designers can count on Intel Core processors to bring their apps to life with brilliant imagery and seamless touch experiences (Table 1).

New, innovative technologies are also key to the capabilities of pAIOs. With the introduction of the new 4th Generation Intel Core Process, pAIOs are able to take advantage of new platform technologies including but not limited to: Intel Rapid Start Technology and Intel Smart Connect Technology. Intel Rapid Start Technology enables systems to quickly resume from deep sleep in about 6 seconds. Key benefits include:

  • Less Waiting - A fast resume time that is more responsive than a fresh Start Up or Resume from Hibernate.
  • A smarter Off/On experience - Instant on and ready to go, a fast and power friendly alternative to performing a full system startup and shutdown.
  • Maintains user context - Similar to sleep or standby, a user can return to their previous work, resume Internet activities, restart paused movies, etc.

Intel Smart Connect Technology allows more productive sleep states by periodically waking your system to update all applications that are open. Once the content has been updated, your system will resume a sleep state.

Feature 3rd Generation Intel® Core™ Processors 4th Generation Intel® Core™ Processors Benefits

Processor

  • Intel® Turbo Boost Technology
  • Intel® Hyper-Threading Technology
  • Intel Turbo Boost Technology 2.0
  • Intel Advanced Vector Extensions 2.0 (Intel AVX2)
  • Increase performance of both multi-threaded and single-threaded workloads.
  • Improves performance in face detection, professional imaging and high performance computing.

USB

USB 3.0 (5 Gbps)

USB 3.0 (5 Gbps)

More than 10X faster than USB 2.0

Media and Display

  • Intel® Quick Sync Video
  • Intel® Clear Video HD Technology
  • Intru™ 3D
  • Intel® HD 2500/4000 Graphics
  • Intel® Wireless Display 3.x
  • Intel Rapid Start Technology
  • Intel Smart Connect Technology
  • Intel Quick Sync Video
  • Intel Clear Video HD Technology
  • Intru 3D
  • Intel HD 4600/Iris Graphics
  • Intel Wireless Display 3.x
  • Get back to work quickly
  • Keep email, social networks, and other apps that access the Internet constantly updated
  • Accelerates media transcode3
  • View images and HD video the way they were meant to be seen—sharper, smoother, and richer4
  • Supports 3-D visual experiences on your PC6
  • Great graphics built in4
  • Easily stream content directly to big screen HDTV5
Table 1. Processor Comparison

Guideline #2: Choose your software development environment wisely

Windows 8 supports two different development environments that will define your development tool options, feature availability, compatibility with previous versions of Windows, and your distribution/sales model.

Windows 8 lets you build apps using a variety of programming languages and tools. You can even write components in one language and use them in an app written in another programming language. There is, however, an early decision that you must make, concerning the type of app you want to develop, either a Windows Store app or a Windows Desktop app (see Figure 2).

Desktop apps run in the Windows Desktop mode of Windows 8. This mode looks similar to the legacy Window environment; however, it is not a legacy experience. Touch and sensor based apps are supported in Desktop mode. Additionally, some hardware drivers and device features like Intel Wireless Display and OpenGL* are currently only accessible for apps running in Desktop mode.

Windows Store apps utilize the new WinRT APIs and are developed in Visual Studio* 2012 using C++, C#, or web technologies like HTML5, JavaScript*, and CSS3.

Image 2

Figure 2. High Level Development Environments for Windows* 8 Apps

Developers should be aware that some device features and technologies may not yet be exposed or developed for the Windows Store app environment. Because of this, your choice of Windows Store app mode or Windows Desktop app mode will determine such things as what development environment options will be available to you, what hardware features will be available, backward compatibility with previous version of Windows, and how your app can ultimately be sold and distributed (see Table 2).

The only way to distribute and sell Windows Store apps to the public is through the Windows Store. The Windows Store makes apps available to millions of customers around the world. Desktop developers have more options when it comes to selling and distributing their apps. In addition to traditional distribution and fulfillment options, some developers may be able to list their Desktop apps in the Windows Store (with a link back to a website for purchase).

Feature/Toolset Windows* 8 Desktop Mode Apps Windows Store Mode Apps

Intel® WiDi

Yes (Browser Plugins may be required)

No

Programmable GFX – OpenGL*

Yes

No

Programmable GFX – OpenCL

Yes

No

Programmable GFX – OCL*, CM*

Yes

No

Intel® Graphics Performance Analyzers (Intel® GPA)

Full tool functionality except: IE10, WinRT app analysis, and DX10 in Frame Analyzer (with 15.28 driver + new OpenCL SDK)

No (WinRT does not support instrumentation)

Intel® Performance Bottleneck Analyzer (Intel® PBA aka xIF)

Supports Desktop app analysis. Viewer works in Desktop.

Partial feature set works with WinRT.

Dev Environments (VS*, Eclipse*)

Yes

Partial

Intel AppUp® center

Yes

No

Windows Store

No (Some desktop apps may be listed in the Windows Store with a link back to a website for purchase)

Yes

Compatible with previous versions of Windows

Yes

No

Table 2. Feature Compatibility for Windows* Store and Windows Desktop Apps

Guideline #3: Implementing touch is critical in developing compelling apps for pAIOs

Windows 8 has you covered with flexible options for both Windows Store Apps and Windows Desktop Apps

Touch provides an intuitive, fun, and natural way for users to interact with your app. UIs for multi-touch multi-user applications on Intel Core processor-based pAIOs rely on the innovative use of touch as an inherent part of the overall design. Fortunately, Microsoft has ensured that extensive touch APIs are in place to support both Windows Store and Desktop app development.

Windows Store Apps

Windows provides two API sets for building Windows Store apps: the Windows Runtime (WinRT) and the Windows Library for JavaScript (WinJS).

Windows Runtime. These JavaScript, C#, Visual Basic*, and C++ APIs provide access to all core platform features.

  • Pointer events are used to get basic contact info such as location and device type, extended info such as pressure and contact geometry, and to support more complex interactions.
  • Gesture events are used to handle static single-finger interactions such as tapping and press-and-hold (double-tap and right-tap are derived from these basic gestures).
  • Manipulation events are used for dynamic multi-touch interactions such as pinching and stretching and interactions that use inertia and velocity data such as panning/scrolling, zooming, and rotating.

Windows Library for JavaScript. WinJS provides a library of JavaScript APIs that provide controls, CSS styles, and helper functions that assist you in writing code. The WinJS namespace covers functionality that is similar to the Windows.UI.XAML namespaces in WinRT environment.

Windows 8 Desktop Apps

Desktop apps run in the Windows Desktop mode of Windows 8. The three ways to support touch input and gestures in Microsoft Windows 8 Desktop apps are:

  • WM_POINTER is the easiest to code and supports the richest set of gestures, but only runs on Windows 8. WM_POINTER messages receive touch input, and Interaction Context functions are used to recognize gestures from those messages.
  • WM_GESTURE is easy to code and backwards compatible with Windows 7, but it comes with the most restrictions.
  • WM_TOUCH provides the complete solution for backwards-compatible touch support for Windows 7. It notifies your app of every touch event, and your code must collect these events and recognize the gestures they represent.

A common misconception is that you cannot develop new Windows 8 touch-and sensor-based applications for Desktop mode. This is false. Additionally, some hardware drivers and device features like WiDi and OpenGL* are currently only accessible for apps running in Desktop mode.

Multi-modal interaction

Next generation applications and games introducing multi-modal interactions based on voice and camera-captured body gestures are also possible for Windows 8 Desktop mode applications. Developers should consider using the Intel® Perceptual Computing SDK to enable multimodal interaction on pAIOs. Additionally, developers can use Intel® Common Connectivity Framework (Intel® CCF) to enable a multi-gadget scenario where secondary devices like smartphones can be used as controllers for a game running on a pAIO.

Software Frameworks and Validation

Software designers choosing to develop Windows 8 Desktop games have the added benefit of a wealth of existing software frameworks and validation tools. These tools can help accelerate your development schedule, optimize performance, and maximize touch responsiveness for pAIO applications (Table 3).

 

Tool Benefit

Microsoft XNA

Provides tools and libraries that promote platform portability while allowing developers to focus more on content and experience.

Adobe Flash*, AIR, Gaming SDK

Delivers a framework that supports rich UI, media effects, and web connectivity.

OpenGL and DirectX*

Provides access to graphics hardware features to optimize graphics intensive applications.

Windows* Presentation Foundation (WPF)

Provides a powerful GUI development framework with a higher level of abstraction over DirectX with elements that can be linked and manipulated based on events.

HTML5

Provides a markup language for web-based applications that feature rich multimedia and graphics capabilities. Very suitable for online games development.

GPUView

Supports debugging for GPU overload-related issues.

Intel® Power Gadgets

Measures scenario-based CPU power consumption

Visual Studio* 2012 Profiler

Monitors and profiles critical call stacks to isolate performance issues.

FRAPS

Measures frames per second (FPS) to ensure glitch free graphics rendering.

Table 3. Windows* 8 Desktop Mode Software Frameworks and Validation Tools

Guideline #4: Understand the User Perspective

Designing for multi-user multi-touch on large horizontal screens demands a different mindset — you’re not working with a phone screen!

The developer community has been designing compelling games and applications for touch screens like phones and tablets for some time now, but with pAIOs, many of the limitations imposed by these smaller screens are less of a concern, freeing the designer to incorporate more and better touch interactions and controls.

Successful designs will require an awareness of how users will typically interact with the app. Depending on the application, you may have up to four players on a single game, so understanding the perspective of multiple users is critical. Additionally, the placement of controls on the screen needs to reflect the expected usage patterns for the device (Table 4).

Usage Number of Users Perspective Considerations Application Example

Multi-player with individual controls

  • 2 players at opposite sides
  • 4 players at corners

Must be oriented for use depending on where the player is located. Best located on screen edges

Soccer game with player controls along opposite edges of the screen

Multi-player with shared controls

Several players located around the screen in no particular order

Shared controls in easily accessible locations

Traditional family board game with shared control (digital dice, penalty cards, etc.) located in the center of the game board (screen)

Multi-user collaborative apps

Supports several users collaborating around a screen

Shared controls, graphical in nature for easy understanding

Landscape planner

Table 4. Multi-Player Usage Examples

Position of the User

New multi-user applications become possible when pAIO screens are detached and placed on a tabletop. For application developers, designing apps for multiple users requires a detailed analysis on how they will interact with the application and with each other. Understanding the user perspective is critical:

  • Early design should clearly identify the number and type of users. Will each user need a set of controls (as in many games), or will a single set of controls suffice (collaborative multi-user apps)
  • The easiest touch targets are going to be near the edges of the screen
  • Multiple players may have multiple focus points at any given time

User Controls are Key

How you design your user interface can influence how easy your app is to use with touch input. To ensure that your app is touch optimized, consider these guidelines:

  • Due to the large screen size of pAIOs, consider using larger icons and images so that minimum up-scaling is required
  • Each user should be confident on what controls are available either by physical location, color, or shape. Image-based instructions are generally easier to understand from different angles
  • Touch requires larger UI elements to ensure accuracy and prevent fingers from obscuring important information, but touch on a large screen affords the designer much more real estate to work with compared to tablets
  • Make sure the UI is always visible and be aware of how the users’ hands may cover other controls or screen information

Keep the App Alive and Interesting

Large pAIO screens on tabletops give designers new opportunities to engage users with both visuals and intuitive touch interactions. Your app should feel alive and invite the user to engage, explore, and touch. The following tips will help you keep things “alive”:

  • Always provide immediate, direct visual feedback for touch interactions. For example, you can use highlighting or tool tips to indicate the current touch target and prevent the accidental activation of other targets
  • Tune the physics engine to manage the pace of play. Use physics effects such as acceleration and inertia to provide a natural feel in interactions such as panning
  • Consider introducing next generation functionality with multi-modal interaction such as voice-based and/or hand gesture-based controls

Summary

Portable All-in-Ones are opening new opportunities for application developers with large touch screens, light mobility, and lay-flat orientations. Powered by Intel Core processors, these innovative new applications promise to deliver the brilliant imagery and seamless touch experiences that users crave. However, designing these new apps demands a different mindset and a clear understanding of the development options that exist, and here too Intel can help with a rich library of resources covering software design considerations, touch integration, and platform capabilities. For more information visit the links listed below.

Design and Development:

  1. Designing for Ultrabook™ Devices and Touch-enabled Desktop applications:
    http://software.intel.com/en-us/articles/designing-for-ultrabook-devices-and-touch-enabled-desktop-applications
  2. Developing with Desktop Natural User Interface APIs for Developers:
    http://software.intel.com/en-us/articles/developing-with-desktop-natural-user-interface-api-s-for-developers
  3. Designer Tools for Windows Desktop Applications:
    http://software.intel.com/en-us/articles/designer-tools-for-windows-desktop-applications
  4. Reimagining Apps for Ultrabook™- Touch Interfaces:
    http://software.intel.com/en-us/blogs/2012/08/09/re-imagining-apps-for-ultrabook-part-1-touch-interfaces/
  5. Touch Design Principles: Postures and Touch Targets:
    http://software.intel.com/en-us/blogs/2012/08/29/touch-design-principles-part-2-postures-and-touch-targets
  6. Enabling Touch in Windows* 8 Style UI Apps with C#:
    http://software.intel.com/en-us/articles/enabling-touch-in-windows-8-metro-style-apps-with-c
  7. The Human Touch: Building Ultrabook™ Applications in a Post-PC Age:
    http://software.intel.com/en-us/articles/the-human-touch-building-ultrabook-applications-in-a-post-pc-age
  8. Handling touch input in Windows* 8 Applications:
    http://software.intel.com/en-us/articles/handling-touch-input-in-windows-8-applications
  9. Touch friendly control buttons:
    http://software.intel.com/en-us/articles/touch-friendly-control-buttons-bubbles-2
  10. Touch reactive samples:
    http://software.intel.com/en-us/articles/touch-reactive-sample-bubbles
  11. Intel Smart Connect Technology:
    http://www.intel.com/content/www/us/en/architecture-and-technology/smart-connect-technology.html

Code Samples:

  1. Comparing Touch Coding Techniques – Windows* 8 Desktop Touch Sample:
    http://software.intel.com/en-us/articles/comparing-touch-coding-techniques-windows-8-desktop-touch-sample
  2. Touch Samples:
    http://software.intel.com/en-us/articles/touch-samples
  3. Ultrabook™ Desktop Applications Development on Windows* 8 – Photo Applications with Touch and Sensors:
    http://software.intel.com/en-us/articles/photo-application-for-ultrabook-and-windows-8-desktop-applications-development-with-touch-and-sensors
  4. Windows Desktop Touch Camera Sample:
    http://software.intel.com/en-us/articles/windows-desktop-touch-camera-sample-whitepaper

 

Copyright © 2013 Intel Corporation. All rights reserved.

Intel, the Intel logo, AppUp, Core, InTru, and Ultrabook are trademarks of Intel Corporation in the U.S. and/or other countries.

*Other names and brands may be claimed as the property of others.

OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

1 (Intel® Turbo Boost Technology) Requires a system with Intel® Turbo Boost Technology. Intel Turbo Boost Technology and Intel Turbo Boost Technology 2.0 are only available on select Intel® processors. Consult your system manufacturer. Performance varies depending on hardware, software, and system configuration. For more information, visit www.intel.com/go/turbo.

2(Hyper-Threading) Requires an Intel® Hyper-Threading Technology-enabled system; consult with your PC manufacturer. Performance will vary depending on the specific hardware and software used. Not available on all Intel® processors. For more information, including details on which processors support Intel HT Technology, visit http://www.intel.com/go/ht.

3(Quick Sync Video—3-year baseline) Video transcode claim using CyberLink* MediaEspresso 6 to render a 4-minute, 449 MB, 1920 x 1080i, 18884 Kbps, MPG2 video file for playback on an Apple iPod* with resolution of 640 x 360, H.264, and file format of .MP4. Speedup is 4X faster on 3rd gen Intel® Core™ i5-3450 processor (desktop) and 3rd gen Intel® Core™ i5-3320M processor (laptop) compared with Intel® Core™ processor (desktop) and Intel® Core™2 Duo E8400 (desktop) and P8600 (laptop).

4(Built-in visuals) Built-in visual features are not enabled on all PCs and optimized software may be required. Check with your system manufacturer. Learn more at http://www.intel.com/go/biv.

5 (Intel® Wireless Display) Requires an Intel® Wireless Display-enabled PC, tablet, Smartphone, compatible adapter, and TV. 1080p and Blu-ray* or other protected content playback only available on select Intel® processors with built-in visuals enabled. Consult your PC manufacturer. For more information, see www.intel.com/go/widi.

6 Viewing stereo 3D content requires 3D glasses and a 3D-capable display. Physical risk factors may be present when viewing 3D material.

Intel® Developer Zone offers tools and how-to information for cross-platform app development, platform and technology information, code samples, and peer expertise to help developers innovate and succeed. Join our communities for the Internet of Things, Android*, Intel® RealSense™ Technology and Windows* to download tools, access dev kits, share ideas with like-minded developers, and participate in hackathons, contests, roadshows, and local events.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions