Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

How to master?. Paweł Żochowski

Podobne prezentacje


Prezentacja na temat: "How to master?. Paweł Żochowski"— Zapis prezentacji:

1 How to master?

2 Paweł Żochowski

3 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ę

4 LAUNCHERS AND CHOOSERS Mechanizmy dostępu do danych i sensorów

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 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 Address Task for Windows Phone Save Phone Number Task for Windows Phone Save Ringtone Task for Windows Phone

7 Sposoby dostępu do sensorów i 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 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 Demo Launchers and choosers

10 PRZECHOWYWANIE DANYCH Baza danych SQL CE

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 Demo SQL CE

14 PANORAMA & PIVOT Kontrolki do przedstawiania danych

15 Metro UI Design Guidelines Metro to nie WP7! Design czysty, lekki, prosty i szybki Odpowiednie elementy do odpowiednich zastosowań Wrażliwość na dotyk 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 Demo Panorama & Pivot

21 FAST APPLICATION SWITCHING Szybkie przełączenie się między aplikacjami

22 Demo Fast Application Switching

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

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

25 Methody i zdarzenia 25

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

27 Obsługa deaktywowania zasobów MediaPlayer.Pause MediaElement.Pause SoundEffectInstance.Pause VibrateController.Stop PhotoCamera.Dispose Zapis strony i stanu (globalnie) MediaPlayer.Pause MediaElement.Pause SoundEffectInstance.Pause VibrateController.Stop PhotoCamera.Dispose Zapis strony i stanu (globalnie) XNA AudioPaused SensorsNotifications suppressed NetworkingCancelled SocketsDisconnected MediaElementDisconnected CameraDisposed

28 Activation Resource Management MediaElement.Source/Position/ Play Socket.ConnectAsync new PhotoCamera/VideoCamera Przywrócenie stanu aplikacji, jeżeli została tombstonowana MediaElement.Source/Position/ Play Socket.ConnectAsync new PhotoCamera/VideoCamera Przywrócenie stanu aplikacji, jeżeli została tombstonowana XNA AudioResumed SensorsNotifications resumed NetworkingCompleted with Cancellation Sockets- MediaElement- Camera-

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ów i 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 Demo Bez Storage Ze Storage Pełna obsługa Captain’s Log

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) lub Tombstonowana (usunięta z pamięci) Aplikacje używają metod klasy App.xaml.cs do 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 31

32 BACKGROUND TASKS Działanie w tle

33 Multitasking Background Agents – Okresowi (Periodic) – Zasobożerne (Resource Intensive) Transfer danych w tle Alarmy i przypomnienia Dźwięk w tle 33 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  Kafelki  Toast  Lokalizacja  Sieć  Zapis i odczyt ISO Storage  Sockets  Większość API frameworków Zabronione  Wyświetlanie UI  Biblioteki XNA  Mikrofon i aparat  Sensory  Odtwarzanie audio (tylko przez specjalne API)

37 Demo 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 Demo 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 obiekt TransferPreferences tworzony dla każdego transferu 42 42

43 Demo 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 45 Przypomnienia Modalne Odłóż i odrzuć Własne dźwięki Brak aplikacji wywołującej Nie odkładają się na stosie Więcej informacji Integracja z innymi przypomnieniami Odłóż i odrzuć Uruchamiają aplikację Globalne ustawienia telefonu

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 using Microsoft.Phone.Scheduler;... eggReminder = new Reminder("Egg Timer"); eggReminder.BeginTime = DateTime.Now + new TimeSpan(0, eggTime, 0); eggReminder.Content = "Egg Ready"; eggReminder.RecurrenceType = RecurrenceInterval.None; eggReminder.NavigationUri = new Uri("/EggReadyPage.xaml", UriKind.Relative); ScheduledActionService.Add(eggReminder);

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

48 Demo Egg Timer

49 Audio Playback Agents Możliwe jest utworzenie Audio Playback Agenta zarządzającego playlistą Identyczny mechanizm jak przy Background Taskach 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

51 Podsumowanie Aplikacja może tworzyć procesy działające w tle – Periodic Task i ResourceIntensive działają nawet, gdy aplikacja jest zamknięta – Przypomnienia uruchomią się niezależnie od statusu działania aplikacji – Audio działa niezależnie od aplikacji Aplikacje i ich procesy mogą się komunikować poprzez Isolated Storage Visual Studio pozwala debuggować taski w taki sam sposób, jak normalne aplikacje

52 LIVE TILES Kafelki

53 User Experience Windows Phone 7 posiada unikatowy system zapewniający użytkownikowi dostęp do najważniejszych informacji poprzez Live Tiles + Push Notifications oferują deweloperowi możliwość przesyłania informacji wprost do aplikacji użytkownika (nawet, gdy aplikacja nie jest aktywna) – w tym aktualizacje kafelków

