Dataczwartek, 13 sierpnia 2026 Czas18:40:37
← Aplikacje desktopowe (WPF)

Lekcja 1. Wprowadzenie do aplikacji desktopowych i ich cykl życia

Podstawowy

Po 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

  1. 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.

  2. 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).

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