pierre cauchois | fonctionnement audience et marketing contenus logiciels windows mobile natifs...

30
Tout savoir pour développer pour Marketplace Pierre Cauchois | http://blogs.msdn.com/pierreca

Upload: others

Post on 03-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Tout savoir pour développer pour Marketplace Pierre Cauchois | http://blogs.msdn.com/pierreca

Page 2: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Les Best Practices du développement mobile

• Développer pour Marketplace

• Code natif/managé

• Widgets

• Publier sur Marketplace

• Le processus, les règles, etc

Agenda

Page 3: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

BEST PRACTICES DU DÉVELOPPEMENT MOBILE

Page 4: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Usage, Fonction, Experience?

• Oubliez la technique et concentrez vous sur: • L'utilisateur: style de vie, habitudes… • La fonction "principale" • L'expérience qui en découle

• Quelles sont les particularités d'usage qui font que votre

application fait sens sur un mobile? • Est-ce la situation? Ou bien une fonctionnalité

spécifique du mobile? • Le téléphone est un outil social: votre application tire-t-

elle partie de cet aspect?

• Pourquoi ne pas travailler avec un ergonome et/ou un designer?

Page 5: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Développer mobile…

• Choisir ses outils • Un Widget pour une application web simple et rapide • Du code natif pour des hautes performances • Du code managé pour des applications aux

fonctionnalités riches • Tester avec des vrais terminaux

• Différentes Résolutions: QVGA, VGA, WVGA minimum! • Différents Form-Factors (tactile, non tactile?)

• Tester avec des vraies connexions de données • 3G, Edge, GPRS…

• Connaitre ses limites • Mémoire, CPU • Ecran!

Page 6: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Penser mobile…

• Batterie! • Couper les timers quand l'application est en background • Limiter l'usage des connexions data, du GPS… • Éviter les animations inutiles

• Input! (texte, interaction app/user) • Stocker les préférences de l'utilisateur • Créer des habitudes

• On pense qu'il y a toujours quelque chose à coté! • Manipulable d'un doigt, en regardant d'un œil

• Scrolling uni-directionnel! • Limiter le nombre d'informations • Différentier clairement les différents éléments • Ne pas "occuper" le regard: Informer != Distraire

• La fonction téléphone doit toujours primer!

Page 7: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

DÉVELOPPPER POUR LES WINDOWS PHONES

Page 8: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Les outils

• Développement dans Visual Studio • SDK Windows Mobile 6 Refresh + DRK Windows Mobile

6.5

• Le choix des modèles de développement • Développement natif (Win32) • Développement .NET (Compact Framework) • Développement Web (Widgets)

• Et bien sur:

• Emulateurs riches (incluant stack cellulaire, GPS, etc) • Outils de tests (unitaires/monkey)

Page 9: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Les Ressources:

• http://developer.windowsmobile.com • Le Centre de Développement MSDN

• http://msdn.microsoft.com/fr-fr/windowsmobile • Forums • Documentation complète, exhaustive, annotée par la

communauté • Contenu technique mis à jour régulièrement • Coach

• Codes d'exemples livrés avec le SDK • Quasiment tous les aspects du téléphone sont couverts

• Communauté active • Forums, Mails, Newsgroups, Blogs, Toolkits…

• Réseau de partenaires hyper qualifiés • Relation privilégiée avec Microsoft, régulièrement mis en avant

lors des évènements

Page 10: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Code Natif: • Win32, MFC, C/C++ L’intelligence est dans le téléphone, c’est la solution la plus performante, mais il

faut connaitre Win32, ou pire, les MFC

• Code Managé • .NET Compact Framework, C#/VB.NET …

L’intelligence est dans le téléphone, avec une grosse base de classes pour accélérer le développement: accès à toutes les fonctionnalités du téléphone

• Les Widgets • HTML, CSS, Javascript, XML…

L’intelligence est en partie dans le téléphone, et en partie sur le Web: le meilleur compromis entre contenu statique, utilisation de la bande passage et richesse du web

Choisir ses armes

Page 11: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

LE DÉVELOPPEMENT NATIF/MANAGÉ

Page 12: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Le développeur a accès à tout le téléphone

• L'interop (P/Invoke) est autorisée

• Clairement la solution de choix pour les interfaces riches et réactives

• De très nombreux toolkits sont disponibles sur le marché pour pousser l'expérience encore plus loin

• Interfaces Riches, Géolocalisation, Webservices…

Code Natif et Managé

Page 13: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Disponible en code natif

• Il s'agit de messages WM_GESTURE dans la boucle des messages

• Wrapper managé dans la communauté

• Un objet à rajouter dans son formulaire pour intercepter les messages

La Gesture API

Page 14: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

La Gesture API

Page 15: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Géolocalisation : GPSID, BingMaps

• Messages/Emails: MAPI

• Contacts/Taches/Calendrier: POOM

• WebServices: WCF & LINQ

• Interfaces Riches: Le GDI

Plus, ce que produit la communauté:

SkyHook, GoogleMaps, Resco, Mirabyte, BeeMobile, Fluid, AlphaMobile Controls, etc

Les autres sujets

Page 16: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Utilisation du GPS

En utilisant le wrapper livré dans les samples codes du SDK

using Microsoft.WindowsMobile.Samples.Location; … Gps MyGps = new Gps(); MyGps.Open(); GpsPosition myPosition = MyGps.GetPosition(); MyGps.Close(); if (myPosition.LatitudeValid && myPosition.LongitudeValid) { //DO Something

}

Page 17: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

POOM: les contacts

