Qu'est-ce qui fait aujourd'hui le succès d'une application mobile? La réponse en 3 syllabes: So_Lo_Mo: comme "Sociale, Locale, Mobile". Ces concepts peuvent paraitre évidents (il s'agit des fondamentaux de l'usage d'un smartphone) mais force est de constater que peu de développeurs ont une vraie réflexion sur "pourquoi" ils ont conçu leur application sur smartphone plutôt qu'ailleurs.... Cette session sera constituée de plusieurs retours d'expériences sur des applications dont la qualité de l'approche SoLoMo peut servir de référence: FoodReporter (100000 utilisateurs du service) et les spécificités de sa version 7.5, présentée par ses concepteurs par exemple, ou encore l'application Let's Walk, (SoLoMo par essence, il s'agit d'une application de partage de randonnées). il sera question des spécificités techniques qui font de Windows Phone une plateforme sur laquelle il est facile de concevoir rapidement une expérience SoLoMo, notamment grâce à de nombreuses démonstrations de code directement réutilisable: - Gestion de la géolocalisation - Moyens d'intégration des réseaux sociaux (authentification, partage, social graph...) - Intégration de l'application dans les expériences camera, photos, et recherche du téléphone - Live Tiles, background agent, notifications, les différents moyens de faire vivre l'application quand elle n'est pas à l'écran et bien d'autres choses encore!
2. Concevoir une
expérience SoLoMo
Jeudi 9 février
Rudy HUYN
Samuel BLANCHARD
3. Samuel BLANCHARD
Au niveau communautaire
Rédacteur/Modérateur chez
Développez
Rédacteur pour Programmez!
A remplacer
par une
Fondateur Club SP et .NET Ouest
photo
Créateur d’applications Windows
Phone
Outil : IsoStoreSpy
Apps: Sonic’s Jewels
Au niveau professionnel
Responsable Développement &
Innovation chez Naviso
(www.naviso.fr)
4. Rudy HUYN
Au niveau communautaire
MVP Windows Phone
Development
MCC
Fondateur de la communauté
developpeurs Windows Phone
Au niveau professionnel
Responsable Technique Windows
Phone 7, Windows 8, Xbox –
Orange Business Services
13. Code : Statuts et liens
Quelques lignes de codes suffisent
// Partage de statuts sur Windows Live, FaceBook, Twitter...
ShareStatusTask shareStatus = new ShareStatusTask();
shareStatus.Status = "Mais c'est Techdays aujourd'hui ^^ !";
shareStatus.Show();
// Partage de lien sur Windows Live, FaceBook, Twitter...
ShareLinkTask shareLink = new ShareLinkTask();
shareLink.LinkUri = new
Uri(@"http://www.microsoft.com/france/mstechdays/", UriKind.Absolute );
shareLink.Message = "C'est bon ça !";
shareLink.Title = "Techdays 2012";
shareLink.Show();
20. Code : Cartes
Simplicité du XAML
<my:Map x:Name="Map" Mode="Aerial" CredentialsProvider=« XXX-XXX-XXX">
<!-- Pushpin avec Latitude et Logitude -->
<my:Pushpin x:Name="CenterPushPin" Content="Je suis là !«
Location="48.531695,2.150700">
</my:Pushpin>
</my:Map>
25. Code : Direction
BingMapsDirectionsTask direction = new BingMapsDirectionsTask();
// debut de la direction ! Seule la location de départ compte
direction.Start = new LabeledMapLocation("Je suis la !",
this.CenterPushPin.Location);
// le label est utilisé pour rechercher l'arrivée
direction.End = new LabeledMapLocation("Palais des congrès, Paris 75",
null);
direction.Show();
30. Ce que l’application reçoit
SearchExtras?PlaceName=le
saison&PlaceLatitude=48.083333&Place
Longitude=-1.683333&PlaceAddress=2
rue de l’abbé Pierre, 35760 Saint
Grégoire,
France&Category=Bing_Places_Food_an
d_Dining
35. Code : Prendre une photo
Le classique CameraCaptureTask
// Creation de la camera
CameraCaptureTask camera = new CameraCaptureTask();
camera.Completed += new EventHandler<PhotoResult>(camera_Completed);
camera.Show();
// Réception de la photo
void camera_Completed(object sender, PhotoResult e)
{
if (e.Error == null)
{
var image = new BitmapImage();
image.SetSource(e.ChosenPhoto);
this.Photo.Source = image;
}
}
38. Attention !
La caméra n’est pas obligatoire sur Windows Phone
if(!Microsoft.Devices.Camera.IsCameraTypeSupported(CameraType.
Primary))
{
MessageBox.Show("Votre téléphone ne dispose pas de caméra");
return;
}
39. Code : Enregistrer du son
XNA à la rescousse !
this.streamSample = new MemoryStream();
// 1 seconde de buffer
microphone.BufferDuration = TimeSpan.FromMilliseconds(1000);
// Le resultat est un tableau dont la taille est determiné selon la durée du
bugger par la methode GetSampleSizeInBytes
int size = microphone.GetSampleSizeInBytes(microphone.BufferDuration);
this.buffer = new byte[size];
microphone.BufferReady += microphone_BufferReady;
microphone.Start();
// On remplie le flux avec le son
void microphone_BufferReady(object sender, EventArgs e)
{
microphone.GetData(buffer);
streamSample.Write(buffer, 0, buffer.Length);
}
46. Comment faire ?
Dans WMAppManifest.xaml
Dans le OnNavigatedTo de la page principale
47. Conclusion
Prêt à répondre à l’ensemble des problématiques SoLoMo
Intégrer son expérience SoLoMo au cœur même du
téléphone
Et vos applications ?
48. Questions ?
Rudy Huyn Samuel BLANCHARD
@mail samuel.blanchard@naviso.fr
49. Vous voulez développer une appli Windows Phone ? Inscrivez-vous !
Profitez d’un programme d’accompagnement pour développeurs, à la carte et sans engagement
– Un guide vous contacte et vous accompagne personnellement
– Il met à votre disposition des ressources : accès gratuits* Marketplace, prêts/dons* de téléphone…
– Il vous propose du coaching technique et design
– Il vous aide à rendre visible votre application en ligne et à des événements
*Dans la limite des quantités disponibles