I. Pourquoi un ordinateur 2 en 1 ?

Un ordinateur 2 en 1 est un ordinateur portable qui peut être transformé en une tablette par une manipulation de l'appareil. Le mode ordinateur portable (également nommé mode bureau) permet à un clavier et une souris d'être utilisés comme principaux périphériques d'entrée. Le mode tablette repose sur un écran tactile, ce qui nécessite l'interaction avec un doigt ou un stylet. Un 2 en 1, comme l'Intel ® Ultrabook ™, offre une précision et un contrôle avec de multiples options d'entrée qui vous permettent de taper lorsque vous avez besoin de travailler et de toucher lorsque vous voulez jouer.

Les développeurs devraient envisager plusieurs scénarios dans la modification de leurs applications pour en tirer parti et se conformer à ce nouveau type d'ordinateur transformable. Certaines applications peuvent garder leurs menus et apparence pratiquement identiques dans les deux modes. Tandis que d'autres, comme Krita Gemini pour Windows 8 (Krita Gemini : General Information), peuvent soigneusement sélectionner ce qui est mis en évidence et le rendre disponible différemment dans chaque mode de l'interface utilisateur. Krita est un programme pour le dessin et la peinture qui offre une solution de bout-en-bout pour la création des fichiers numériques de peinture à partir de zéro (Krita Gemini : Executable download). Cet article explique comment les développeurs de Krita ont ajouté la gestion du mode 2 en 1 - y compris l'implémentation du mode de commutation que ce soit automatique ou sélectionné par l'utilisateur - et certains développeurs devraient, lors de la création d'applications, prendre en compte l'expérience utilisateur 2 en 1.

II. Introduction

Au fil des années, les ordinateurs ont utilisé une variété de méthodes d'entrée à partir des cartes perforées en passant par des lignes de commande jusqu'à pointer-et-cliquer avec une souris ou d'autres périphériques. Avec l'adoption des écrans tactiles, nous pouvons maintenant pointer-et-cliquer avec une souris, un stylet ou avec les doigts. La plupart d'entre nous ne sommes pas encore prêts à effectuer toutes les interactions avec le toucher et avec les applications comme Krita Gemini gérant ces ordinateurs, nous n'avons pas à nous en faire. Le nouveau 2 en 1, comme Intel Ultrabook ™, peut fournir le mode de l'interface utilisateur qui offre la meilleure expérience possible de l'interface utilisateur, sur un seul appareil.

Il y a plusieurs façons à travers lesquelles un ordinateur 2 en 1 peut se transformer entre les deux modes, ordinateur portable et tablette (Figure 1 et Figure 2). Il existe de nombreux autres exemples d'ordinateurs 2 en 1 sur le site Web d'Intel. L'ordinateur Ultrabook peut se transformer en mode tablette à partir du mode portable en détachant l'écran du clavier ou autrement (en pliant l'écran au-dessus du clavier par exemple) pour désactiver le clavier et rendre l'écran comme périphérique d'entrée principal (comme le pliage de l'écran au-dessus du clavier). Les fabricants d'ordinateurs, actuellement, commencent à travailler sur l'introduction de cette information de transition de matériel au système d'exploitation. Par exemple, le message WM_SETTINGCHANGE des événements de l'API de Windows 8 et le paramètre texte « ConvertibleSlateMode » signalent le changement automatique du mode ordinateur-portable-à-tablette et tablette-à-ordinateur-portable. Il est également utile pour les développeurs d'insérer un bouton manuel de changement de mode pour le confort des utilisateurs.

Image non disponible
Figure 1 : Ordinateur 2 en 1 détachable
Image non disponible
Figure 2 : Ordinateur 2 en 1 pliant

Tout comme il y a plusieurs façons à travers lesquelles le 2 en 1 peut commuter entre le mode ordinateur portable et le mode tablette, le logiciel peut être conçu de différentes façons pour répondre à la transformation. Dans certains cas, il peut être souhaitable de conserver l'interface utilisateur aussi près que possible du mode portable, tandis que dans d'autres cas, vous pourriez apporter des modifications plus importantes à l'interface utilisateur. Par exemple, Intel a aidé KO GmBH à combiner les fonctionnalités de leur application tactile Krita avec leur programme de peinture populaire open source Krita (application d'ordinateur portable) dans la nouvelle application Krita Gemini. Le projet Krita est une communauté de développement active, accueillant de nouvelles idées et maintenant un support de qualité. L'équipe a ajouté les mécanismes nécessaires pour assurer la transition en douceur depuis les « souris et clavier » du mode ordinateur portable vers l'interface tactile en mode tablette. Voir les transformations en action de l'interface utilisateur de Krita Gemini (UI) dans la courte vidéo de la figure 3.


Figure 3 : Vidéo du changement d'interface utilisateur de Krita Gemini (Cliquer sur l'icône pour regarder)