using Microsoft.WindowsMobile.PocketOutlook; … using (OutlookSession session = new OutlookSession()) { currentNumberOfContacts = session.Contacts.Items.Count; // Ajout d'un contact Contact ct = new Contact(); ct.FirstName = "John"; ct.LastName = "Doe" + i.ToString(); ct.Email1Address = "john.doe" + i.ToString() + "@contoso.com"; session.Contacts.Items.Add(ct); }

Page 18: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

POOM: l'interception de SMS

using Microsoft.WindowsMobile.PocketOutlook.MessageInterception; … MessageInterceptor interceptor = new MessageInterceptor(InterceptionAction.NotifyAndDelete); interceptor.MessageCondition = new MessageCondition(); interceptor.MessageCondition.CaseSensitive = true; interceptor.MessageCondition.ComparisonType = MessagePropertyComparisonType.Equal; interceptor.MessageCondition.ComparisonValue = "toto"; interceptor.MessageCondition.Property = MessageProperty.Sender;

Page 19: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

L'utilisation de la Caméra

CameraCaptureDialog myCamDialog = new CameraCaptureDialog(); myCamDialog.Owner = this; try { if (DialogResult.OK == myCamDialog.ShowDialog()) { pictureBox1.Image = new Bitmap(myCamDialog.FileName); pictureBox1.Invalidate(); MessageBox.Show(msg); } } catch (InvalidOperationException) { MessageBox.Show("The camera on this device is not supported."); } finally { myCamDialog.Dispose(); myCamDialog = null; }

Page 20: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Cartographie avec Bing Maps MapView[] myViews = new MapView[1]; ViewByScale myView = new ViewByScale(); mapCenter = new LatLong(); mapCenter.Latitude = Latitude; mapCenter.Longitude = Longitude; myView.CenterPoint = mapCenter; myView.MapScale = mapScale; myViews[0] = myView; Pushpin[] myPushpins = new Pushpin[1]; myPushpins[0] = new Pushpin(); myPushpins[0].IconDataSource = "MapPoint.Icons"; myPushpins[0].IconName = "31"; myPushpins[0].Label = "Location"; myPushpins[0].LatLong = new LatLong(); myPushpins[0].LatLong.Latitude = mapCenter.Latitude; myPushpins[0].LatLong.Longitude = mapCenter.Longitude; MapSpecification mapSpec = new MapSpecification(); mapSpec.DataSourceName = "MapPoint.EU"; mapSpec.Views = myViews; mapSpec.Pushpins = myPushpins; MapImage[] mapImages = renderService.GetMap(mapSpec); if (mapImages[0] != null) { pbMap.Image = new System.Drawing.Bitmap(new System.IO.MemoryStream(mapImages[0].MimeData.Bits)); pbMap.Visible = true; }

Page 21: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

LE DEVELOPPEMENT DE WIDGETS

Page 22: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Qu'est ce qu'un widget ?

• Une application centrée sur une fonctionnalité • Basé sur une norme W3C

• Créé avec des technologies connues du monde du web • HTML

• Cascading Style Sheets (CSS)

• JavaScript

Page 23: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Accès instantané à une information

• Horaires de bus, train, avion, …

• Météo, news, trafic routier

• Outil marketing

• Applications « addictives »

• Comptes à rebours

• Outil de travail

• Jeux

Quelques exemples d'usages

Page 24: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Les widgets en quelques mots

• Applications interactives

• Développés avec les technologies du web

• Visual Studio

• Expression Web

• Look sympa

• Diffusez votre widget sur Windows Marketplace

Page 25: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Développement d'un Widget

Page 26: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Suivez le coach MSDN !

Page 27: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

WINDOWS MARKETPLACE FOR MOBILE

Page 28: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

Résumé du service Marketplace

Microsoft Confidential

Présence de Marketplace dès le menu Démarrer

Organisation simple + recherche par mots clé

Catégorisation (13 catégories) Animation commerciale de

Marketplace – showcase + notation utilisateurs

Téléchargement et installation des applis en un clic

Fonctionnement

Contenus

Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets (javascript, html) Thèmes (futur)

Sonneries, logos Musique Applications Java Applications directement concurrentes à Marketplace Navigation GPS, voix sur IP Violence, pornographie, promotion de l’utilisation d’alcool, de tabac ou

de substances illicites… Application exécutant du code non Windows Mobile (flash…)

Éditeurs / annonceurs

Certification 99$ / appli /

an

Windows Marketplace CB ou facturation opérateur

Si l’opérateur participe à la facturation, Microsoft partage une partie des revenus avec lui

Audience et marketing

4,6016,42

29,8612,96

75,47

192,78

0,40

1,17

1,80

0,00

0,50

1,00

1,50

2,00

0

50

100

150

200

250

FY'10 FY'11 FY'12

Million devices

Million downloads

Total revenue (M€) Total downloads (M)

Marketplace enabled devices (M)

Plus de 800k terminaux équipés de Marketplace fin FY10

Co-marketing Windows Phone + applications dès le lancement (autopromo + marketing online, communiqués de presse conjoints etc.)

http://developer.windowsmobile.com

Page 29: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets

• Type d'application

• Ne pas faire de concurrence à Marketplace

• Type de contenu

• Pas de contenu piraté

• Régionalisation des applications

• Utiliser la langue de la région qu'on vise

• Critères techniques

• Ne pas "bricker" le téléphone

Les règles de Marketplace

Page 30: Pierre Cauchois | Fonctionnement Audience et marketing Contenus Logiciels Windows Mobile natifs (langage C++ ou C#) Logiciels Windows Mobile managé (.net compact framework) Widgets