Od Autora
Windows 10 to uniwersalny system operacyjny przeznaczony dla komputerów stacjonarnych, urządzeń mobilnych, rozproszonych urządzeń wbudowanych IoT (Internet of Things), smartfonów, stacji roboczych, komputerów przenośnych, tabletów, urządzeń Surface Hub, konsoli Xbox, a także okularów holograficznych HoloLens.
Po miesiącu od swojej premiery system Windows 10 został zainstalowany na 75 milionach urządzeń, a docelowo, zgodnie z założeniami jego twórców, ma on kontrolować bilion różnego rodzaju urządzeń. Z tego powodu, uniwersalna platforma Windows (UWP) otwiera przed programistami olbrzymie możliwości, gdyż tworzenie aplikacji na tę platformę realizuje się z wykorzystaniem jednego zestawu narzędzi programistycznych. Dzięki temu twórcy aplikacji mogą powiększyć grono swoich użytkowników i programować zaawansowane urządzenia mobilne i optoelektroniczne, zamiast tworzyć aplikacje wyłącznie dla komputerów, tabletów i smartfonów.
W tej książce, za pomocą dużej liczby przykładowych aplikacji, zostały omówione techniki tworzenia aplikacji UWP. Rozdział 1 zawiera opis podstawowych aspektów programowania uniwersalnych aplikacji oraz modele programowania dostępne w interfejsie programistycznym systemu Windows 10. W rozdziale 2 są omówione zasady programowania wielowątkowego, ponieważ wiele metod zaimplementowanych w ramach interfejsu programistycznego Windows 10 jest asynchronicznych. Rozdziały 3-6 dotyczą zagadnień związanych z tworzeniem interfejsu użytkownika aplikacji UWP. W szczególności opisano podstawy języka XAML, wykorzystywanego do deklarowania widoków aplikacji (rozdział 3), a także techniki formatowania (rozdział 4) i animowania elementów wizualnych (rozdział 5). W rozdziale 6 jest przedstawiony przegląd podstawowych kontrolek dostępnych w interfejsie programistycznym UWP.
Po dokładnym omówieniu tworzenia interfejsu użytkownika aplikacji UWP opisane zostały zaawansowane funkcjonalności zaimplementowane w systemie Windows 10, takie jak: odczytywanie lokalizacji urządzenia, komunikacja z serwisami sieciowymi, dostęp do warstwy sprzętowej, rozpoznawanie twarzy czy pisma odręcznego, a nawet synteza mowy (rozdział 7).
W rozdziale 8 są omówione aspekty dotyczące programowania aplikacji reagujących na dotyk, a w rozdziale 9 znajdują się informacje o cyklu życia i aktywacji aplikacji. Z kolei rozdział 10 traktuje o rozszerzeniach interfejsu programistycznego UWP oraz o programowaniu adaptywnym. Nawigacja pomiędzy widokami aplikacji, a także wzorzec architektoniczny Model View zostały przedstawione w rozdziale 11, a wykorzystanie baz danych SQLite - w rozdziale 12. Z kolei tworzenie powiadomień, jak również dynamicznych i pomocniczych kafelków oraz ich aktualizacja jest tematem rozdziału 13.
Ta książka nie zawiera szczegółowego opisu języka C#. Zamiast tego koncentruje się głównie na jego wykorzystaniu do implementowania przykładowych aplikacji dla uniwersalnej platformy Windows 10. Warto również zwrócić uwagę na wykorzystywaną nomenklaturę dotyczącą funkcji, metod i procedur. Formalnie rzecz biorąc, w programowaniu proceduralnym funkcja to zbiór poleceń, których wynikiem jest wartość określonego typu. Metoda to w programowaniu obiektowym szczególny przypadek funkcji, działającej na rzecz danego obiektu, a procedura to funkcja niezwracająca żadnej wartości. W tej książce w celu ograniczenia powtórzeń te pojęcia (metoda, funkcja i procedura) stosowane są wymiennie.
Książka zawiera dużą liczbę listingów, które ze względu na ograniczenie długości linii, w wielu miejscach musiały być łamane. W związku z tym podczas samodzielnego implementowania przykładowych aplikacji na podstawie zawartych tu listingów należy zwrócić uwagę na to, aby wszelkie zmienne znakowe, jak również niektóre ze znaczników (np. {x:Bind}) były zapisane w jednej linii. Niezależnie od tego, wszystkie kody źródłowe mogą zostać pobrane z witryny księgarni Wydawnictwa Naukowego PWN.
Tytuł książki dotyczy aplikacji mobilnych. Taki był również jej główny cel. Mianowicie, aby zaprezentować techniki programowania aplikacji mobilnych na platformie Windows. Jednakże, ze względu na integrację interfejsów programistycznych dla platform mobilnych i desktopowych, dostępną w UWP, wszystkie przedstawione tu przykłady mogą być uruchamiane na urządzeniach mobilnych i desktopowych. Z tego powodu prezentowane zrzuty ekranu zawierają przykładowe działanie aplikacji w trybie desktop oraz na emulatorach urządzeń mobilnych z systemem Windows 10.
W tym miejscu chciałbym podziękować mojej żonie Agnieszce i córce Zuzannie za wyrozumiałość okazaną mi podczas pisania tej książki.
Dawid Borycki, sierpień 2015