Windows Phone 7 David Gešvindr MCT | MSP | MCITP | MCPD Jiří Hýbl Microsoft Senior Support Engineer
Osnova Proč restart? Základní informace o platformě Představení prostředí telefonu Nasazení Windows Phone 7 ve firemním prostředí Úvod do vývoje aplikací
Nový začátek Vývoj Windows Mobile 6.5 a 7 byl ukončen Windows Phone 7 vznikl jako úplně nový operační systém Zaměřený na uživatele Jednoduchá tvorba aplikací Výkonný a jednotný hardware
Uživatelské rozhraní Rozděleno do částí – HUBů podle obsahu
People Messaging + Calendar Internet Explorer Games Music + Video + Photos Marketplace Office
Hardware Display 480x800 QVGA Capacitive touch 4 or more contact points Camera 5 mega pixels or more Dedicated camera button Hardware buttons Start, Search, Back Sensors A-GPS, Accelerometer, Compass GPU DirectX 9 acceleration CPU ARMv7 Cortex/Scorpion or better Memory 256MB RAM or more 8GB Flash or more Multimedia Common detailed specs Codec acceleration
Telefony s Windows Phone 7 HTC 7 TrophyHTC 7 HD HTC 7 Mozart
Samsung Omnia 7 Dell Venue ProLG Optimus 7
LG Optimus 7Q HTC 7 Pro
PŘEDSTAVENÍ JEDNOTLIVÝCH HUBŮ
NASAZENÍ WINDOWS PHONE 7 VE FIREMNÍM PROSŘEDÍ OFFICE HUB + MICROSOFT EXCHANGE
OneNote Synchronizace se SkyDrivem a SharePointem Vkládání obrázků a zvukových záznamů Možnost synchronizovat více souborů (stačí otevřít další soubor na SkyDrivu a nastavit synchronizaci)
Documents Vytváření dokumentů Word a Excel Úpravy dokumentů Word, Excel a PowerPoint Možnost odeslat dokument elektronickou poštou
SharePoint Otevírání, úpravy a synchronizace dokumentů na serveru Microsoft SharePoint Připojení je možné přímo (Wi-Fi) nebo přes Internet (publikace přes Unified Access Gateway) Snadný přístup k publikovaným dokumentům bez nutnosti používat browser
Microsoft Exchange - ActiveSync klient Možnost připojení k více účtům včetně kalendářů Možnost nastavit flag „Running late“
VÝVOJ APLIKACÍ
Vývoj aplikací SensorsMediaData Xbox LIVE Notifications.NET Framework managed code sandbox Location Phone Phone Emulator SamplesDocumentation GuidesCommunity Packaging and Verification Tools RuntimeTools CloudPortal Notifications LocationIdentityFeeds MapsSocial App Deployment Registration Validation Certification Publishing Marketplace MO and CC Billing Business Intelligence Update Management
VÝVOJ APLIKACÍ V SILVERLIGHTU
Silverlight ve Windows Phone Silverlight 3 a navíc: Zpracování uživatelských vstupů (klávesnice, doteky a gesta) Ovládání HW, multimédií a senzorů Integrace do prostředí OS Navigation + Lifecycle Application Model Windows Phone Controls Běh v sandboxu (Isolated Storage) Výkonostní optimalizace
UŽIVATELSKÉ VSTUPY UKÁZKA
Ovládání HW Accelerometr Video playback FM Radio Microphone Vibration Location Touch
Accelerometr acc = new Accelerometer(); acc.ReadingChanged += acChange; acc.Start(); void acChange(object a, AccelerometerReadingEventArgs e) { Dispatcher.BeginInvoke(() => { Canvas.SetLeft(this.ellipse, e.X * 3); Canvas.SetTop(this.ellipse, e.Y * 3); }); }
FM Radio BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate { FMRadio.Instance.PowerMode = RadioPowerMode.On; System.Threading.Thread.Sleep(2000); FMRadio.Instance.CurrentRegion = RadioRegion.Europe; System.Threading.Thread.Sleep(2000); FMRadio.Instance.Frequency = 87.9; }; worker.RunWorkerAsync(;
Location Location services + Přesnost - Spotřeba - Rychlost - Budovy +/- Přesnost +/- Spotřeba +/- Rychlost +/- Obydlené oblasti GPS - Přesnost + Spotřeba + Rychlost - Volné prostranství
Location watcher = new GeoCoordinateWatcher(); // Nizka presnost, mozno dat vyssi (GPS) watcher.PositionChanged += ( a, e ) => { // UI thread map.Center = new GeoCoordinate( e.Position.Location.Latitude, e.Position.Location.Longitude); } watcher.MovementThreshold = 300; // Metry watcher.Start();
Launchers and Choosers Launchers PhoneCallTask SearchTask SMSComposeTask WebBrowserTask ComposeTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTask MarketplaceSearchTask MediaPlayerLauncher Choosers CameraCaptureTask AddressChooserTask PhoneNumberChooserTask PhotoChooserTask Save AddressTask SavePhoneNumberTask
CameraCaptureTask public Mainpage (){ ctask = new CameraCaptureTask(); // Musí být v konstruktoru ctask.Completed += ctask_Completed; } // Někde mimo konstruktor { ctask.Show(); } // Zpracování výsledku void ctask_Completed(object sender, PhotoResult e){ if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null) img = PictureDecoder.DecodeJpeg(e.ChosenPhoto); }
OVLÁDACÍ PRVKY UKÁZKA
Application Lifecycle Start Launching event App Running „Zpět“ na první stránce Closing event „Start“ nebo spuštění launcheru nebo chooseru Deactivated event
Application Lifecycle Deactivated event Restored app instance User presses Start and launches your application Uživatel dokončil launcher nebo chooser nebo se do aplikace vrací tlačítkem „Zpět“ Activated event New app instance Launching event App Running
Push notifications Komunikace přes notifikační službu Typy notifikací: Tiles (kdykoliv) Toast (když neběží aplikace) Raw (když běží aplikace)
VÝVOJ HER V XNA UKÁZKA
Zdroje Larry Lieberman: Windows Phone 7 & the Windows Phone 7 Application Platform Jaime Rodriguez: Silverlight for Windows Phone 7 Bryan Agnetta: User Experience Best Practices for Building Applications on Windows Phone 7 Rob Miles: Building Windows Phone Games with Microsoft XNA and Visual Studio 2010
DOTAZY