SlideShare une entreprise Scribd logo
1  sur  145
Télécharger pour lire hors ligne
Intel Ultrabook™ AppLab
     Intel® Corporation
    Berlin, September 3rd
Overview of the Entire Day
1. Welcome & Opening                                                                                                                                     Monika
2. Introduction into Ultrabook™ Development                                                                                                              Paul
3. New Windows UI Design                                                                                                                                 Oliver
4. Technical Presentation: Touch                                                                                                                         Sulamita
5. Lunch & Networking: Check out also the Demos!
6. Technical Presentation: Sensors                                                                                                                       Xavier
7. Break & Networking: Check out also the Demos!
8. Intel Tools                                                                                                                                           Uli
9. Ultrabook Developer Resources                                                                                                                         Paul
10. Wrap Up and Closing                                                                                                                                  Monika
11. SDP (Software Development Platform) Distribution
12. Hacking Session at the c-base
                          Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                    2
Who am I?
     Wannabe Geek
                        Late Early Adopter


       @MonikaLischke


                         #IntelAppLab


            Monika Lischke
Team Lead Community Management EMEA
                                             3
Introduction to Developing
 Ultrabook™ Applications
      Intel® Corporation
Legal Disclaimer
• INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH
      PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL
      PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT,
      COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems,
      or in nuclear facility applications.

• Intel products may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are
       available on request.

• Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice.

• This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a
       design with this information.

• Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and
      shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.

• Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject
       matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such
       patents, trademarks, copyrights, or other intellectual property rights.

• Wireless connectivity and some features may require you to purchase additional software, services or external hardware.

• Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured
      by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of
      information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the
      performance of Intel products, visit Intel Performance Benchmark Limitations

• Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.



Copyright © 2011 Intel Corporation. All rights reserved.

Intel Confidential - Customer NDA Use Only

* Other Names and Brands maybe claimed as the property of others. All dates, plans and features are preliminary and subject to change without notice.
                                                      Copyright© 2012, Intel Corporation. All rights reserved. *Other brands
                                                             and names are the property of their respective owners                                                             5
Who am I?




     Paul Farquhar
EMEA AppUp Technical Lead
                            6
What do I like to do?




           @TheGlenPaul

                          7
What do we eat – Haggis!




                           8
You need the proper tools!




                             9
WHAT DOES ULTRABOOK / WINDOWS*                                                    TM


8 MEAN FOR CURRENT DEVELOPERS?



                  Copyright© 2012, Intel Corporation. All rights reserved.
            *Other brands and names are the property of their respective owners
                                                                                       10
Worried about the Windows* 8
              transition?
                                                                                 New
                                                                              Windows*8
Do I have to re-write
                                                                                 UI?
all of my Win32 apps                                                                                                                                   Do my applications
     from scratch?                                                                                                                                      need to support
                                                                                                                                                            touch?


     What’s the
     difference                                                                                                                                            WinRT?
    between an
  Ultrabook and a
     notebook?

                                                                                                                                                        How do I use an
       How does
                                                                                                                                                          Ultrabook’s
       HTML5* fit
                                                                              Desktop?                                                                     sensors?
        into this?
                        Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                            11
The world of Windows* 8
• New Windows*8 apps                                                                                                        New Windows*8 Style        Desktop Style

  have a single, full-screen window with
  multiple views
  – Must follow the New Windows*8 user
    experience
  – Require a new developer ecosystem
• Desktop Applications
  – Windows* 8 supports Native Win7
    Applications
  – Run in a desktop UI, with full device
    and driver compatibility
  – Can take advantage of UltrabookTM &
    Windows* 8 features
                                                                                                                                                        Source: Microsoft


                        Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                            12
How Windows*8 and the Desktop
       Work Together
     Desktop Application Launched from New Windows*8 Start Screen




 Click tile for iTunes*                                                      iTunes Desktop app launches



                 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names
                                   are the property of their respective owners                              13
                                                                                                           13
Windows* 8 Compatibility
                     Expectations
                                                                                                                                                                                                            x86 Only
                                                                                                                                                             New Windows*8 Apps                Desktop applicaitons




                                                                                                                                                                                  x86 + ARM*        Source: Microsoft

Legacy Compatibility for IA:
   • Windows* 8 supports Native Win7 Applications (in Desktop UI, with full device and driver compatibility)
   • Desktop Applications run as is, no changes required, in the Desktop UI mode of Windows* 8
   • 4 million+ “legacy” Applications supported by IA.

New New Windows*8 apps:
   • Requires a NEW developer ecosystem
   • WinRT* (i.e. New Windows*8*) apps to be compatible with both x86- and ARM-based systems
   • HTML5/JavaScript and .NET desktop applications expected to be compatible with both x86 and ARM


                                  Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                                                                      14
ULTRABOOK™ / WINDOWS* 8 FEATURES
  (HARDWARE, OS, APPLICATION LEVELS)



                       Copyright© 2012, Intel Corporation. All rights reserved.
                 *Other brands and names are the property of their respective owners
                                                                                       15
Ultrabook Built to Set Applications Apart
              TM




 UX                   Desktop                                                                                                                            New Windows*8




                   Touch/Gestures                                                                                                                    Context Aware Sensors
 OS

             Near Field Communication                                                                                                                     Geolocation



              Graphics                                                                Battery Life                                                            Rapid Start
 Ultrabook
 Hardware
               Security                                                             Thunderbolt                                                               Turbo Boost


                          Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                             16
Ivy Bridge Processor Graphics




• Integration of graphic and media processing onto the same CPU die
• Dedicated hardwired media processing functions
• Maximum media performance at lowest possible power consumption
• Highly sophisticated graphic execution units (EU) for high quality graphics

                           Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners   17
Intel® Turbo Boost Technology 2.0




• Performance when you need it
• Dynamic overclocking
• Don’t need to drain power constantly for all processes
• Helps reduce temperature and extends battery power.
                         Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                        18
OS Differentiators
•   Touch- and gesture-based UI
•   Context aware sensors
•   Near field communication
•   Geolocation

                                                                                                                             Context Aware
                Touch/Gestures
                                                                                                                                Sensors
OS
                  Near Field
                                                                                                                                   Geolocation
                Communication


                 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                 Intel Confidential
                                                                                                                                                                19
Application Differentiators
                                                                                                                                                  New Windows*8   Desktop Style
• Touch and Sensors can be enabled for all                                                                                                            Style
  three styles of applications



                              • New Windows*8 apps have a single, full-screen
       New                      window with multiple views
    Windows*8                 • Clean typography and animations
                              • Fast, fluid touch first experience


                              •       Retains the flexibility of the traditional Windows* Desktop
  Desktop Style               •       Full access to familiar x86 applications and tools
                              •       Provides finer-grained control


                              •            HTML5* apps can run as New Windows*8 apps or as
                                           Desktop in Internet Explorer 9 & 10
   HTML5 Style

                               Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                   Intel Confidential
                                                                                                                                                                                  20
Digital Storefronts for Windows* 8




Intel AppUp® for Desktop                                        Windows Store* for New
Applications                                                    Windows*8 apps


                  Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names
                                    are the property of their respective owners                      21
NEW WINDOWS*8 API FOR
 DESKTOP DEVELOPERS




                Copyright© 2012, Intel Corporation. All rights reserved.
          *Other brands and names are the property of their respective owners
                                                                                22
Application Environment

                New Windows*8 apps                                                                                                                       Desktop Applications

                                                                                                                                                                        XAML
View               XAML
                                                               HTML CSS
                                                                                                                           HTML                                                 C#
           C/C++       C#, VB                                     JavaScript                                                                                      C
                                                                                                                         JavaScript
Model                                                              (Chakra)                                                                                      C++            VB


                      WinRT APIs

                      Graphics                                     Devices
Systems    Network       &                                                                                                Internet
Services                                                              &                                                                                         Win32           .NET
            & Data     Media                                                                                              Explorer
                                                                   Printing
                      App Model

Kernel                                                         Windows Kernel Services

                          Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                                                       23
WinRT
• API to access to the system (display, file
  system, sensors, media devices, etc)
  – Everything needed for a New Windows*8 app
  – Desktop applications can use a sub-set of WinRT
     • Combine with Win Native or .NET
• Languages: C++, C#, JavaScript and VB
  – WinRT HTML or XAML elements are restricted to
    New Windows*8 apps

                 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners   Intel Confidential
                                                                                                                                                               24
Desktop apps and Windows
          Native
• Primarily the same as Win32 on Windows 7
   –   Computer System Hardware Classes
   –   Installed Application Classes
   –   Operating System Classes
   –   Performance Counter Classes
   –   Security Descriptor Helper Classes
   –   WMI Service Management Classes
• Access to the hardware
   – Better performance
   – Less abstraction
• Access to sensors via COM interfaces
• Code is unmanaged
   – No automated free memory management


                        Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                       25
WinRT API Areas
•   Core                                                                                    •               Networking
•   Controls                                                                                •               Printing
•   Data and content                                                                        •               Presentation
•   Devices                                                                                 •               Remote Desktop
•   Files and folders                                                                       •               Security
•   Globalization                                                                           •               Social
•   Graphics                                                                                •               UI Automation
•   Helpers                                                                                 •               User Interaction
•   Media
Underlined items have classes available to desktop applications
                           Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                          26
Microsoft Presentation by Oliver




                   Copyright© 2012, Intel Corporation. All rights reserved.
             *Other brands and names are the property of their respective owners
                                                                                   27
APPLICATION DEVELOPMENT WITH
   TOUCH AND SENSORS ON
  ULTRABOOKTM / WINDOWS 8

         Sulamita Garcia – sulamita.garcia@intel.com
                Technical Marketing Engineer
                    Twitter @sulagarcia



                           Copyright© 2012, Intel Corporation. All rights reserved.
                     *Other brands and names are the property of their respective owners
                                                                                           28
/me
MAHJONG DEMO HERE




         Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                        30
Using touch in a desktop application
• Touch and gestures
• Do’s and Don’t of gesture interfaces
• Demo: Use touch and gestures to select, move
  and manipulate three images
• The Windows Touch API
• Using touch with XMAL



               Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                              31
Adding touch to a desktop application
•    Touch is not a mouse
•    Make touch targets large enough
•    Support standard gestures and behaviors
•    Portrait vs. Landscape
•    Do not use touch just for touch’s sake
•    Touch should be forgiving
•    Microsoft User Experience Guidelines
     – msdn.microsoft.com/en-
       us/library/windows/desktop/cc872774.aspx
     – blogs.msdn.com/b/ie/archive/2012/04/20/guidelines-for-
       building-touch-friendly-sites.aspx

                     Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                    32
Designing for Touch User Experience
• Design UI to include traditional laptop style and tablet
  mode usages
• Space and size controls to register fuzzy touch input
        – Common Controls: 23X23 pixels
        – Command Controls: 40X40 pixels
• Use multiple form tabs for touch efficiency
• Consider the target size while designing your
  application UI
• Use natural and intuitive controls
• Ultrabook Optimal Resolution: 1366X768
Source: MSDN
http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines




                                                              Copyright(C) 2012 Intel Corporation. All rights reserved.
                                                         *Other brands and names are properties of their respective owners.
                                                                                                                              33
Designing for Touch User Experience
• Use common controls as much as possible
• Choose custom controls that support touch
• Prefer constrained controls to unconstrained
  controls