54 Tiles 101 Skróty do aplikacji Statyczne lub dynamiczne 2 rozmiary: małe i duże – Duże tylko dla aplikacji typu 1 st party Kontrolowane przez użytkownika

55 Data Driven Template Model Ustalony zestaw property Każde property odpowiada elementowi na kafelku Każdy element UI ma określone miejsce Nie każdy element musi być używany Animacje nie są rozszerzalne Background Image (173 x 173.png) TitleCount

56 Scenariusze i popularne aplikacje  Send to WP7  Kafelek z linkiem  Toast z linkiem  AlphaJax  Obrotowy kafelek  Ruchomy toast  Seattle Traffic Map  Kafelek z natężeniem ruchu  Pogoda  Kafelek pogodowy  Toast ostrzegający  Chess by Post  Obrotowy kafelek  Ruchomy toast  Beezz  Kafelek „Nieczytane”  Bezpośredni toast

57 Podstawowe i wewnętrzne kafelki Kafelek aplikacji – Przypinany z listy aplikacji – Właściwości kafelka z Application Manifest Wewnętrzne kafelki – Nowość w WP7 Mango (7.5) – Tworzone jako wynik działania użytkownika (w aplikacji) Front Back

58 Live Tiles – Local Tile API Update lokalnych kafelków (nie push) – Pełna kontrola nad wszystkimi properties, niezależnie czy aplikacja działa normalnie, czy w tle – Calorie counter, sticky notes Wielokafelek (SIC!) – Deep-link do specyficznych sekcji aplikacji – Uruchamia odpowiednią akcję bezpośrednio

59 Live Tiles – Local Tile API ciąg dalszy Update „tyłu” kafelków – Pełna kontrola nad wszystkimi properties, niezależnie czy aplikacja działa normalnie, czy w tle – Zawartość, tytuł, tło – Kafelek odwraca się po losowym czasie – Obrót kafelka jest asynchroniczny Title Zawartość Tytuł Tło String zawartości jest dłuższy

60 Demo Live Tiles – Local Tile API

61 Tile Schedule Okresowo zmienia obraz kafelka bez przekazywania informacji Używa obrazków tylko z sieci web, nigdy z lokalnych źródeł Ustawia kanał powiadomień i podpina go do notyfikacji kafelka Kilka ograniczeń – Obrazek musi być mniejszy niż 80 KB – Czas ściągania nie może przekroczyć 60 sekund – Kolejne update’y najczęściej co 60 minut – Jeżeli kilkukrotnie update zakończy się niepowodzeniem, system anuluje dany update Update może być wykonany jednorazowo, co godzinę, codziennie, co tydzień lub co miesiąc

62 Scheduling Tile Update public partial class MainPage : PhoneApplicationPage { private ShellTileSchedule _mySchedule; public MainPage() { InitializeComponent(); ScheduleTile(); } private void ScheduleTile() { _mySchedule = new ShellTileSchedule(); _mySchedule.Recurrence = UpdateRecurrence.Onetime; _mySchedule.StartTime = DateTime.Now; _mySchedule.RemoteImageUri = new Uri("http://cdn3.afterdawn.fi/news/small/windows-phone-7-series.png");http://cdn3.afterdawn.fi/news/small/windows-phone-7-series.png _mySchedule.Start(); }

63 Update kafelków przez Background Agenta W Windows Phone 7.0 jedyną opcją na update Live Tiles było użycie Tile Schedule lub Push Notification Services – Tile Schedule musi pobierać obrazki z Internetu – PNS wymagają implementacji zewnętrznych usług Aby kontrolować kafelki kiedy aplikacja nie jest uruchomiona (bez używania PNS i TS) można użyć Background Agentów – Należy użyć ShellTile API

64 Demo Update kafelków przez Background Agenta

65 JAK ZAROBIĆ Sposoby zarabiania na aplikacjach WP7

66 Ścieżki zarabiania

67 System partnerski Łatwa w użyciu kontrolka – przeciągnij i upuść Zarabianie w wersjach testowych i bezpłatnych aplikacjach

68 Zatrudnienie jako deweloper Liczne oferty pracy na rynku zagranicznym Rosnąca ilość pracodawców na rynku polskim Windows Phone 7 jest coraz chętniej wybierany jako telefon dla pracowników korporacji

69 MATERIAŁY I SPOŁECZNOŚCI Opis materiałów i miejsc, skąd można czerpać wiedzę

70 Grupa.NET W każdy czwartek o 18:15 w Audytorium Elektrotechniki W każdy wtorek o 18:15 w sali 108 Gmachu Starej Kotłowni

71 Fora i społeczności

72 Bibliografia i dokumentacja

73 PODSUMOWANIE

74 Q&A Pytania i odpowiedzi

75 Paweł Żochowski Dziękuję!


Pobierz ppt "How to master?. Paweł Żochowski"

Podobne prezentacje


Reklamy Google