Intel a travaillé avec de nombreux fournisseurs pour les aider à ajouter la gestion du mode 2 en 1 à leurs applications. Intel Developer Zone fournit d'importantes ressources afin de faciliter la création des applications aux développeurs, dont le mode 2 en 1, les capteurs tactiles, les graphiques, et plus encore. Vous pouvez vous référer aux liens ConnexesLiens connexes : à la fin de cet article.

III. Créez en Mode Tablette, raffinez en Mode Ordinateur Portable

L'équipe Gemini s'est arrangée pour optimiser l'expérience utilisateur dans les deux modes de fonctionnement. Dans les figures 4 et 5, vous pouvez voir que les changements de l'interface utilisateur d'un mode à l'autre sont nombreux et radicaux. Cela permet à l'utilisateur de se déplacer de façon transparente depuis le dessin « dans le champ » en mode tablette vers les retouches et les détails de travail plus fins en mode portable.

Image non disponible
Figure 4 : Interface utilisateur Krita Gemini en mode tablette
Image non disponible
Figure 5 : Interface utilisateur Krita Gemini en mode portable

Il existe trois étapes principales pour rendre une application transformable entre les deux modes de fonctionnement.

Étape 1 : l'application devrait être « sensible au toucher ». Nous avons de la chance que la gestion du toucher ait débuté bien avant l'apparition des 2-en-1, sans quoi la transition aurait été bien plus difficile que la simple gestion de la transition vers, ou depuis le mode tablette. Intel a publié des articles sur l'ajout d'entrées tactiles pour une application Windows 8.

Étape 2 : ajouter la gestion du mode 2 en 1. La première partie de la vidéo (figure 3) montre le changement automatique du mode grâce au capteur, une rotation dans ce cas (figure 6), suivie de la transition initiée par l'utilisateur via un bouton dans l'application (figure 7).

Image non disponible
Image non disponible
Figure 6: état-capteur activé, transition de mode du 2 en 1
Image non disponible
Figure 7 : cliquer sur le bouton « Sketch transition » pour initier une action par l'utilisateur afin de passer du mode ordinateur portable au mode tablette.

Le support pour les transitions automatiques nécessite la définition et la surveillance de l'état du capteur, et la prise des mesures appropriées une fois l'état connu. En outre, une transition de mode initiée par l'utilisateur [Figure 3] devrait être incluse à titre de courtoisie à ce dernier s'il souhaite être en mode tablette lorsque le code est, par défaut, en mode portable. Vous pouvez vous référer à l'article Intel « How to Write a 2 in 1 Aware Application » (Comment écrire une application sensible au 2 en 1) pour une approche exemple de l'ajout de transition à base de capteurs (How to Write a 2 in 1 Aware Application by Stephan Rogers). Le code de Krita de gestion des transitions d'un mode à l'autre se trouve dans leur code source en cherchant le « SlateMode » (Krita Gemini Mode Transition). Krita est publié sous une licence GNU GPL. Merci de se référer au dépôt du code source pour obtenir les informations les plus récentes (KO GmbH Krita Gemini).

 
Sélectionnez
// Snip from Gemini - Define 2-in1 mode hardware states:
#ifdef Q_OS_WIN
    #include <shellapi.h>
    #define SM_CONVERTIBLESLATEMODE 0x2003
    #define SM_SYSTEMDOCKED 0x2004
#endif

Tous les ordinateurs tactiles n'offrent pas la transition automatique, nous vous suggérons alors de faire comme l'équipe Krita Gemini et inclure un bouton dans votre application pour permettre à l'utilisateur de lancer manuellement le passage d'un mode à un autre. Le bouton de Gemini est illustré dans la figure 7. La transition de l'interface utilisateur initiée avec bouton remplit les mêmes fonctions que celles initiées avec capteur mécanique. Les informations sur l'écran et les périphériques d'entrée par défaut étant des grandes icônes accessibles par toucher en mode tablette, deviennent de plus petites icônes en mode ordinateur portable et l'entrée des données se fait à partir des périphériques matériels : clavier et souris. Cependant, puisque le chemin de capteur n'existe plus, la méthode de l'appui sur le bouton devrait effectuer les changements de l'écran, de l'icône et des périphériques d'entrée par défaut sans se référer aux données fournies par le capteur d'état. Par conséquent, les développeurs devraient fournir un chemin à l'utilisateur pour passer d'un mode à l'autre soit avec le toucher, soit avec la souris, indépendamment de l'état de l'interface utilisateur initiée avec bouton, au cas où l'utilisateur choisit un mode inapproprié.

La définition du bouton Kaction(), ainsi que ses états et actions, sont présentés dans le code ci-dessous (Krita Gemini Mode Transition) :

 
Sélectionnez
// Snip from Gemini - Define 2-in1 Mode Transition Button:
toDesktop = new KAction(q);
toDesktop->setEnabled(false);
toDesktop->setText(tr("Switch to Desktop"));
connect(toDesktop,
        SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), 
        q, 
        SLOT(switchDesktopForced()));