• Provide default values and auto text-
  completion
• Use check boxes instead of multiple selection
  lists
Source: MSDN
http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines



                                                         Copyright(C) 2012 Intel Corporation. All rights reserved.
                                                    *Other brands and names are properties of their respective owners.
                                                                                                                         34
Designing for Touch User Experience
• Place controls in areas better utilized for touch
• Command controls should be more easily
  accessible




                         Copyright(C) 2012 Intel Corporation. All rights reserved.
                    *Other brands and names are properties of their respective owners.
                                                                                         35
WINDOWS TOUCH API

                Copyright© 2012, Intel Corporation. All rights reserved.
          *Other brands and names are the property of their respective owners
                                                                                36
Using Windows Touch API
• Touch and gesture events are delivered via Windows Touch
  messages
    – Windows must register for Windows Touch input:
      RegisterTouchWindow
• WM_TOUCH reports action, position and identifier
• WM_GESTURE describes the gesture via GESTUREINFO
  structure
• Special interfaces to help process gesture messages
    – IManipulationProcessor
    – IInertiaProcessor
• API reference at msdn.microsoft.com/en-
  us/library/windows/desktop/dd371406%28v=vs.85%29.aspx




                               Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                              37
WinNative: Receive gesture message
                                                                                    LRESULT CALLBACK
                                                                                        WndProc(…)
                                                                                    {
                                                                                      …
                                                                                      switch (message)
                                                                                      {
• Check for                                                                             case WM_GESTURE:
                                                                                          // Call code to
  WM_GESTURE message                                                                      // interpret the
  in WndProc                                                                              // gesture
                                                                                          return
                                                                                            DecodeGesture(…);
                                                                                        …
                                                                                    }

                                                                                                                                             (Source: Microsoft)


              Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                            38
WinNative: Process gesture
                                                                                        LRESULT DecodeGesture(…)
                                                                                        {
• Retrieve the additional                                                                 …
                                                                                          BOOL bResult = GetGestureInfo(…);
  gesture information from                                                                      BOOL bHandled = FALSE;
  the GESTUREINFO                                                                               if (bResult)
  structure                                                                                     {
                                                                                                  // now interpret the gesture
                                                                                                  switch (gi.dwID){
                                                                                                    case GID_ZOOM :
                                                                                                      // Code for zooming goes here
                                                                                                      bHandled = TRUE;
• Handle each of the                                                                                  break;
                                                                                                    case GID_PAN :
  possible gestures                                                                                   …
                                                                                                    case GID_ROTATE :
                                                                                                      …
                                                                                                    case GID_TWOFINGERTAP:
                                                                                                      …
                                                                                                    case GID_PRESSANDTAP:
                                                                                                      …
                                                                                                    default:
                                                                                                     // A gesture was not recognized
                                                                                                     break;
                                                                                                  }     …                      (Source: Microsoft)

                  Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                 39
Recognized gestures
–   Tap/Double tap
–   Panning with inertia
–   Selection/Drag
–   Press and tap
–   Press and hold
–   Zoom
–   Rotate
–   Two-finger tap
–   Flicks

                             Copyright© 2012, Intel Corporation. All rights reserved.
                       *Other brands and names are the property of their respective owners
                                                                                             40
WINDOWS TOUCH API / XAML /
.NET
                 Copyright© 2012, Intel Corporation. All rights reserved.
           *Other brands and names are the property of their respective owners
                                                                                 41
Using touch and XAML/.NET
• XAML provides access to WPF touch-enabled
  UI components
  – WPF touchs event are available in both Windows* 7 and
    Windows* 8.
• Typical gesture events:
  – ManipulationStarting
  – ManipulationDelta
  – ManipulationInertiaStarting



                   Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                  42
XAML: TouchControl.xaml
                                                                        <UserControl x:Class="Win8Demo.TouchControl"
• Three images placed in                                                    …>

  a Grid inside of a                                                        <Grid x:Name="cont" ClipToBounds="True" >
                                                                                <!-- Set the IsManipulationEnabled to

  TouchControl                                                                   true -->
                                                                                <Image x:Name="photo_1"
                                                                                  Source="/Assets/ultrabook1.png“
                                                                                  IsManipulationEnabled="True"
                                                                                  Width="500" />

• Each image has                                                                <Image x:Name="photo_2“
                                                                                  Source="/Assets/ultrabook2.png“

  IsManipulationEnabled                                                           IsManipulationEnabled="True“
                                                                                  Width="500" Margin="125,-79,25,79"/>
                                                                                <Image x:Name="photo_3“
  set to true                                                                     Source="/Assets/ultrabook3.png“
                                                                                  IsManipulationEnabled="True“
                                                                                  Width="500" Margin="0,-59,150,59" />
                                                                            </Grid>
                                                                        </UserControl>




                 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                43
Touch Event State Diagram
                               Events begin with User
Manipulation                   Touching the Image
  Starting

                                                                                         Manipulation
                   Manipulation
                                                                                            Delta
Manipulation      Inertia Starting
                                                                                          w/ Inertia
   Delta
                               User finger is lifted from the
                                          screen
 User finger is
 touching the
    screen                                                                               Manipulation
                                                                                          Completed
                         Copyright© 2012, Intel Corporation. All rights reserved.
                   *Other brands and names are the property of their respective owners
                                                                                                        44
XAML: TouchControl.xaml.cs
                                                                                 public TouchControl()
                                                                                 {
                                                                                    …

                                                                                              //Register for manipulation events

• Add event handlers to                                                                       photo_1.ManipulationStarting +=
                                                                                                 m_rect_ManipulationStarting;
                                                                                              photo_1.ManipulationDelta +=
  each image for:                                                                                m_rect_ManipulationDelta;
                                                                                              photo_1.ManipulationInertiaStarting +=
  •ManipulationStarting                                                                          m_rect_ManipulationInertiaStarting;

  •ManipulationDelta                                                                          photo_2.ManipulationStarting += …
  •ManipulationInertiaStarting                                                                photo_3.ManipulationStarting += …
                                                                                 }




                      Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                     45
Touch Event State Diagram
                               Events begin with User
Manipulation                   Touching the Image
  Starting

                                                                                         Manipulation
                   Manipulation
                                                                                            Delta
Manipulation      Inertia Starting
                                                                                          w/ Inertia
   Delta
                               User finger is lifted from the
                                          screen
 User finger is
 touching the
    screen                                                                               Manipulation
                                                                                          Completed
                         Copyright© 2012, Intel Corporation. All rights reserved.
                   *Other brands and names are the property of their respective owners
                                                                                                        46
XAML: Manipulation starting event
              handler
• ManipulationStarting event                                                                 void
  handler is called at start of                                                              m_rect_ManipulationStarting
  touch event                                                                                (…)
                                                                                             {
                                                                                               …
• By setting Manipulation-                                                                     e.ManipulationContainer =
  Container to the touched                                                                      this;
  image all subsequent
  manipulation events will be                                                                }
  relative to that element




                       Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                      47
Touch Event State Diagram
                               Events begin with User
Manipulation                   Touching the Image
  Starting

                                                                                         Manipulation
                   Manipulation
                                                                                            Delta
Manipulation      Inertia Starting
                                                                                          w/ Inertia
   Delta
                               User finger is lifted from the
                                          screen
 User finger is
 touching the
    screen                                                                               Manipulation
                                                                                          Completed
                         Copyright© 2012, Intel Corporation. All rights reserved.
                   *Other brands and names are the property of their respective owners
                                                                                                        48
XAML: Manipulation delta event
               handler
• ManipulationDelta                                          void m_rect_ManipulationDelta(…)
                                                             {
  event happens as user                                        …
                                                               //Get the manipulation’s delta
  moves fingers                                                var delta = e.DeltaManipulation;

                                                                      //Compute the transformed center point
                                                                      Point rectCenter = new Point(rect.ActualWidth *
                                                                        0.5, rect.ActualHeight * 0.5);
• Compute new image                                                   rectCenter = matrix.Transform(rectCenter);

  center point, scale, and                                            //Adjust the element’s scale, rotation and
                                                                        translation
  rotation using event                                                matrix.ScaleAt(delta.Scale.X, delta.Scale.Y,
                                                                        rectCenter.X, rectCenter.Y);
  data                                                                matrix.RotateAt(delta.Rotation, rectCenter.X,
                                                                        rectCenter.Y);
                                                                      matrix.Translate(delta.Translation.X,
                                                                        delta.Translation.Y);

• Set Handled to true so                                              //Update the element’s render transformation

  other handlers don’t                                                rect.RenderTransform =
                                                                        new MatrixTransform(matrix);
  process same event                                                  e.Handled = true;


                     Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                    49
Touch Event State Diagram
                               Events begin with User
Manipulation                   Touching the Image
  Starting

                                                                                         Manipulation
                   Manipulation
                                                                                            Delta
Manipulation      Inertia Starting
                                                                                          w/ Inertia
   Delta
                               User finger is lifted from the
                                          screen
 User finger is
 touching the
    screen                                                                               Manipulation
                                                                                          Completed
                         Copyright© 2012, Intel Corporation. All rights reserved.
                   *Other brands and names are the property of their respective owners
                                                                                                        50
XAML: Inertia starting event handler
•   Inertia actions are handled by the                                                   void m_rect_ManipulationInertiaStarting(…)
                                                                                         {
    ManipulationInertiaStarting event                                                      //Set the manipulations inertia values
    handler                                                                                e.TranslationBehavior = new
                                                                                             InertiaTranslationBehavior()
•   Define the behavior of the inertia                                                       {
    by specifying                                                                               InitialVelocity =
                                                                                                e.InitialVelocities.LinearVelocity,
     • Linear velocity                                                                          DesiredDeceleration =…
     • Deceleration                                                                          };
     • Expansion velocity (used in                                                         e.ExpansionBehavior = new
                                                                                             InertiaExpansionBehavior()
         pinch or spread)                                                                    {
     • Angular velocity (used in                                                                InitialVelocity =
                                                                                                e.InitialVelocities.ExpansionVelocity,
         rotation)                                                                              DesiredDeceleration = …
                                                                                             };
                                                                                           e.RotationBehavior = new
                                                                                             InertiaRotationBehavior()
                                                                                             {
                                                                                                InitialVelocity =
•   Again, set Handled to true so other                                                         e.InitialVelocities.AngularVelocity,
    handlers don’t process same event                                                        };
                                                                                                DesiredDeceleration = …

                                                                                           e.Handled = true;…

                           Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                          51
Touch Event State Diagram
                               Events begin with User
Manipulation                   Touching the Image
  Starting

                                                                                         Manipulation
                   Manipulation
                                                                                            Delta
Manipulation      Inertia Starting
                                                                                          w/ Inertia
   Delta
                               User finger is lifted from the
                                          screen
 User finger is
 touching the
    screen                                                                               Manipulation
                                                                                          Completed
                         Copyright© 2012, Intel Corporation. All rights reserved.
                   *Other brands and names are the property of their respective owners
                                                                                                        52
XAML: Handle inertia manipulation
                                                                                               if (e.IsInertial)
• Check if inertia is moving the                                                                {
  image across the grid                                                                           //Get the containing element’s size
                                                                                                  Rect containingRect = …
                                                                                                     (e.ManipulationContainer).RenderSize);
                                                                                                  //Get the transformed element’s new
                                                                                                  //bounds
                                                                                                  Rect shapeBounds =
                                                                                                     rect.RenderTransform.TransformBounds
                                                                                                     (…);
                                                                                                  //If element falls out of bounds
• If so, make sure image does not                                                                 if
                                                                                                  (!containingRect.Contains(shapeBounds))
  travel outside of the grid by                                                                   {
  calling the Complete method to                                                                     //Report boundary feedback
                                                                                                     e.ReportBoundaryFeedback(…);
  end the inertia                                                                                    //Stop any after inertia
                                                                                                     e.Complete();
                                                                                                  }
                                                                                                }
                                                                                         …




                         Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                        53
Summary
• Your application is already touch enabled,
  consider making touch oriented
• User Experience is the perception, not just
  execution – delight the user!
• Windows native API provides WM_GESTURE by
  default, RegisterTouchWindow for WM_GESTIRE
• XAML enables easy design and can be used with
  C# or VB for Desktop applications
  – Consider Inertia and Bounderies when Manipulating
    objects
                           Copyright© 2012, Intel Corporation. All rights reserved.
                     *Other brands and names are the property of their respective owners
                                                                                           54
References
• Intel Ultrabook™ Community
• Intel® Software Network
  – software.intel.com
• Windows Development Reference
  – msdn.microsoft.com/en-
    us/library/windows/desktop/hh447209%28v=vs.85%2
    9.aspx
• WinRT API Reference
  – msdn.microsoft.com/en-
    us/library/windows/apps/br211377.aspx

                 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                55
Q&A


Sulamita Garcia – sulamita.garcia@intel.com
       Technical Marketing Engineer
           Twitter @sulagarcia




            Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                           56
LUNCH!!!!



                                                                       Source: Microsoft


       Copyright© 2012, Intel Corporation. All rights reserved.
 *Other brands and names are the property of their respective owners
                                                                          Intel Confidential
                                                                                         57
Application Development using
            Sensors
        Intel® Corporation
Legal Disclaimer
• INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH
      PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL
      PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT,
      COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems,
      or in nuclear facility applications.

• Intel products may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are
       available on request.

• Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice.

• This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a
       design with this information.

• Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and
      shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.

• Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject
       matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such
       patents, trademarks, copyrights, or other intellectual property rights.

• Wireless connectivity and some features may require you to purchase additional software, services or external hardware.

• Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured
      by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of
      information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the
      performance of Intel products, visit Intel Performance Benchmark Limitations

• Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.



Copyright © 2011 Intel Corporation. All rights reserved.

Intel Confidential - Customer NDA Use Only
                                                      Copyright© 2012, Intel Corporation. All rights reserved. *Other brands
* Other Names and Brands maybe claimed as the property of others. All dates, plans of their respective owners
                                                       and names are the property and features are preliminary and subject to change without notice.                       59
Agenda
• Overview of available sensors
• Using sensors in a Windows 8* application
  - In C++ desktop applications, using COM interface
  - In C++ or C#/.NET Windows 8* store and desktop
    applications, using WinRT APIs
• Considerations on Efficiency



                 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                60
Who am I ?




Xavier Hallade (@ph0b)
Technical Marketing Engineer at Intel
                  Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                 61
Sensors
OVERVIEW OF AVAILABLE SENSORS


                Copyright(C) 2012 Intel Corporation. All rights reserved.
           *Other brands and names are properties of their respective owners.
                                                                                62
Available Sensors

    Compass   Accelerometer   Gyroscope   GPS   Ambient Light   NFC

+ with Sensor Fusion: Inclinometer, Orientation, SimpleOrientation

• Sensor Fusion : virtual sensors created by combining data
  from compass, accelerometer and gyroscope
• Ambient Light, GPS, 3D Motion and orientation sensors are
  all mandatory on Windows 8* Tablets and Convertibles
• Applications can subscribe to sensor events, set callbacks or
  directly poll their current state.
Orientation and Motion
• Gyrometer returns yaw, pitch and roll velocities
• Accelerometer returns acceleration along x, y and z,
  and optionally a Shake event
• Simple Orientation : returns device orientation into
  one of four quadrants, face-up, or face-down
• Orientation Sensor and inclinometer both returns
  the complete device orientation
   – Inclinometer returns yaw, pitch, and roll angles
   – Orientation Sensor returns a quaternion as well as a 3x3
     orientation matrix
Orientation and Motion detection
                 same convention as on Android
                 and in the HTML5 specification




                   0.0° ≤ Yaw < 360.0°
                   -180.0° ≤ Pitch < 180.0°
                   -90.0° ≤ Roll < 90.0°
Ambient Light
• Can be used to adapt application interface
  depending on light conditions : contrast,
  font size
• Screen brightness control should be handled
  by the operating system.
               Lighting condition   Iuminance (lux)
               Pitch black                          1
               Very dark                           10
               Dark indoors                        50
               Dim indoors                        100
               Normal indoors                     300
               Bright indoors                   1,000
               Dim outdoors                     5,000
               Cloudy outdoors                 30,000
               Direct sunlight                100,000
Location
Returns latitude, longitude:
- using Wi-Fi if available
- using IP Address otherwise
- using GPS if available and desired accuracy is set
  on High
   - then it can also return Altitude, Speed and Heading

Depending on user’s choice, its use can be denied.
A Windows 8* store app has to declare the
“location” capability in its manifest.
Near Field Communication

• Short range (<4cm)
• Contactless
• Used between active and/or passive devices
  – Active: Smartphone, Tablet, Ultrabook™…
  – Passive: Tags, Smart cards…
• Small amount of data, low data transfer rate
• Easy to use, feels instantaneous (<1/10s)
     -> Great user experience !
Near Field Communication
• Pairing
  – with Bluetooth* peripherals, at the OS level
  – with another running application, by establishing
    a BT or Wi-Fi direct socket, at the application level
• Short data read/write on NFC tags
• Short data exchange with active devices
  – Sharing URIs, contacts, positions
  – Secure transactions
NFC messages
Protocol           Pub. Sub. Message contents
Windows             X X binary data.
WindowsUri          X X UTF-16LE encoded string that is a URI.
                             use PublishUriMessage
WindowsMime         X X message data of a specific mime type.
                             For example, "WindowsMime.image/jpeg".
                             You can subscribe to "WindowsMime" message
                             without specifying the mime type. If so, the first 256
                             bytes received is the ASCII mime type string.
Windows:WriteTag    X        Windows message to be written to a static tag.
WindowsUri:WriteTag X        WindowsUri message to be written to a static tag.
WindowsMime:Write X          WindowsMime message to be written to a static tag.
Tag                          Example, “WindowsMime:WriteTag.image/jpeg”
LaunchApp:WriteTag X         Write a tag that can be used to launch a specific app.
                             more information on msdn.
WriteableTag             X if a writeable tag is brought in to proximity, a
                             proximity message is received that contains an
                             int32 indicating the maximum writeable size.
NFC messages
 Windows messages are fully compatible with NDEF messages,
 but you can also directly manipulate them :
Protocol      Pub. Sub. Message contents
NDEF           X    X properly formatted NDEF records.
NDEF:ext            X application defined NDEF records (TNF field value of 0x04).
NDEF:MIME           X properly formatted NDEF mime message (TNF field value
                        of 0x02). For example, "NDEF:MIME.image/jpeg".
NDEF:URI            X properly formatted NDEF message of a type defined by a
                        URI namespace (TNF field value of 0x03). For example,
                        "NDEF:URI.http://contoso.com/sometype".
NDEF:wkt            X properly formatted NDEF message of a type defined by the
                        NFC forum (TNF field value of 0x01).An example of this
                        type is "NDEF:wkt.U" for the well known type of URI.
NDEF:WriteTag X         message data that should be written to an NFC forum
                        standard static tag.
NDEF:Unknown        X untyped NDEF message (TNF field value of 0x05).
Sensors
LET’S DIVE INTO SOME CODE !


                  Copyright(C) 2012 Intel Corporation. All rights reserved.
             *Other brands and names are properties of their respective owners.
                                                                                  72
Sensors and Location Platform
using COM interface
FROM C++


                 Copyright(C) 2012 Intel Corporation. All rights reserved.
            *Other brands and names are properties of their respective owners.
                                                                                 73
Sensors and Location Platform
• Same interface as on Windows 7
   – Sensor fusion available through new GUIDs
• Sensor manager controls sensors
   – Use sensor manager to get to sensors
   – Notifies when a sensor connects
• Sensors report data, changes in state and disconnection
• Access both via COM interfaces
   – Use API to communicate to sensors
   – Sensor events handled using callbacks
   – API reference at msdn.microsoft.com/en-
     us/library/windows/desktop/dd318953%28v=vs.85%29.aspx



                     Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                    74
COM: Connect to sensor manager
                                                                                              // Create the sensor manager
• Access to sensors is through the
  sensor manager                                                                              ISensorManager pSensorManager;


                                                                                              hr = CoCreateInstance(CLSID_SensorManager,
• Group policy settings may deny                                                                   NULL, CLSCTX_INPROC_SERVER,
                                                                                                   IID_PPV_ARGS(&pSensorManager));
  access to the system sensors
                                                                                              if(hr == HRESULT_FROM_WIN32
                                                                                                       (ERROR_ACCESS_DISABLED_BY_POLICY))
                                                                                              {
                                                                                                       // Unable to retrieve sensor manager due
                                                                                                       // to group policy settings.
                                                                                                       // Alert the user.
                                                                                              }



                                                                                                                                                       (Source: Microsoft)


                        Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                      75
COM: Retrieve a sensor object
                                                                                          // Get the sensor collection
• Request sensors by category, type                                                       hr = pSensorManager->GetSensorsByCategory(
                                                                                                SENSOR_CATEGORY_ALL,
  or ID                                                                                         &pSensorColl);
                                                                                          if(SUCCEEDED(hr))
                                                                                          {
                                                                                            ULONG ulCount = 0;
                                                                                            // Verify that the collection contains at
                                                                                            // least one sensor
                                                                                            hr = pSensorColl->GetCount(&ulCount);
                                                                                            if(SUCCEEDED(hr))
                                                                                            {
                                                                                              if(ulCount < 1)
                                                                                              {
• Request permission to use the                                                                  wprintf_s(L"nNo sensors of the
                                                                                                   requested category.n");
                                                                                                 hr = E_UNEXPECTED;
  sensor(s)                                                                                   } else
                                                                                              {
   • Windows 8 will open a dialog                                                               // Request permissions for all sensors
                                                                                                // in the collection
      box to ask the user                                                                       hr = pSensorManager->
                                                                                                  RequestPermissions(0, pSensorColl,
   • Granting permission triggers                                                             }
                                                                                                    FALSE);
                                                                                            …
      the OnStateChanged event
                                                                                                                                                       (Source: Microsoft)


                        Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                      76
COM: Sensor event callback
                                                                                            class CMyEvents : public ISensorEvents
• Receive event notifications by
                                                                                            {
  implementing required COM                                                                 public:
  interfaces
                                                                                                          STDMETHODIMP QueryInterface(…) {…}
                                                                                                          STDMETHODIMP_(ULONG) AddRef() {…}
• Sensor events require                                                                                   STDMETHODIMP_(ULONG) Release() {…}

  ISensorEvents
                                                                                                          // ISensorEvents methods. //
                                                                                                          STDMETHODIMP OnEvent(…) {…}
• Sensor Manager events require                                                                           STDMETHODIMP OnDataUpdated(…) {…}
                                                                                                          STDMETHODIMP OnLeave(…) {…}
  ISensorManagerEvents                                                                                    STDMETHODIMP OnStateChanged(…) {…}
                                                                                            …




                                                                                                                                                         (Source: Microsoft)


                          Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                        77
COM: Start receiving events
                                                                                          // Create an instance of the event
• To start receiving events provide                                                       // class
  the sensor with a pointer to your                                                       pEventClass = new CMyEvents();
  callback                                                                                if(SUCCEEDED(hr))
                                                                                          {
• To stop receiving events call                                                             // Retrieve the pointer to the
                                                                                            // callback interface
  SetEventSink with a parameter of                                                          hr = pEventClass->QueryInterface(
  NULL                                                                                        IID_PPV_ARGS(&pMyEvents));
                                                                                          }
                                                                                          if(SUCCEEDED(hr))
                                                                                          {
                                                                                            // Start receiving events
                                                                                            hr = pSensor->
                                                                                                 SetEventSink(pMyEvents);
                                                                                          }



                                                                                                                                                       (Source: Microsoft)


                        Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                      78
Ambient Light Sensor
DEMO




           Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                          79
Using WinRT Sensors and
Location API
FROM C# AND C++/CX


                Copyright(C) 2012 Intel Corporation. All rights reserved.
           *Other brands and names are properties of their respective owners.
                                                                                80
WinRT API
• Windows.Sensors.
      •   Accelerometer
      •   Gyrometer
      •   Inclinometer
      •   OrientationSensor
      •   SimpleOrientationSensor
      •   Compass
      •   LightSensor
• Windows.Networking.Proximity.ProximityDevice (NFC)
• Windows.Device.Geolocation (GPS)

                      Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Using the WinRT API
WinRT Sensors and Location APIs are available to
Windows 8* Desktop applications

You need to use WinRT Windows MetaData files :
• Platform.winmd:
  C:Program Files (x86)Microsoft SDKsWindowsv8.0ExtensionSDKsMicrosoft.VCLi
  bs11.0ReferencesCommonConfigurationneutral

• Windows.winmd:
  C:Program Files (x86)Windows Kits8.0ReferencesCommonConfigurationNeutral

                                                                                                                                How ?
                          Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT From Desktop (C#)
Unload your C# Project
Manually edit the .csproj file to add :
<PropertyGroup>
   <TargetPlatformVersion>8.0</TargetPlatformVersion>
 </PropertyGroup>
Reload the project
Add Windows.winmd and Platform.winmd as references
from their respective locations


                  Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT From Desktop (C++)
In your project properties, in C/C++->General:
• Set “Consume Windows Runtime Extension” on Yes
   (/ZW)
• Add Windows.winmd and Platform.winmd paths to
   “Additional #using Directories”
In your source code, add :
       #using <Windows.winmd>
       #using <Platform.winmd>


                 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT Sensor API
No need for a sensor manager:

1 – Retrieve the default sensor/device using GetDefault()
2 – Set the ReportInterval
3 – Add a delegate to ReadingChanged event




                   Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT Sensor API
_accelero = Accelerometer.GetDefault();
if (_accelero != null)
{
         _accelero.ReportInterval = 50 <= _accelero.MinimumReportInterval ?
_accelerometer.MinimumReportInterval : 50;
    //Register for reading changed events
    _accelero.ReadingChanged += (Accelerometer s, AccelerometerReadingChangedEventArgs
args) =>
                    {
                       //use e.Data.AccelerationX/Y/Z
                    };
}
                                                                                    C#

Accelerometer ^accelero = Accelerometer::GetDefault();
if(accelero!=nullptr)
{
    accelero->ReportInterval = 50 <= accelero->MinimumReportInterval ? accelero-
>MinimumReportInterval : 50;
    accelero->ReadingChanged += ref new TypedEventHandler<Accelerometer^,
AccelerometerReadingChangedEventArgs^>(
        [](Object^ sender, AccelerometerReadingChangedEventArgs^ e)
        {
          //read e->Data->AccelerationX/Y/Z
        });
}                            Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
                                                                                                                                                            C++
C#/WPF Accelerometer Demo
• Ellipse (ball) drawn on a canvas
• Accelerometer data is used to update X/Y/Z
  display and location of ball
• Data is read using
  accelerometer events in
  conjunction with a
  timer to move the ball


               Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                              87
C#/WPF NFC DEMO
• Subscribe to incoming WindowsURI messages
• Publish a WindowsURI message to any active
  device
• Write that
  message to any
  writable tag



              Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                             88
USING SENSORS EFFICIENTLY


                 Copyright(C) 2012 Intel Corporation. All rights reserved.
            *Other brands and names are properties of their respective owners.
                                                                                 89
General Considerations
• The effects of applications on power use
• Both idle workloads and active workloads
• The rules of power management
  –   Computational efficiency
  –   Maximize idle
  –   Data efficiency
  –   Power-aware behavior
• Align, coalesce or batch activity whenever
  possible

                   Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                  90
Regarding Sensors
• Do not set a small ReportInterval if your application doesn’t
  need it
• Avoid periodic registry or disk accesses in order to let the
  hard disk spin down
• Avoid status polling, statistics & background bookkeeping
• Avoid using sensors when application is not active
• Consider using accelerometer or gyroscope alone if full
  orientation is not needed.

                             Sensors objects in Sensors API: At least one client connected
   Hardware:      Accelerometer            Gyroscope                                      Inclinometer Compass                                                 Device Orientation
  Accelerometer        On                               Off                                                On                                            On           On
          Gyro         Off                              On                                                 On                                            On           On
  Magnetometer         Off                              Off                                                On                                            On           On

                                Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                                    91
Advanced : Context/power-aware
               behavior
• Handling sleep transitions seamlessly
   – Saving an restoring state
   – Stopping ongoing activity prior to sleeping
   – Closing open resources & disconnecting communications
• Respond/adapt to system power events
   – Switching from AC to battery; low battery status
• Scale behavior based on power state
• Context awareness toolkits
   – software.intel.com/en-us/mobility
   – softwarecommunity.intel.com/articles/eng/1070.htm
   – softwarecommunity.intel.com/articles/eng/1026.htm

                    Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                   92
Intel Software Development Products
              Intel Power Tools
• Intel® Power Checker
  – Reveals how much power your application is using
  – software.intel.com/partner/app/software-
    assessment/?cid=sw:ubpower004
• Energy-Efficient Software Checklist
  – software.intel.com/en-us/articles/energy-
    efficient-software-checklist/



                 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                93
References
•   Intel® Software Network
     – software.intel.com
•   COM Sensor API
     – msdn.microsoft.com/en-us/library/windows/desktop/dd318953(v=vs.85).aspx
•   COM Location API
     – msdn.microsoft.com/en-us/library/dd464636(v=VS.85).aspx
•   WinRT Sensors API
     – msdn.microsoft.com/en-us/library/windows/apps/br206408.aspx
•   WinRT Geolocation API
     – msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.aspx
•   WinRT ProximityAPI
     – msdn.microsoft.com/en-us/library/windows/apps/windows.networking.proximity.aspx
•   Detecting Ultrabook Sensors
     – software.intel.com/en-us/blogs/2012/07/26/detecting-ultrabook-sensors
•   Ultrabook and Tablet Windows 8* Sensors Development Guide
     – software.intel.com/en-us/articles/ultrabook-and-tablet-windows-8-sensors-development-guide/
•   Intel® Energy Efficient Software Guidelines
     – software.intel.com/partner/assets/pdf/misc/Energy_Efficient_Software_Guidelines_v3_4_10_11.pdf


                                   Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                                                  94
Summary
– Sensors are a natural way to interact with end
  users
– Desktop apps can utilize them through WinRT as
  well as Windows 8* Store Apps
– Utilize efficient designs and coding practices to
  save battery life




               Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                                              95
Q&A




Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
                                                                                                                               96
Tools Presentation by Uli



                                                                               Source: Microsoft


               Copyright© 2012, Intel Corporation. All rights reserved.
                                                                                  Intel Confidential
         *Other brands and names are the property of their respective owners
                                                                                                 97
Intel® Software Development Tools
                         for Advanced Performance


         Boost Performance. Scale Forward. Ensure Confidence.
Who Am I…
•   Uli Dumschat (ulrich.dumschat@intel.com)
•   Computer Science Degree
•   Mobile Tools Product Marketing @ Intel
•   Since 1998 in SW Tools business, Intel since 2001




                                            DL2BAT


                                 9/4/2012
                                                        99
Intel® SSG/Developer Products Division

Premium Class Tools For Intel® Architecture




   http://www.intel.com/software/products
  Software & Services Group
  Developer Products Division         Copyright© 2011, Intel Corporation. All rights reserved.
                                *Other brands and names are the property of their respective owners.   9/4/2012   100
Windows* 8 Compatibility
OS/Environment              Development                                                                Intel® Software
                            Requirements                                                               Development
                                                                                                       Tools




                                                                            Let‘s talk about
                                                                            Intel Tools
                                                                            For Windows*
                                                                            Desktop Apps

  Software & Services Group
  Developer Products Division         Copyright© 2011, Intel Corporation. All rights reserved.
                                *Other brands and names are the property of their respective owners.          9/4/2012   101
Intel® Software Development Tools Overview
Libraries                 Bundled Suites                              Compilers                          Analysis/
                                                                                                         Profiling Tools




                                                                                              Let‘s have a
                                                                                              closer look! ☺
    Software & Services Group
    Developer Products Division         Copyright© 2011, Intel Corporation. All rights reserved.
                                  *Other brands and names are the property of their respective owners.     9/4/2012    102
Thriving in a
   Multicore World
         with
Intel® Parallel Studio XE
Intel® Parallel Studio XE
Windows and Linux

                                    Value Proposition

                              Leading Software Development Tools for
  What               Optimized Application Performance, Scalable Parallelism, and
                                             Confidence

  What’s
Included?    • Performance - Intel tools are key to utilizing processor performance
   Why       • Scale forward - Your application investment extends to tomorrow’s platforms
             • Confidence - Trusted software tools you can count on for best results


             • Leading C++ and Fortran performance optimizing compilers libraries,
               performance libraries, and analysis tools
             • Advanced parallel programming models to develop code for Intel® Xeon®
  How
               Processors today, easily extends to Intel® MIC architecture
             • Trusted software correctness tools for application quality and ensured
               confidence



      Software & Services Group
      Developer Products Division         Copyright© 2011, Intel Corporation. All rights reserved.
                                    *Other brands and names are the property of their respective owners.   9/4/2012   104
Intel® Parallel Studio XE 2011
A Complete SW Tools Solution Covering All Phases Of SW Development




   Software & Services Group
   Developer Products Division         Copyright© 2011, Intel Corporation. All rights reserved.
                                 *Other brands and names are the property of their respective owners.   9/4/2012   105
Intel® Parallel Studio XE
Powerful Tools Provide Comprehensive Coverage

Phase      Productivity Tool                              Feature                                                    Benefit

                 Intel® Parallel                                                                      • Simplifies, demystifies, and speeds
                                                                                                        parallel application design
                 Advisor
Design                                Threading design assistant                                      • Available for Intel® Parallel Studio XE
                 for C++                                                                                Windows and Intel® C++ Studio
                 Windows                                                                                Windows (ESD)
                                       C/C++ and Fortran compilers
                                       and performance libraries                                      • Enabling solution to achieve the
Build &          Intel®                • Intel® Parallel Building Blocks                                application performance and
Debug            Composer XE           • Intel® Integrated Performance                                  scalability benefits of multicore and
                                         Primitives                                                     forward scale to manycore
                                       • Intel® Math Kernel Library

                                       Memory & threading dynamic                                     • Increased productivity, code quality,
                 Intel®                analysis for code quality                                        and lowers cost
Verify                                                                                                • Finds memory, threading , and security
                 Inspector XE          Static Security Analysis for code
                                       quality (Studio products only)                                   defects before they happen



                                       Performance Profiler for                                       • Remove guesswork, saves time, makes
                 Intel® VTune™
 Tune                                  optimizing application                                           it easier to find performance and
                 Amplifier XE          performance and scalability                                      scalability bottlenecks



           Optimized Performance, Scalable Parallelism, Confidence


    Software & Services Group
    Developer Products Division          Copyright© 2011, Intel Corporation. All rights reserved.
                                   *Other brands and names are the property of their respective owners.                   9/4/2012                106
Intel® Parallel Studio
         XE
     Product Details
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides
Intel Ultrabook AppLab - ALL Slides

Contenu connexe

Tendances

Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelIT@Intel
 
UX: Raising the bar with Software Development by Sulamita Garcia from Intel
UX: Raising the bar with Software Development by Sulamita Garcia from IntelUX: Raising the bar with Software Development by Sulamita Garcia from Intel
UX: Raising the bar with Software Development by Sulamita Garcia from IntelBeMyApp
 
Android application development
Android application developmentAndroid application development
Android application developmentFahad A. Shaikh
 
Kl ftf channel desktop roadmap final
Kl ftf channel desktop roadmap finalKl ftf channel desktop roadmap final
Kl ftf channel desktop roadmap finalAju Poduval
 
Windows 8 hardware sensors
Windows 8 hardware sensorsWindows 8 hardware sensors
Windows 8 hardware sensorsMatteo Pagani
 
IT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel:  Creating Smart Spaces with All-in-OnesIT@Intel:  Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-OnesIT@Intel
 
Intel Real Sense, Diversity Meetup by Jamie Tanna
Intel Real Sense, Diversity Meetup by Jamie TannaIntel Real Sense, Diversity Meetup by Jamie Tanna
Intel Real Sense, Diversity Meetup by Jamie TannaBeMyApp
 
Mobile Showcase Moblin2
Mobile Showcase Moblin2Mobile Showcase Moblin2
Mobile Showcase Moblin2Tomas Bennich
 
The changing computer for small biz
The changing computer for small bizThe changing computer for small biz
The changing computer for small bizRamon Ray
 
Open iT Software Usage Metering Toolset for IT Asset Managers
Open iT Software Usage Metering Toolset for IT Asset Managers Open iT Software Usage Metering Toolset for IT Asset Managers
Open iT Software Usage Metering Toolset for IT Asset Managers Open iT Inc.
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingYuvaraj Ilangovan
 

Tendances (20)

Intel AppUp Webinar Italiano General Information
Intel AppUp Webinar Italiano General InformationIntel AppUp Webinar Italiano General Information
Intel AppUp Webinar Italiano General Information
 
MeeGo Overview DeveloperDay Munich
MeeGo Overview DeveloperDay MunichMeeGo Overview DeveloperDay Munich
MeeGo Overview DeveloperDay Munich
 
Intel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGoIntel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGo
 
Android and Intel Inside
Android and Intel InsideAndroid and Intel Inside
Android and Intel Inside
 
Writing applications for multiple stores on the WeTab
Writing applications for multiple stores on the WeTabWriting applications for multiple stores on the WeTab
Writing applications for multiple stores on the WeTab
 
Intel Developer Day 2010, Berlin
Intel Developer Day 2010, BerlinIntel Developer Day 2010, Berlin
Intel Developer Day 2010, Berlin
 
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
 
UX: Raising the bar with Software Development by Sulamita Garcia from Intel
UX: Raising the bar with Software Development by Sulamita Garcia from IntelUX: Raising the bar with Software Development by Sulamita Garcia from Intel
UX: Raising the bar with Software Development by Sulamita Garcia from Intel
 
Android application development
Android application developmentAndroid application development
Android application development
 
Kl ftf channel desktop roadmap final
Kl ftf channel desktop roadmap finalKl ftf channel desktop roadmap final
Kl ftf channel desktop roadmap final
 
Windows 8 hardware sensors
Windows 8 hardware sensorsWindows 8 hardware sensors
Windows 8 hardware sensors
 
IT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel:  Creating Smart Spaces with All-in-OnesIT@Intel:  Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-Ones
 
Intel Real Sense, Diversity Meetup by Jamie Tanna
Intel Real Sense, Diversity Meetup by Jamie TannaIntel Real Sense, Diversity Meetup by Jamie Tanna
Intel Real Sense, Diversity Meetup by Jamie Tanna
 
Chapter 05
Chapter 05Chapter 05
Chapter 05
 
Mobile Showcase Moblin2
Mobile Showcase Moblin2Mobile Showcase Moblin2
Mobile Showcase Moblin2
 
The changing computer for small biz
The changing computer for small bizThe changing computer for small biz
The changing computer for small biz
 
Input
InputInput
Input
 
Open iT Software Usage Metering Toolset for IT Asset Managers
Open iT Software Usage Metering Toolset for IT Asset Managers Open iT Software Usage Metering Toolset for IT Asset Managers
Open iT Software Usage Metering Toolset for IT Asset Managers
 
Profound logic 2012
Profound logic 2012Profound logic 2012
Profound logic 2012
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface Computing
 

Similaire à Intel Ultrabook AppLab - ALL Slides

Intel XDK - Philly JS
Intel XDK - Philly JSIntel XDK - Philly JS
Intel XDK - Philly JSIan Maffett
 
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelIntel IT Center
 
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelIntel IT Center
 
A Path to NFV/SDN - Intel. Michael Brennan, INTEL
A Path to NFV/SDN - Intel. Michael Brennan, INTELA Path to NFV/SDN - Intel. Michael Brennan, INTEL
A Path to NFV/SDN - Intel. Michael Brennan, INTELWalton Institute
 
Scott Apeland Intel Keynote
Scott Apeland Intel KeynoteScott Apeland Intel Keynote
Scott Apeland Intel Keynotejowen_evansdata
 
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...Intel® Software
 
Creativity, Productivity, Collaboration NSW Roadshow - November 2013
Creativity, Productivity, Collaboration NSW Roadshow - November 2013Creativity, Productivity, Collaboration NSW Roadshow - November 2013
Creativity, Productivity, Collaboration NSW Roadshow - November 2013Microsoft Education AU
 
Intel Microsoft Webinar HTML5: AppUp Presenttaion
Intel Microsoft Webinar HTML5: AppUp PresenttaionIntel Microsoft Webinar HTML5: AppUp Presenttaion
Intel Microsoft Webinar HTML5: AppUp Presenttaionsoussislim
 
AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training Intel® Software
 
Health Care Clipboard iPad Application
Health Care Clipboard iPad ApplicationHealth Care Clipboard iPad Application
Health Care Clipboard iPad ApplicationJose Ortega
 
IT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-OnesIT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-OnesIntel IT Center
 
UX Concerns across Mobile Platforms
UX Concerns across Mobile PlatformsUX Concerns across Mobile Platforms
UX Concerns across Mobile PlatformsJoseph Labrecque
 
Ultrabook fact sheet_2013
Ultrabook fact sheet_2013Ultrabook fact sheet_2013
Ultrabook fact sheet_2013Rob Blaauboer
 
Embree Ray Tracing Kernels
Embree Ray Tracing KernelsEmbree Ray Tracing Kernels
Embree Ray Tracing KernelsIntel® Software
 
Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)Autodesk
 
Web2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design WorkshopWeb2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design Workshophenrikolsen123
 

Similaire à Intel Ultrabook AppLab - ALL Slides (20)

Overview Intel AppUp developer program
Overview Intel AppUp developer programOverview Intel AppUp developer program
Overview Intel AppUp developer program
 
MeeGo AppLab Desktop Summit 2011 - AppUp
MeeGo AppLab Desktop Summit 2011 - AppUpMeeGo AppLab Desktop Summit 2011 - AppUp
MeeGo AppLab Desktop Summit 2011 - AppUp
 
Intel XDK - Philly JS
Intel XDK - Philly JSIntel XDK - Philly JS
Intel XDK - Philly JS
 
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
 
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at IntelDeploying Intel Architecture-based Tablets with Windows* 8 at Intel
Deploying Intel Architecture-based Tablets with Windows* 8 at Intel
 
A Path to NFV/SDN - Intel. Michael Brennan, INTEL
A Path to NFV/SDN - Intel. Michael Brennan, INTELA Path to NFV/SDN - Intel. Michael Brennan, INTEL
A Path to NFV/SDN - Intel. Michael Brennan, INTEL
 
Scott Apeland Intel Keynote
Scott Apeland Intel KeynoteScott Apeland Intel Keynote
Scott Apeland Intel Keynote
 
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...
Intel® RealSense™ Technology: Code Walk-through Presented by Intel Software I...
 
Win 8 webinar
Win 8 webinarWin 8 webinar
Win 8 webinar
 
Creativity, Productivity, Collaboration NSW Roadshow - November 2013
Creativity, Productivity, Collaboration NSW Roadshow - November 2013Creativity, Productivity, Collaboration NSW Roadshow - November 2013
Creativity, Productivity, Collaboration NSW Roadshow - November 2013
 
Intel Microsoft Webinar HTML5: AppUp Presenttaion
Intel Microsoft Webinar HTML5: AppUp PresenttaionIntel Microsoft Webinar HTML5: AppUp Presenttaion
Intel Microsoft Webinar HTML5: AppUp Presenttaion
 
AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training
 
Are You Ready for iOS 8?
Are You Ready for iOS 8?Are You Ready for iOS 8?
Are You Ready for iOS 8?
 
Health Care Clipboard iPad Application
Health Care Clipboard iPad ApplicationHealth Care Clipboard iPad Application
Health Care Clipboard iPad Application
 
IT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-OnesIT@Intel: Creating Smart Spaces with All-in-Ones
IT@Intel: Creating Smart Spaces with All-in-Ones
 
UX Concerns across Mobile Platforms
UX Concerns across Mobile PlatformsUX Concerns across Mobile Platforms
UX Concerns across Mobile Platforms
 
Ultrabook fact sheet_2013
Ultrabook fact sheet_2013Ultrabook fact sheet_2013
Ultrabook fact sheet_2013
 
Embree Ray Tracing Kernels
Embree Ray Tracing KernelsEmbree Ray Tracing Kernels
Embree Ray Tracing Kernels
 
Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)Designing for Tablet Experiences (Henrik Olsen)
Designing for Tablet Experiences (Henrik Olsen)
 
Web2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design WorkshopWeb2.0 Tablet Experience Design Workshop
Web2.0 Tablet Experience Design Workshop
 

Plus de Intel Developer Zone Community

Plus de Intel Developer Zone Community (7)

Intel Developer Zone MeetUp Intro
Intel Developer Zone MeetUp IntroIntel Developer Zone MeetUp Intro
Intel Developer Zone MeetUp Intro
 
Intel® Developer Zone
Intel® Developer ZoneIntel® Developer Zone
Intel® Developer Zone
 
Utilisation des capteurs dans les applications windows 8
Utilisation des capteurs dans les applications windows 8Utilisation des capteurs dans les applications windows 8
Utilisation des capteurs dans les applications windows 8
 
Ultrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab BerlinUltrabook Development Using Sensors - Intel AppLab Berlin
Ultrabook Development Using Sensors - Intel AppLab Berlin
 
The New Windows UI - Intel Ultrabook AppLab Berlin
The New Windows UI - Intel Ultrabook AppLab BerlinThe New Windows UI - Intel Ultrabook AppLab Berlin
The New Windows UI - Intel Ultrabook AppLab Berlin
 
Intel AppUp Webinar Italiano html5
Intel AppUp Webinar Italiano html5Intel AppUp Webinar Italiano html5
Intel AppUp Webinar Italiano html5
 
Getting Your Windows and MeeGo Apps into AppUp
Getting Your Windows and MeeGo Apps into AppUpGetting Your Windows and MeeGo Apps into AppUp
Getting Your Windows and MeeGo Apps into AppUp
 

Dernier

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Dernier (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Intel Ultrabook AppLab - ALL Slides

  • 1. Intel Ultrabook™ AppLab Intel® Corporation Berlin, September 3rd
  • 2. Overview of the Entire Day 1. Welcome & Opening Monika 2. Introduction into Ultrabook™ Development Paul 3. New Windows UI Design Oliver 4. Technical Presentation: Touch Sulamita 5. Lunch & Networking: Check out also the Demos! 6. Technical Presentation: Sensors Xavier 7. Break & Networking: Check out also the Demos! 8. Intel Tools Uli 9. Ultrabook Developer Resources Paul 10. Wrap Up and Closing Monika 11. SDP (Software Development Platform) Distribution 12. Hacking Session at the c-base Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 2
  • 3. Who am I? Wannabe Geek Late Early Adopter @MonikaLischke #IntelAppLab Monika Lischke Team Lead Community Management EMEA 3
  • 4. Introduction to Developing Ultrabook™ Applications Intel® Corporation
  • 5. Legal Disclaimer • INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems, or in nuclear facility applications. • Intel products may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. • Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice. • This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a design with this information. • Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. • Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights. • Wireless connectivity and some features may require you to purchase additional software, services or external hardware. • Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, visit Intel Performance Benchmark Limitations • Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Copyright © 2011 Intel Corporation. All rights reserved. Intel Confidential - Customer NDA Use Only * Other Names and Brands maybe claimed as the property of others. All dates, plans and features are preliminary and subject to change without notice. Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 5
  • 6. Who am I? Paul Farquhar EMEA AppUp Technical Lead 6
  • 7. What do I like to do? @TheGlenPaul 7
  • 8. What do we eat – Haggis! 8
  • 9. You need the proper tools! 9
  • 10. WHAT DOES ULTRABOOK / WINDOWS* TM 8 MEAN FOR CURRENT DEVELOPERS? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 10
  • 11. Worried about the Windows* 8 transition? New Windows*8 Do I have to re-write UI? all of my Win32 apps Do my applications from scratch? need to support touch? What’s the difference WinRT? between an Ultrabook and a notebook? How do I use an How does Ultrabook’s HTML5* fit Desktop? sensors? into this? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 11
  • 12. The world of Windows* 8 • New Windows*8 apps New Windows*8 Style Desktop Style have a single, full-screen window with multiple views – Must follow the New Windows*8 user experience – Require a new developer ecosystem • Desktop Applications – Windows* 8 supports Native Win7 Applications – Run in a desktop UI, with full device and driver compatibility – Can take advantage of UltrabookTM & Windows* 8 features Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 12
  • 13. How Windows*8 and the Desktop Work Together Desktop Application Launched from New Windows*8 Start Screen Click tile for iTunes* iTunes Desktop app launches Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 13 13
  • 14. Windows* 8 Compatibility Expectations x86 Only New Windows*8 Apps Desktop applicaitons x86 + ARM* Source: Microsoft Legacy Compatibility for IA: • Windows* 8 supports Native Win7 Applications (in Desktop UI, with full device and driver compatibility) • Desktop Applications run as is, no changes required, in the Desktop UI mode of Windows* 8 • 4 million+ “legacy” Applications supported by IA. New New Windows*8 apps: • Requires a NEW developer ecosystem • WinRT* (i.e. New Windows*8*) apps to be compatible with both x86- and ARM-based systems • HTML5/JavaScript and .NET desktop applications expected to be compatible with both x86 and ARM Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 14
  • 15. ULTRABOOK™ / WINDOWS* 8 FEATURES (HARDWARE, OS, APPLICATION LEVELS) Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 15
  • 16. Ultrabook Built to Set Applications Apart TM UX Desktop New Windows*8 Touch/Gestures Context Aware Sensors OS Near Field Communication Geolocation Graphics Battery Life Rapid Start Ultrabook Hardware Security Thunderbolt Turbo Boost Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 16
  • 17. Ivy Bridge Processor Graphics • Integration of graphic and media processing onto the same CPU die • Dedicated hardwired media processing functions • Maximum media performance at lowest possible power consumption • Highly sophisticated graphic execution units (EU) for high quality graphics Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 17
  • 18. Intel® Turbo Boost Technology 2.0 • Performance when you need it • Dynamic overclocking • Don’t need to drain power constantly for all processes • Helps reduce temperature and extends battery power. Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 18
  • 19. OS Differentiators • Touch- and gesture-based UI • Context aware sensors • Near field communication • Geolocation Context Aware Touch/Gestures Sensors OS Near Field Geolocation Communication Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 19
  • 20. Application Differentiators New Windows*8 Desktop Style • Touch and Sensors can be enabled for all Style three styles of applications • New Windows*8 apps have a single, full-screen New window with multiple views Windows*8 • Clean typography and animations • Fast, fluid touch first experience • Retains the flexibility of the traditional Windows* Desktop Desktop Style • Full access to familiar x86 applications and tools • Provides finer-grained control • HTML5* apps can run as New Windows*8 apps or as Desktop in Internet Explorer 9 & 10 HTML5 Style Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 20
  • 21. Digital Storefronts for Windows* 8 Intel AppUp® for Desktop Windows Store* for New Applications Windows*8 apps Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 21
  • 22. NEW WINDOWS*8 API FOR DESKTOP DEVELOPERS Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 22
  • 23. Application Environment New Windows*8 apps Desktop Applications XAML View XAML HTML CSS HTML C# C/C++ C#, VB JavaScript C JavaScript Model (Chakra) C++ VB WinRT APIs Graphics Devices Systems Network & Internet Services & Win32 .NET & Data Media Explorer Printing App Model Kernel Windows Kernel Services Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 23
  • 24. WinRT • API to access to the system (display, file system, sensors, media devices, etc) – Everything needed for a New Windows*8 app – Desktop applications can use a sub-set of WinRT • Combine with Win Native or .NET • Languages: C++, C#, JavaScript and VB – WinRT HTML or XAML elements are restricted to New Windows*8 apps Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 24
  • 25. Desktop apps and Windows Native • Primarily the same as Win32 on Windows 7 – Computer System Hardware Classes – Installed Application Classes – Operating System Classes – Performance Counter Classes – Security Descriptor Helper Classes – WMI Service Management Classes • Access to the hardware – Better performance – Less abstraction • Access to sensors via COM interfaces • Code is unmanaged – No automated free memory management Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 25
  • 26. WinRT API Areas • Core • Networking • Controls • Printing • Data and content • Presentation • Devices • Remote Desktop • Files and folders • Security • Globalization • Social • Graphics • UI Automation • Helpers • User Interaction • Media Underlined items have classes available to desktop applications Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 26
  • 27. Microsoft Presentation by Oliver Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 27
  • 28. APPLICATION DEVELOPMENT WITH TOUCH AND SENSORS ON ULTRABOOKTM / WINDOWS 8 Sulamita Garcia – sulamita.garcia@intel.com Technical Marketing Engineer Twitter @sulagarcia Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 28
  • 29. /me
  • 30. MAHJONG DEMO HERE Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 30
  • 31. Using touch in a desktop application • Touch and gestures • Do’s and Don’t of gesture interfaces • Demo: Use touch and gestures to select, move and manipulate three images • The Windows Touch API • Using touch with XMAL Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 31
  • 32. Adding touch to a desktop application • Touch is not a mouse • Make touch targets large enough • Support standard gestures and behaviors • Portrait vs. Landscape • Do not use touch just for touch’s sake • Touch should be forgiving • Microsoft User Experience Guidelines – msdn.microsoft.com/en- us/library/windows/desktop/cc872774.aspx – blogs.msdn.com/b/ie/archive/2012/04/20/guidelines-for- building-touch-friendly-sites.aspx Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 32
  • 33. Designing for Touch User Experience • Design UI to include traditional laptop style and tablet mode usages • Space and size controls to register fuzzy touch input – Common Controls: 23X23 pixels – Command Controls: 40X40 pixels • Use multiple form tabs for touch efficiency • Consider the target size while designing your application UI • Use natural and intuitive controls • Ultrabook Optimal Resolution: 1366X768 Source: MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 33
  • 34. Designing for Touch User Experience • Use common controls as much as possible • Choose custom controls that support touch • Prefer constrained controls to unconstrained controls • Provide default values and auto text- completion • Use check boxes instead of multiple selection lists Source: MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 34
  • 35. Designing for Touch User Experience • Place controls in areas better utilized for touch • Command controls should be more easily accessible Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 35
  • 36. WINDOWS TOUCH API Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 36
  • 37. Using Windows Touch API • Touch and gesture events are delivered via Windows Touch messages – Windows must register for Windows Touch input: RegisterTouchWindow • WM_TOUCH reports action, position and identifier • WM_GESTURE describes the gesture via GESTUREINFO structure • Special interfaces to help process gesture messages – IManipulationProcessor – IInertiaProcessor • API reference at msdn.microsoft.com/en- us/library/windows/desktop/dd371406%28v=vs.85%29.aspx Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 37
  • 38. WinNative: Receive gesture message LRESULT CALLBACK WndProc(…) { … switch (message) { • Check for case WM_GESTURE: // Call code to WM_GESTURE message // interpret the in WndProc // gesture return DecodeGesture(…); … } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 38
  • 39. WinNative: Process gesture LRESULT DecodeGesture(…) { • Retrieve the additional … BOOL bResult = GetGestureInfo(…); gesture information from BOOL bHandled = FALSE; the GESTUREINFO if (bResult) structure { // now interpret the gesture switch (gi.dwID){ case GID_ZOOM : // Code for zooming goes here bHandled = TRUE; • Handle each of the break; case GID_PAN : possible gestures … case GID_ROTATE : … case GID_TWOFINGERTAP: … case GID_PRESSANDTAP: … default: // A gesture was not recognized break; } … (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 39
  • 40. Recognized gestures – Tap/Double tap – Panning with inertia – Selection/Drag – Press and tap – Press and hold – Zoom – Rotate – Two-finger tap – Flicks Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 40
  • 41. WINDOWS TOUCH API / XAML / .NET Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 41
  • 42. Using touch and XAML/.NET • XAML provides access to WPF touch-enabled UI components – WPF touchs event are available in both Windows* 7 and Windows* 8. • Typical gesture events: – ManipulationStarting – ManipulationDelta – ManipulationInertiaStarting Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 42
  • 43. XAML: TouchControl.xaml <UserControl x:Class="Win8Demo.TouchControl" • Three images placed in …> a Grid inside of a <Grid x:Name="cont" ClipToBounds="True" > <!-- Set the IsManipulationEnabled to TouchControl true --> <Image x:Name="photo_1" Source="/Assets/ultrabook1.png“ IsManipulationEnabled="True" Width="500" /> • Each image has <Image x:Name="photo_2“ Source="/Assets/ultrabook2.png“ IsManipulationEnabled IsManipulationEnabled="True“ Width="500" Margin="125,-79,25,79"/> <Image x:Name="photo_3“ set to true Source="/Assets/ultrabook3.png“ IsManipulationEnabled="True“ Width="500" Margin="0,-59,150,59" /> </Grid> </UserControl> Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 43
  • 44. Touch Event State Diagram Events begin with User Manipulation Touching the Image Starting Manipulation Manipulation Delta Manipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 44
  • 45. XAML: TouchControl.xaml.cs public TouchControl() { … //Register for manipulation events • Add event handlers to photo_1.ManipulationStarting += m_rect_ManipulationStarting; photo_1.ManipulationDelta += each image for: m_rect_ManipulationDelta; photo_1.ManipulationInertiaStarting += •ManipulationStarting m_rect_ManipulationInertiaStarting; •ManipulationDelta photo_2.ManipulationStarting += … •ManipulationInertiaStarting photo_3.ManipulationStarting += … } Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 45
  • 46. Touch Event State Diagram Events begin with User Manipulation Touching the Image Starting Manipulation Manipulation Delta Manipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 46
  • 47. XAML: Manipulation starting event handler • ManipulationStarting event void handler is called at start of m_rect_ManipulationStarting touch event (…) { … • By setting Manipulation- e.ManipulationContainer = Container to the touched this; image all subsequent manipulation events will be } relative to that element Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 47
  • 48. Touch Event State Diagram Events begin with User Manipulation Touching the Image Starting Manipulation Manipulation Delta Manipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 48
  • 49. XAML: Manipulation delta event handler • ManipulationDelta void m_rect_ManipulationDelta(…) { event happens as user … //Get the manipulation’s delta moves fingers var delta = e.DeltaManipulation; //Compute the transformed center point Point rectCenter = new Point(rect.ActualWidth * 0.5, rect.ActualHeight * 0.5); • Compute new image rectCenter = matrix.Transform(rectCenter); center point, scale, and //Adjust the element’s scale, rotation and translation rotation using event matrix.ScaleAt(delta.Scale.X, delta.Scale.Y, rectCenter.X, rectCenter.Y); data matrix.RotateAt(delta.Rotation, rectCenter.X, rectCenter.Y); matrix.Translate(delta.Translation.X, delta.Translation.Y); • Set Handled to true so //Update the element’s render transformation other handlers don’t rect.RenderTransform = new MatrixTransform(matrix); process same event e.Handled = true; Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 49
  • 50. Touch Event State Diagram Events begin with User Manipulation Touching the Image Starting Manipulation Manipulation Delta Manipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 50
  • 51. XAML: Inertia starting event handler • Inertia actions are handled by the void m_rect_ManipulationInertiaStarting(…) { ManipulationInertiaStarting event //Set the manipulations inertia values handler e.TranslationBehavior = new InertiaTranslationBehavior() • Define the behavior of the inertia { by specifying InitialVelocity = e.InitialVelocities.LinearVelocity, • Linear velocity DesiredDeceleration =… • Deceleration }; • Expansion velocity (used in e.ExpansionBehavior = new InertiaExpansionBehavior() pinch or spread) { • Angular velocity (used in InitialVelocity = e.InitialVelocities.ExpansionVelocity, rotation) DesiredDeceleration = … }; e.RotationBehavior = new InertiaRotationBehavior() { InitialVelocity = • Again, set Handled to true so other e.InitialVelocities.AngularVelocity, handlers don’t process same event }; DesiredDeceleration = … e.Handled = true;… Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 51
  • 52. Touch Event State Diagram Events begin with User Manipulation Touching the Image Starting Manipulation Manipulation Delta Manipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 52
  • 53. XAML: Handle inertia manipulation if (e.IsInertial) • Check if inertia is moving the { image across the grid //Get the containing element’s size Rect containingRect = … (e.ManipulationContainer).RenderSize); //Get the transformed element’s new //bounds Rect shapeBounds = rect.RenderTransform.TransformBounds (…); //If element falls out of bounds • If so, make sure image does not if (!containingRect.Contains(shapeBounds)) travel outside of the grid by { calling the Complete method to //Report boundary feedback e.ReportBoundaryFeedback(…); end the inertia //Stop any after inertia e.Complete(); } } … Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 53
  • 54. Summary • Your application is already touch enabled, consider making touch oriented • User Experience is the perception, not just execution – delight the user! • Windows native API provides WM_GESTURE by default, RegisterTouchWindow for WM_GESTIRE • XAML enables easy design and can be used with C# or VB for Desktop applications – Consider Inertia and Bounderies when Manipulating objects Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 54
  • 55. References • Intel Ultrabook™ Community • Intel® Software Network – software.intel.com • Windows Development Reference – msdn.microsoft.com/en- us/library/windows/desktop/hh447209%28v=vs.85%2 9.aspx • WinRT API Reference – msdn.microsoft.com/en- us/library/windows/apps/br211377.aspx Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 55
  • 56. Q&A Sulamita Garcia – sulamita.garcia@intel.com Technical Marketing Engineer Twitter @sulagarcia Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 56
  • 57. LUNCH!!!! Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 57
  • 58. Application Development using Sensors Intel® Corporation
  • 59. Legal Disclaimer • INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems, or in nuclear facility applications. • Intel products may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. • Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice. • This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a design with this information. • Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. • Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights. • Wireless connectivity and some features may require you to purchase additional software, services or external hardware. • Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, visit Intel Performance Benchmark Limitations • Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Copyright © 2011 Intel Corporation. All rights reserved. Intel Confidential - Customer NDA Use Only Copyright© 2012, Intel Corporation. All rights reserved. *Other brands * Other Names and Brands maybe claimed as the property of others. All dates, plans of their respective owners and names are the property and features are preliminary and subject to change without notice. 59
  • 60. Agenda • Overview of available sensors • Using sensors in a Windows 8* application - In C++ desktop applications, using COM interface - In C++ or C#/.NET Windows 8* store and desktop applications, using WinRT APIs • Considerations on Efficiency Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 60
  • 61. Who am I ? Xavier Hallade (@ph0b) Technical Marketing Engineer at Intel Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 61
  • 62. Sensors OVERVIEW OF AVAILABLE SENSORS Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 62
  • 63. Available Sensors Compass Accelerometer Gyroscope GPS Ambient Light NFC + with Sensor Fusion: Inclinometer, Orientation, SimpleOrientation • Sensor Fusion : virtual sensors created by combining data from compass, accelerometer and gyroscope • Ambient Light, GPS, 3D Motion and orientation sensors are all mandatory on Windows 8* Tablets and Convertibles • Applications can subscribe to sensor events, set callbacks or directly poll their current state.
  • 64. Orientation and Motion • Gyrometer returns yaw, pitch and roll velocities • Accelerometer returns acceleration along x, y and z, and optionally a Shake event • Simple Orientation : returns device orientation into one of four quadrants, face-up, or face-down • Orientation Sensor and inclinometer both returns the complete device orientation – Inclinometer returns yaw, pitch, and roll angles – Orientation Sensor returns a quaternion as well as a 3x3 orientation matrix
  • 65. Orientation and Motion detection same convention as on Android and in the HTML5 specification 0.0° ≤ Yaw < 360.0° -180.0° ≤ Pitch < 180.0° -90.0° ≤ Roll < 90.0°
  • 66. Ambient Light • Can be used to adapt application interface depending on light conditions : contrast, font size • Screen brightness control should be handled by the operating system. Lighting condition Iuminance (lux) Pitch black 1 Very dark 10 Dark indoors 50 Dim indoors 100 Normal indoors 300 Bright indoors 1,000 Dim outdoors 5,000 Cloudy outdoors 30,000 Direct sunlight 100,000
  • 67. Location Returns latitude, longitude: - using Wi-Fi if available - using IP Address otherwise - using GPS if available and desired accuracy is set on High - then it can also return Altitude, Speed and Heading Depending on user’s choice, its use can be denied. A Windows 8* store app has to declare the “location” capability in its manifest.
  • 68. Near Field Communication • Short range (<4cm) • Contactless • Used between active and/or passive devices – Active: Smartphone, Tablet, Ultrabook™… – Passive: Tags, Smart cards… • Small amount of data, low data transfer rate • Easy to use, feels instantaneous (<1/10s) -> Great user experience !
  • 69. Near Field Communication • Pairing – with Bluetooth* peripherals, at the OS level – with another running application, by establishing a BT or Wi-Fi direct socket, at the application level • Short data read/write on NFC tags • Short data exchange with active devices – Sharing URIs, contacts, positions – Secure transactions
  • 70. NFC messages Protocol Pub. Sub. Message contents Windows X X binary data. WindowsUri X X UTF-16LE encoded string that is a URI. use PublishUriMessage WindowsMime X X message data of a specific mime type. For example, "WindowsMime.image/jpeg". You can subscribe to "WindowsMime" message without specifying the mime type. If so, the first 256 bytes received is the ASCII mime type string. Windows:WriteTag X Windows message to be written to a static tag. WindowsUri:WriteTag X WindowsUri message to be written to a static tag. WindowsMime:Write X WindowsMime message to be written to a static tag. Tag Example, “WindowsMime:WriteTag.image/jpeg” LaunchApp:WriteTag X Write a tag that can be used to launch a specific app. more information on msdn. WriteableTag X if a writeable tag is brought in to proximity, a proximity message is received that contains an int32 indicating the maximum writeable size.
  • 71. NFC messages Windows messages are fully compatible with NDEF messages, but you can also directly manipulate them : Protocol Pub. Sub. Message contents NDEF X X properly formatted NDEF records. NDEF:ext X application defined NDEF records (TNF field value of 0x04). NDEF:MIME X properly formatted NDEF mime message (TNF field value of 0x02). For example, "NDEF:MIME.image/jpeg". NDEF:URI X properly formatted NDEF message of a type defined by a URI namespace (TNF field value of 0x03). For example, "NDEF:URI.http://contoso.com/sometype". NDEF:wkt X properly formatted NDEF message of a type defined by the NFC forum (TNF field value of 0x01).An example of this type is "NDEF:wkt.U" for the well known type of URI. NDEF:WriteTag X message data that should be written to an NFC forum standard static tag. NDEF:Unknown X untyped NDEF message (TNF field value of 0x05).
  • 72. Sensors LET’S DIVE INTO SOME CODE ! Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 72
  • 73. Sensors and Location Platform using COM interface FROM C++ Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 73
  • 74. Sensors and Location Platform • Same interface as on Windows 7 – Sensor fusion available through new GUIDs • Sensor manager controls sensors – Use sensor manager to get to sensors – Notifies when a sensor connects • Sensors report data, changes in state and disconnection • Access both via COM interfaces – Use API to communicate to sensors – Sensor events handled using callbacks – API reference at msdn.microsoft.com/en- us/library/windows/desktop/dd318953%28v=vs.85%29.aspx Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 74
  • 75. COM: Connect to sensor manager // Create the sensor manager • Access to sensors is through the sensor manager ISensorManager pSensorManager; hr = CoCreateInstance(CLSID_SensorManager, • Group policy settings may deny NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pSensorManager)); access to the system sensors if(hr == HRESULT_FROM_WIN32 (ERROR_ACCESS_DISABLED_BY_POLICY)) { // Unable to retrieve sensor manager due // to group policy settings. // Alert the user. } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 75
  • 76. COM: Retrieve a sensor object // Get the sensor collection • Request sensors by category, type hr = pSensorManager->GetSensorsByCategory( SENSOR_CATEGORY_ALL, or ID &pSensorColl); if(SUCCEEDED(hr)) { ULONG ulCount = 0; // Verify that the collection contains at // least one sensor hr = pSensorColl->GetCount(&ulCount); if(SUCCEEDED(hr)) { if(ulCount < 1) { • Request permission to use the wprintf_s(L"nNo sensors of the requested category.n"); hr = E_UNEXPECTED; sensor(s) } else { • Windows 8 will open a dialog // Request permissions for all sensors // in the collection box to ask the user hr = pSensorManager-> RequestPermissions(0, pSensorColl, • Granting permission triggers } FALSE); … the OnStateChanged event (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 76
  • 77. COM: Sensor event callback class CMyEvents : public ISensorEvents • Receive event notifications by { implementing required COM public: interfaces STDMETHODIMP QueryInterface(…) {…} STDMETHODIMP_(ULONG) AddRef() {…} • Sensor events require STDMETHODIMP_(ULONG) Release() {…} ISensorEvents // ISensorEvents methods. // STDMETHODIMP OnEvent(…) {…} • Sensor Manager events require STDMETHODIMP OnDataUpdated(…) {…} STDMETHODIMP OnLeave(…) {…} ISensorManagerEvents STDMETHODIMP OnStateChanged(…) {…} … (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 77
  • 78. COM: Start receiving events // Create an instance of the event • To start receiving events provide // class the sensor with a pointer to your pEventClass = new CMyEvents(); callback if(SUCCEEDED(hr)) { • To stop receiving events call // Retrieve the pointer to the // callback interface SetEventSink with a parameter of hr = pEventClass->QueryInterface( NULL IID_PPV_ARGS(&pMyEvents)); } if(SUCCEEDED(hr)) { // Start receiving events hr = pSensor-> SetEventSink(pMyEvents); } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 78
  • 79. Ambient Light Sensor DEMO Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 79
  • 80. Using WinRT Sensors and Location API FROM C# AND C++/CX Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 80
  • 81. WinRT API • Windows.Sensors. • Accelerometer • Gyrometer • Inclinometer • OrientationSensor • SimpleOrientationSensor • Compass • LightSensor • Windows.Networking.Proximity.ProximityDevice (NFC) • Windows.Device.Geolocation (GPS) Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 82. Using the WinRT API WinRT Sensors and Location APIs are available to Windows 8* Desktop applications You need to use WinRT Windows MetaData files : • Platform.winmd: C:Program Files (x86)Microsoft SDKsWindowsv8.0ExtensionSDKsMicrosoft.VCLi bs11.0ReferencesCommonConfigurationneutral • Windows.winmd: C:Program Files (x86)Windows Kits8.0ReferencesCommonConfigurationNeutral How ? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 83. WinRT From Desktop (C#) Unload your C# Project Manually edit the .csproj file to add : <PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup> Reload the project Add Windows.winmd and Platform.winmd as references from their respective locations Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 84. WinRT From Desktop (C++) In your project properties, in C/C++->General: • Set “Consume Windows Runtime Extension” on Yes (/ZW) • Add Windows.winmd and Platform.winmd paths to “Additional #using Directories” In your source code, add : #using <Windows.winmd> #using <Platform.winmd> Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 85. WinRT Sensor API No need for a sensor manager: 1 – Retrieve the default sensor/device using GetDefault() 2 – Set the ReportInterval 3 – Add a delegate to ReadingChanged event Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 86. WinRT Sensor API _accelero = Accelerometer.GetDefault(); if (_accelero != null) { _accelero.ReportInterval = 50 <= _accelero.MinimumReportInterval ? _accelerometer.MinimumReportInterval : 50; //Register for reading changed events _accelero.ReadingChanged += (Accelerometer s, AccelerometerReadingChangedEventArgs args) => { //use e.Data.AccelerationX/Y/Z }; } C# Accelerometer ^accelero = Accelerometer::GetDefault(); if(accelero!=nullptr) { accelero->ReportInterval = 50 <= accelero->MinimumReportInterval ? accelero- >MinimumReportInterval : 50; accelero->ReadingChanged += ref new TypedEventHandler<Accelerometer^, AccelerometerReadingChangedEventArgs^>( [](Object^ sender, AccelerometerReadingChangedEventArgs^ e) { //read e->Data->AccelerationX/Y/Z }); } Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners C++
  • 87. C#/WPF Accelerometer Demo • Ellipse (ball) drawn on a canvas • Accelerometer data is used to update X/Y/Z display and location of ball • Data is read using accelerometer events in conjunction with a timer to move the ball Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 87
  • 88. C#/WPF NFC DEMO • Subscribe to incoming WindowsURI messages • Publish a WindowsURI message to any active device • Write that message to any writable tag Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 88
  • 89. USING SENSORS EFFICIENTLY Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 89
  • 90. General Considerations • The effects of applications on power use • Both idle workloads and active workloads • The rules of power management – Computational efficiency – Maximize idle – Data efficiency – Power-aware behavior • Align, coalesce or batch activity whenever possible Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 90
  • 91. Regarding Sensors • Do not set a small ReportInterval if your application doesn’t need it • Avoid periodic registry or disk accesses in order to let the hard disk spin down • Avoid status polling, statistics & background bookkeeping • Avoid using sensors when application is not active • Consider using accelerometer or gyroscope alone if full orientation is not needed. Sensors objects in Sensors API: At least one client connected Hardware: Accelerometer Gyroscope Inclinometer Compass Device Orientation Accelerometer On Off On On On Gyro Off On On On On Magnetometer Off Off On On On Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 91
  • 92. Advanced : Context/power-aware behavior • Handling sleep transitions seamlessly – Saving an restoring state – Stopping ongoing activity prior to sleeping – Closing open resources & disconnecting communications • Respond/adapt to system power events – Switching from AC to battery; low battery status • Scale behavior based on power state • Context awareness toolkits – software.intel.com/en-us/mobility – softwarecommunity.intel.com/articles/eng/1070.htm – softwarecommunity.intel.com/articles/eng/1026.htm Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 92
  • 93. Intel Software Development Products Intel Power Tools • Intel® Power Checker – Reveals how much power your application is using – software.intel.com/partner/app/software- assessment/?cid=sw:ubpower004 • Energy-Efficient Software Checklist – software.intel.com/en-us/articles/energy- efficient-software-checklist/ Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 93
  • 94. References • Intel® Software Network – software.intel.com • COM Sensor API – msdn.microsoft.com/en-us/library/windows/desktop/dd318953(v=vs.85).aspx • COM Location API – msdn.microsoft.com/en-us/library/dd464636(v=VS.85).aspx • WinRT Sensors API – msdn.microsoft.com/en-us/library/windows/apps/br206408.aspx • WinRT Geolocation API – msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.aspx • WinRT ProximityAPI – msdn.microsoft.com/en-us/library/windows/apps/windows.networking.proximity.aspx • Detecting Ultrabook Sensors – software.intel.com/en-us/blogs/2012/07/26/detecting-ultrabook-sensors • Ultrabook and Tablet Windows 8* Sensors Development Guide – software.intel.com/en-us/articles/ultrabook-and-tablet-windows-8-sensors-development-guide/ • Intel® Energy Efficient Software Guidelines – software.intel.com/partner/assets/pdf/misc/Energy_Efficient_Software_Guidelines_v3_4_10_11.pdf Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 94
  • 95. Summary – Sensors are a natural way to interact with end users – Desktop apps can utilize them through WinRT as well as Windows 8* Store Apps – Utilize efficient designs and coding practices to save battery life Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 95
  • 96. Q&A Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 96
  • 97. Tools Presentation by Uli Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. Intel Confidential *Other brands and names are the property of their respective owners 97
  • 98. Intel® Software Development Tools for Advanced Performance Boost Performance. Scale Forward. Ensure Confidence.
  • 99. Who Am I… • Uli Dumschat (ulrich.dumschat@intel.com) • Computer Science Degree • Mobile Tools Product Marketing @ Intel • Since 1998 in SW Tools business, Intel since 2001 DL2BAT 9/4/2012 99
  • 100. Intel® SSG/Developer Products Division Premium Class Tools For Intel® Architecture http://www.intel.com/software/products Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 100
  • 101. Windows* 8 Compatibility OS/Environment Development Intel® Software Requirements Development Tools Let‘s talk about Intel Tools For Windows* Desktop Apps Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 101
  • 102. Intel® Software Development Tools Overview Libraries Bundled Suites Compilers Analysis/ Profiling Tools Let‘s have a closer look! ☺ Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 102
  • 103. Thriving in a Multicore World with Intel® Parallel Studio XE
  • 104. Intel® Parallel Studio XE Windows and Linux Value Proposition Leading Software Development Tools for What Optimized Application Performance, Scalable Parallelism, and Confidence What’s Included? • Performance - Intel tools are key to utilizing processor performance Why • Scale forward - Your application investment extends to tomorrow’s platforms • Confidence - Trusted software tools you can count on for best results • Leading C++ and Fortran performance optimizing compilers libraries, performance libraries, and analysis tools • Advanced parallel programming models to develop code for Intel® Xeon® How Processors today, easily extends to Intel® MIC architecture • Trusted software correctness tools for application quality and ensured confidence Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 104
  • 105. Intel® Parallel Studio XE 2011 A Complete SW Tools Solution Covering All Phases Of SW Development Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 105
  • 106. Intel® Parallel Studio XE Powerful Tools Provide Comprehensive Coverage Phase Productivity Tool Feature Benefit Intel® Parallel • Simplifies, demystifies, and speeds parallel application design Advisor Design Threading design assistant • Available for Intel® Parallel Studio XE for C++ Windows and Intel® C++ Studio Windows Windows (ESD) C/C++ and Fortran compilers and performance libraries • Enabling solution to achieve the Build & Intel® • Intel® Parallel Building Blocks application performance and Debug Composer XE • Intel® Integrated Performance scalability benefits of multicore and Primitives forward scale to manycore • Intel® Math Kernel Library Memory & threading dynamic • Increased productivity, code quality, Intel® analysis for code quality and lowers cost Verify • Finds memory, threading , and security Inspector XE Static Security Analysis for code quality (Studio products only) defects before they happen Performance Profiler for • Remove guesswork, saves time, makes Intel® VTune™ Tune optimizing application it easier to find performance and Amplifier XE performance and scalability scalability bottlenecks Optimized Performance, Scalable Parallelism, Confidence Software & Services Group Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 106
  • 107. Intel® Parallel Studio XE Product Details