1 / 73

How to master?

How to master?. Paweł Żochowski. pawel.zochowski@studentpartner.pl http://zozofromelk.wordpress.com/. Agenda. Mechanizmy dostępu do danych i sensorów Baza danych SQL CE Kontrolki do przedstawiania danych Fast Application Switching Multitasking Live Tiles Zarabiaj! Zakręć się.

karlyn
Download Presentation

How to master?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. How to master?

  2. Paweł Żochowski pawel.zochowski@studentpartner.pl http://zozofromelk.wordpress.com/

  3. Agenda • Mechanizmy dostępu do danych i sensorów • Baza danych SQL CE • Kontrolki do przedstawianiadanych • Fast Application Switching • Multitasking • Live Tiles • Zarabiaj! • Zakręć się

  4. Mechanizmy dostępu do danych i sensorów Launchers and Choosers

  5. Sposoby dostępu do danych • Izolacja środowiska telefonu od aplikacji użytkownika • Zapewnione proste metody i funkcje, niewymagające samodzielnego przedstawiania danych • Zapewnienie bezpieczeństwa i spójności danych naszego klienta

  6. Lista chooserów • Address Chooser Task for Windows Phone • Camera Capture Task for Windows Phone • Email Address Chooser Task for Windows Phone • Game Invite Task for Windows Phone • Phone Number Chooser Task for Windows Phone • Photo Chooser Task for Windows Phone • Save Contact Task for Windows Phone • Save Email Address Task for Windows Phone • Save Phone Number Task for Windows Phone • Save Ringtone Task for Windows Phone

  7. Sposoby dostępu do sensorówi komunikacji • Działanie sensorów niezależne od działania naszej aplikacji • Brak możliwości ingerencji w wewnętrzne warstwy systemu • Odczyt i zapis zawsze płynny i dobrze obsłużony • Obsługa map, telefonu, maili i SMS’ów (wraz z historią) • Odtwarzanie mediów • Bezpieczeństwo prywatności naszego klienta

  8. Lista launcherów • Bing Maps Directions Task • Bing Maps Task • Connection Settings Task • Email Compose Task • Marketplace Detail Task • Marketplace Hub Task • Marketplace Review Task • Marketplace Search Task • Media Player Launcher • Phone Call Task • Search Task • Share Link Task • Share Status Task • SMS Compose Task • Web Browser Task

  9. Launchers and choosers

  10. Baza danych SQL CE Przechowywanie danych

  11. Czym jest SQL CE • Relacyjna baza danych oparta na plikach • Działa bardzo podobnie jak bazy MSSQL • Oczywiście trochę ograniczona • Dostęp odbywa się przez LINQ to SQL

  12. Różnice pomiędzy MSSQL a SQL CE • SQL CE działa jako proces na telefonie, nie aplikacja klient-serwer • Dostęp do SQL CE może odbywać się jedynie za pośrednictwem LINQ to SQL • T-SQL nie jest wspierany! • Dostęp tylko z aplikacji wywołującej • SQL CE jest umieszczona w IsolatedStorage

  13. SQL CE

  14. Kontrolki do przedstawiania danych Panorama & Pivot

  15. Metro UI Design Guidelines • Metro to nie WP7! • Design czysty, lekki, prosty i szybki • Odpowiednie elementy do odpowiednich zastosowań • Wrażliwość na dotyk http://www.riagenic.com/archives/487 http://msdn.microsoft.com/en-us/library/hh202915(v=VS.92).aspx

  16. Data Grid • Nie stosuje się… • Przypadki dozwolone: Tabela z danymi

  17. Panorama • Tylko orientacja pionowa • Jest opcja poziomej, ale się nie stosuje • Listy oraz elementy poziome • Efekt paralaksy • Zastosowanie: Menu

  18. Pivot • Łatwiej zapisuje się stan kontrolki • Lekka i niekoniecznie zasobożerna • W obu orientacjach wygląda dobrze • Zastosowanie: Zestawienie skategoryzowanych danych

  19. Typografia 42pt 20pt 11pt 9pt

  20. Panorama & Pivot

  21. Szybkie przełączenie się między aplikacjami Fast Application Switching

  22. Fast Application Switching

  23. Cykl życia aplikacji - uśpienie Szybkie wznowienie aplikacji Przywrócenie stanu e.IsApplicationInstancePreserved== true Zapis stanu Odpięcie zasobów Zawieszenie wątków i timerów 23

  24. Cykl życia aplikacji - Tombstoning Resuming.. . Przywrócenie stanu e.IsApplicationInstancePreserved== false activated Tombstoned Tombstone Najstarszej aplikacji Odpięcie zasobów Zawieszenie wątków i timerów

  25. Methodyizdarzenia

  26. Wznawianie działania aplikacji • Obsługa zdarzenia aktywowania aplikacji sprawdza, czy stan został zachowany privatevoidApplication_Activated(object sender, ActivatedEventArgs e) { if (e.IsApplicationInstancePreserved) { // Dormant - objects in memory intact } else { // Tombstoned - need to reload } }

  27. Obsługa deaktywowania zasobów Dezaktywacja aplikacji MediaPlayer.Pause MediaElement.Pause SoundEffectInstance.Pause VibrateController.Stop PhotoCamera.Dispose Zapis strony i stanu (globalnie) PhoneApplicationPage. OnNavigatedFrom PhoneApplicationService. Deactivated Framework: Odpięcie zasobów Framework: Zatrzymanie wątków i timerów Uśpiona aplikacja

  28. Activation Resource Management Uruchomiona aplikacja PhoneApplicationPage. OnNavigatedTo MediaElement.Source/Position/Play Socket.ConnectAsync new PhotoCamera/VideoCamera Przywrócenie stanu aplikacji, jeżeli została tombstonowana PhoneApplicationService. Activated Framework: Przypięcie zasobów Framework: Wznowienie wątków i timerów Uśpiona App

  29. Isolated Storage vs State Storage • Nazwa Isolated storage wywodzi się ze sposobu przechowywania danych poprzez izolowanie ich od innych aplikacji • Może być używane jako miejsce do przechowywania plikówi folderów • Dostęp nie jest szybki – technologia NVRAM • Może zostać użyte do przechowywania par – nazwa/wartość, np. ustawienia programu • State storage – ponieważ przechowuje stan aplikacji • Może zostać użyte do przechowywania par – nazwa/wartość – dla przechowywania stanu aplikacji uśpionych i tombsonowanych • Bardzo szybki dostęp do danych

  30. Captain’s Log Bez Storage Ze Storage Pełna obsługa

  31. Podsumowanie • Tylko jedna aplikacja jest aktywna w tym samym czasie • Przyciski Start i Wstecz są używane do przełączania się pomiędzy aplikacjami i uruchamiania nowych aplikacji • Jeżeli ponad aplikacją jest uruchamiana inna, to aplikacja jest uśpiona (stale w pamięci, ale nie działa) lubTombstonowana (usunięta z pamięci) • Aplikacje używają metod klasy App.xaml.csdo zapisywania i przywracania stanu • Stan może być przechowywany w pamięci celem szybkiego powrotu do aplikacji lub w Isolated Storage dla pełnego zapisu danych 31

  32. Działanie w tle BackgroundTasks

  33. Multitasking • Background Agents • Okresowi (Periodic) • Zasobożerne (Resource Intensive) • Transfer danych w tle • Alarmy i przypomnienia • Dźwięk w tle 33

  34. Agenci • Agents • Okresowi • Resource Intensive • Aplikacja może mieć po jednym każdego typu • Inicjalizacja w aplikacji, działanie w tle • Reboot ich nie ruszy  • Kontrola poprzez ustawienia telefonu • Maksymalnie 18 agentów okresowych • Agend działa maksymalnie 14 dni • Może być odnawiany

  35. Generic Agent Types Agenci okresowi • Występowanie • Co 30 min • Czas działania • ok. 15 sekund • Ograniczenia • Nie więcej niż6 MB pamięci • Nie więcej niż10% CPU Resource Intensive Agents • Mogą działać, jeżeli… • Zasilanie z sieci • Internet bez GSM • Występowanie • Co 10 min • Ograniczenia • Nie więcej niż6 MB pamięci

  36. Funkcjonalności agentów Dozwolone Zabronione • Kafelki • Toast • Lokalizacja • Sieć • Zapis i odczyt ISO Storage • Sockets • Większość APIframeworków • Wyświetlanie UI • Biblioteki XNA • Mikrofoni aparat • Sensory • Odtwarzanie audio(tylko przez specjalne API)

  37. Captain’s Location Log

  38. Debugging Background Tasków • Uciążliwe byłoby czekanie 30 minut na każde wywołanie tasku… • …ale w trybie debugowania można skrócić ten czas • Kompilacja warunkowa ułatwi nam zbudowanie takiego projektu #if DEBUG_AGENT ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromSeconds(60)); #endif

  39. Debugging Agenta • Przy użyciu przycisku Start lub Wstecz podczas działania aplikacji z agentem Visual Studio nie odłączy debuggera • Można ustawiać breakpointy wewnątrz agenta, jak w przypadku zwykłego kodu aplikacji • Debugger zachowuje się identycznie – można wykonywać aplikację linia po linii lub podglądać zawartość zmiennych • Działa to też przy debuggowaniu na urządzeniu • Identyczne działanie dla ResourceIntensiveAgents

  40. Debugging Tasks

  41. File Transfer Tasks • Możliwe jest tworzenie tasków do przekazywania plików z i do Isolated Storage • Transfer plików będzie aktywny także po wyłączeniu aplikacji • Aplikacja może uzyskać dostęp do postępu pobierania/wysyłania pliku • Obsługa HTTP i HTTPs • FTP nie wspierane • System kolejkuje pliki

  42. Zasady transferu w tle • Jest kilka zasad wykorzystywania File Transfer Tasks • Maksymalny rozmiar pliku wysyłanego: 5 MB • Maksymalny rozmiar pliku pobieranego przez GSM: 20 MB • Maksymalny rozmiar pliku pobieranego przez Wi-Fi: 100 MB • Parametry te mogą być modyfikowane poprzez obiektTransferPreferencestworzony dla każdego transferu 42

  43. Picture Fetch

  44. Scheduled Notifications • Czasowe powiadomienia na telefonie • Wspierają alarmy i przypomnienia • Reboot telefonu nie usuwa ich • Zgodne z UX telefonu

  45. Alarms vs Reminders? Alarmy Przypomnienia • Więcej informacji • Integracja z innymi przypomnieniami • Odłóż i odrzuć • Uruchamiają aplikację • Globalne ustawienia telefonu • Modalne • Odłóż i odrzuć • Własne dźwięki • Brak aplikacji wywołującej • Nie odkładają się na stosie

  46. Tworzenie przypomnienia • Kod tworzy przypomnienie i dodaje je do schedulera telefonu • Wartość eggTime przechowuje czas do wywołania przypomnienia • Ten kod ustawia także stronę aplikacji, którą wyświetli przypomnienie usingMicrosoft.Phone.Scheduler; ... eggReminder =newReminder("Egg Timer"); eggReminder.BeginTime = DateTime.Now + newTimeSpan(0, eggTime, 0); eggReminder.Content = "Egg Ready"; eggReminder.RecurrenceType = RecurrenceInterval.None; eggReminder.NavigationUri = newUri("/EggReadyPage.xaml", UriKind.Relative); ScheduledActionService.Add(eggReminder);

  47. Gospodarowanie przypomnieniami • Przypomnienia są rozpoznawane po nazwie • Ten kod znajduje przypomnienie o nazwie „EggTimer” i usuwa je ze schedulera RemindereggReminder = ScheduledActionService.Find("Egg Timer") asReminder; if ( eggReminder != null ) { ScheduledActionService.Remove("Egg Timer"); }

  48. Egg Timer

  49. Audio Playback Agents • Możliwe jest utworzenie Audio Playback Agenta zarządzającego playlistą • Identyczny mechanizm jak przy BackgroundTaskach • Audio może być strumieniowane lub przechowywanie w Isolated Storage

  50. Background Audio • Odtwarzanie • Aplikacja dostarcza URL albo strumień do Zune • Audio jest odtwarzane nawet, gdy aplikacja jest zamknięta • Aplikacja jest informowana o zbliżaniu się końca pliku lub bufora • Integracja z telefonem • Music & Video Hub • Universal Volume Control (UVC), aplikacja uruchomieniowa, kontrolki, contextual info • Uruchomienie kontekstowe – Start menu, UVC, Music & Video Hub • Integracja z aplikacją • Aplikacja może pozyskać status odtwarzania, postęp i metadane • Rejestracja notyfikacji odtwarzania

More Related