connect(toDesktop,
         SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), 
         q, 
         SLOT(switchToDesktop()));
sketchView->engine()->rootContext()->setContextProperty("switchToDesktopsketchView->Action", toDesktop);

Les ingénieurs, par la suite, se chargent de gérer les événements déclenchés par le bouton. Ils assurent premièrement la vérification du dernier état connu du système, vu que le code ne peut savoir qu'il tourne sur un système 2 en 1, et deuxièmement le changement de mode (Krita Gemini Mode Transition) :

 
Sélectionnez
// Snip from Gemini - Perform 2-in1 Mode Transition via Button:
// Snip de Gemini - Effectuer la transition de mode du 2 en 1 via le Bouton:
#ifdef Q_OS_WIN
bool MainWindow::winEvent( MSG * message, long * result ) {
    if (message && message->message == WM_SETTINGCHANGE && message->lParam)
    {
        if (wcscmp(TEXT("ConvertibleSlateMode"), (TCHAR *) message->lParam) == 0)
            d->notifySlateModeChange();
        else if (wcscmp(TEXT("SystemDockMode"), (TCHAR *) message->lParam) == 0)
            d->notifyDockingModeChange();
        *result = 0;
        return true;
    }
    return false;
}
#endif

void MainWindow::Private::notifySlateModeChange()
{
#ifdef Q_OS_WIN
    bool bSlateMode = (GetSystemMetrics(SM_CONVERTIBLESLATEMODE) == 0);
    if (slateMode != bSlateMode)
    {
        slateMode = bSlateMode;
        emit q->slateModeChanged();
        if (forceSketch || (slateMode && !forceDesktop))
        {
            if (!toSketch || (toSketch && toSketch->isEnabled()))
                q->switchToSketch();
        }
        else
        {
            q->switchToDesktop();
        }
        //qDebug() << "Slate mode is now" << slateMode;
    }

#endif
}

void MainWindow::Private::notifyDockingModeChange()
{
#ifdef Q_OS_WIN
    bool bDocked = (GetSystemMetrics(SM_SYSTEMDOCKED) != 0);
    if (docked != bDocked)
    {
        docked = bDocked;
        //qDebug() << "Docking mode is now" << docked;
    }
#endif
}

Étape 3 : corriger les problèmes découverts lors du test. Tandis que l'utilisation de la palette est assez facile que ce soit en mode tactile ou en mode souris, l'espace de travail lui-même devrait tenir l'accent et le zoom cohérents avec les attentes de l'utilisateur. Par conséquent, agrandir le tout n'était pas optionnel. Les contrôles ont été agrandis pour l'interaction tactile en mode tablette, mais l'image de l'écran lui-même devrait être gérée à un niveau différent afin de maintenir une expérience utilisateur attendue. Vous remarquerez dans la vidéo (Figure 3) que l'image dans le volet d'édition garde la même taille sur l'écran d'un mode à l'autre. C'était une zone qui exigeait des solutions créatives par les développeurs pour réserver les propriétés réelles de l'écran afin de maintenir la cohérence de l'image. Un autre problème est que les deux interfaces utilisateurs, exécutées simultanément, utilisent le même effort initial, ce qui a négativement affecté les performances en raison du partage des mêmes ressources graphiques par les deux interfaces. Des ajustements ont été faits dans les deux interfaces afin de garder les ressources nécessaires allouées aussi distinctes que possible et de prioriser l'interface utilisateur active le plus possible.

IV. Résumé

Comme vous pouvez le voir, l'ajout de la gestion du mode d'un 2 en 1 pour votre application est un processus assez simple tant que vous considérez la façon dont vos utilisateurs vont interagir avec votre application dans un mode interactif par rapport à l'autre. Lisez l'article Intel « Write Transformational Applications for 2 in 1 Devices Based on Ultrabook™ Designs » pour plus d'informations sur la création d'une application avec une interface utilisateur transformable (Write Transformational Applications for 2 in1 Devices Based on Ultrabook™ Designs by Meghana Rao) . Pour Krita Gemini la décision a été prise pour faciliter la création des dessins et art simple en mode tablette et ajouter les touches finales à ces créations en mode portable. Lorsque vous développez vos modes 2 en 1, tenez compte de ce que vous souhaitez mettre en évidence dans votre application lors de la présentation aux utilisateurs en mode tablette versus mode portable.

V. Liens connexes :

VI. Articles Intel connexes

VII. Resources Intel additionnelles

VIII. À propos de l'auteur 

Tim Duncan est un ingénieur Intel décrit par ses amis comme « M. Gidget-Gadget », avec une description plus récente comme un « Evangineer » pour Intel. Actuellement il aide les développeurs à intégrer la technologie en solutions, Tim a des décennies d'expérience dans l'industrie, de la fabrication de puces à l'intégration de systèmes.

Visitez le blog de Tim au Intel ® Developer Zone à Tim Duncan (Intel).

Si vous avez des questions, n'hésitez pas a envoyer un mail a , EMEA/Russia Program Manager.