Samuel BLANCHARD
Au niveau communautaire Rédacteur/Modérateur chez
Développez Rédacteur pour Programmez! Fondateur Club SP et .NET Ouest Créateur d’applications Windows
Phone Outil : IsoStoreSpy Apps: Sonic’s Jewels
Au niveau professionnel Responsable Développement &
Innovation chez Naviso (www.naviso.fr)
A remplacer par une photo
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
Code : Statuts et liens
// 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();
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();
Code : Cartes
<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>
Simplicité du XAML
http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/Latitude,Longitude/5?mapSize=400,300&mapVersion=v1&key=credentialProviver
Code : Direction
BingMapsDirectionsTask direction = new BingMapsDirectionsTask();
// debut de la direction ! Seule la location de départ comptedirection.Start = new LabeledMapLocation("Je suis la !", this.CenterPushPin.Location);
// le label est utilisé pour rechercher l'arrivéedirection.End = new LabeledMapLocation("Palais des congrès, Paris 75", null);
direction.Show();
Ce que l’application reçoit
SearchExtras?PlaceName=le saison&PlaceLatitude=48.083333&PlaceLongitude=-1.683333&PlaceAddress=2 rue de l’abbé Pierre, 35760 Saint Grégoire, France&Category=Bing_Places_Food_and_Dining
Capacité de WP à acquérir des informations externesUn plus pour une expérience riche
L’aspect Mobile
Code : Prendre une photo
// Creation de la cameraCameraCaptureTask camera = new CameraCaptureTask();camera.Completed += new EventHandler<PhotoResult>(camera_Completed);camera.Show();
// Réception de la photovoid camera_Completed(object sender, PhotoResult e){ if (e.Error == null) { var image = new BitmapImage(); image.SetSource(e.ChosenPhoto);
this.Photo.Source = image; }}
Le classique CameraCaptureTask
L’objet CameraCaptureTask doit être déclaré dans le scope de votre classe et non dans la fonction
Attention !
Attention !
if(!Microsoft.Devices.Camera.IsCameraTypeSupported(CameraType.Primary)) { MessageBox.Show("Votre téléphone ne dispose pas de caméra"); return; }
La caméra n’est pas obligatoire sur Windows Phone
Code : Enregistrer du son
this.streamSample = new MemoryStream();// 1 seconde de buffermicrophone.BufferDuration = TimeSpan.FromMilliseconds(1000);// Le resultat est un tableau dont la taille est determiné selon la durée du bugger par la methode GetSampleSizeInBytesint size = microphone.GetSampleSizeInBytes(microphone.BufferDuration);this.buffer = new byte[size];
microphone.BufferReady += microphone_BufferReady;microphone.Start();
// On remplie le flux avec le sonvoid microphone_BufferReady(object sender, EventArgs e){ microphone.GetData(buffer);
streamSample.Write(buffer, 0, buffer.Length);}
XNA à la rescousse !
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 ?
Conclusion
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