Lekcja 1. Wprowadzenie do aplikacji desktopowych i ich cykl życia
PodstawowyPo co się tego uczymy?
Ten dział to trzeci duży filar INF.04 (obok konsoli i baz danych) — programowanie aplikacji z prawdziwym, graficznym oknem, jakie widzi każdy użytkownik komputera. Zanim napiszesz pierwszą linijkę XAML, warto zrozumieć czym w ogóle jest aplikacja desktopowa, czym różni się od strony internetowej czy aplikacji mobilnej, i przez jakie etapy przechodzi, zanim trafi na komputer użytkownika — to bezpośrednio odpowiada efektowi INF.04.5.
Teoria
Aplikacja desktopowa to program instalowany i uruchamiany bezpośrednio na komputerze użytkownika (Windows, macOS, Linux) — w przeciwieństwie do aplikacji webowej (działa w przeglądarce, na serwerze) czy mobilnej (na telefonie/tablecie). Przykłady z życia codziennego: Microsoft Word, odtwarzacz muzyki, gra komputerowa, program księgowy w sklepie, system kasowy w restauracji.
Kluczowe cechy aplikacji desktopowej: działa lokalnie (nie wymaga stałego połączenia z internetem, choć może z niego korzystać), ma bezpośredni dostęp do zasobów systemu — plików, drukarki, skanera, kamery, portów USB — oraz zwykle oferuje bogatszy, bardziej responsywny interfejs niż strona internetowa, bo nie jest ograniczona możliwościami przeglądarki.
Cykl życia aplikacji desktopowej (podobny do cyklu życia każdego oprogramowania, ale z akcentem na specyfikę desktopu) obejmuje pięć głównych faz:
- Planowanie i projektowanie — określenie wymagań, wybór systemu operacyjnego docelowego, zaprojektowanie interfejsu użytkownika z myślą o obsłudze myszką i klawiaturą;
- Tworzenie — pisanie kodu w wybranej technologii (w naszym przypadku C# + WPF), z uwzględnieniem funkcji specyficznych dla komputera: dostępu do plików, obsługi wielu okien, integracji z urządzeniami;
- Testowanie — sprawdzanie poprawności działania, wydajności, zgodności z różnymi wersjami systemu Windows, testy z prawdziwymi użytkownikami;
- Wdrożenie — przygotowanie instalatora (np. plik .msi lub .exe), publikacja, dystrybucja do użytkowników;
- Konserwacja — aktualizacje, poprawki błędów zgłoszonych przez użytkowników, dodawanie nowych funkcji w kolejnych wersjach.
Ten cykl się powtarza — po konserwacji często wraca się do planowania kolejnej wersji, tworząc pętlę ciągłego rozwoju aplikacji.
Schemat
Cykl zycia aplikacji desktopowej:
┌───────────────┐ ┌───────────┐ ┌────────────┐
│ 1. Planowanie │ --> │ 2. Tworzenie│ --> │ 3. Testowanie│
│ i projektowanie│ │ (kod, UI) │ │ (bledy, UX) │
└───────────────┘ └───────────┘ └──────┬─────┘
│
┌───────────────────────────────────────────┘
▼
┌───────────────┐ ┌────────────────┐
│ 4. Wdrozenie │ --> │ 5. Konserwacja │ --┐
│ (instalator) │ │ (aktualizacje) │ │
└───────────────┘ └────────────────┘ │
▲ │
└──────────────────────────────────────┘
(cykl sie powtarza przy kazdej nowej wersji)
Przykład z życia
Pomyśl o dowolnym programie na swoim komputerze — na przykład systemie kasowym w sklepie osiedlowym. Ktoś musiał najpierw zaplanować, jakie funkcje są potrzebne (sprzedaż, zwroty, raport dzienny), zaprojektować prosty, czytelny interfejs dla kasjera pracującego pod presją czasu, napisać kod obsługujący drukarkę fiskalną i czytnik kodów kreskowych, przetestować to na prawdziwych paragonach, a potem zainstalować na komputerach we wszystkich sklepach sieci — i co jakiś czas wydawać aktualizacje (np. zmiana stawek VAT).
Ćwiczenie samodzielne
Wybierz dowolną aplikację desktopową, z której korzystasz codziennie (np. odtwarzacz muzyki, edytor tekstu). Rozpisz w punktach, jak mogłyby wyglądać dla niej poszczególne fazy cyklu życia — co trzeba było zaplanować, jakie funkcje specyficzne dla komputera wykorzystuje, jak mogła wyglądać jej pierwsza wersja w porównaniu do obecnej.
Zadania do pracy własnej
Wypisz 5 aplikacji desktopowych, z których korzystasz, i dla każdej określ, czy wymaga stałego dostępu do internetu, czy może działać offline.
Porównaj (w formie tabeli) aplikację desktopową, webową i mobilną pod względem: dostępu do plików lokalnych, wymogu instalacji, działania offline, dostępu do sprzętu (kamera, drukarka).
Zaplanuj (opisowo, bez pisania kodu) cykl życia aplikacji desktopowej do zarządzania wypożyczalnią sprzętu sportowego — dla każdej z 5 faz napisz min. 2 konkretne działania, jakie trzeba by wykonać.
Typowe błędy
Pomijanie fazy planowania i przechodzenie od razu do kodowania — prowadzi do aplikacji z chaotycznym interfejsem i brakującymi funkcjami odkrywanymi dopiero pod koniec pracy.
Traktowanie testowania jako ostatniego, zbędnego kroku — błędy znalezione przez użytkowników po wdrożeniu kosztują znacznie więcej (czasu i reputacji) niż błędy znalezione przed wydaniem.
Zapominanie o konserwacji — aplikacja, która nie jest aktualizowana, z czasem przestaje działać poprawnie na nowszych wersjach systemu operacyjnego.
Nawiązanie do egzaminu zawodowego
To wprowadzenie do całego działu INF.04.5 ("Programowanie aplikacji desktopowych"). Kolejne lekcje przejdą do konkretów: środowiska Visual Studio, technologii WPF i pisania pierwszej aplikacji okienkowej.