Przykładowe pytania na zaliczenie wykładu

by Mateusz Pawełkiewicz published 2025/04/25 06:56:31 GMT+1, last modified 2025-04-25T06:56:31+01:00

  • Czym jest nawigacja w kontekście aplikacji mobilnych i jakie są popularne sposoby realizacji nawigacji między ekranami?

  • Opisz, w jaki sposób aplikacja mobilna może przekazywać dane z jednego ekranu na inny. Podaj przynajmniej dwa różne podejścia.

  • Wyjaśnij pojęcie deep linking w aplikacjach mobilnych. Do czego służy i kiedy jest wykorzystywane?

  • Jakie są różnice między nawigacją hierarchiczną (stos ekranów) a nawigacją za pomocą zakładek (tab bar) w aplikacjach mobilnych? Porównaj te dwa podejścia.

  • Wzorzec nawigacji master-detail polega na tym, że lista elementów oraz szczegóły wybranego elementu są wyświetlane na osobnych ekranach urządzenia mobilnego. Wyjaśnij zalety i ograniczenia tego podejścia.

  • Wymień i krótko opisz różne sposoby implementacji nawigacji w aplikacjach mobilnych. Czy istnieje podejście, które uznałbyś za nietypowe lub niepraktyczne? Uzasadnij swoją odpowiedź.

  • W aplikacjach mobilnych często występuje pasek nawigacyjny (navigation bar lub action bar). Jaką pełni on rolę i jakie typowe akcje umożliwia użytkownikowi?

  • Omów wady i zalety przechowywania danych we wspólnym stanie globalnym (np. za pomocą singletonu) w porównaniu z przekazywaniem danych jako parametru przy przejściu na inny ekran.

  • Wymień trzy różne czujniki (sensory) dostępne w typowym smartfonie i podaj krótko przykłady zastosowań każdego z nich w aplikacjach mobilnych.

  • Jakie wyzwania wiążą się z wykorzystaniem GPS w aplikacjach mobilnych? Omów takie aspekty jak dokładność lokalizacji, zużycie energii przez GPS oraz konieczność uzyskania uprawnień od użytkownika.

  • W jaki sposób aplikacja mobilna może uzyskać dostęp do danych z akcelerometru i do czego można je wykorzystać? Podaj przykład funkcjonalności wykorzystującej akcelerometr.

  • Dlaczego należy wyłączać nasłuchiwanie czujników (np. GPS, akcelerometru) gdy nie są one potrzebne? Co może się stać, jeśli aplikacja zostawi włączony sensor bez potrzeby przez dłuższy czas?

  • Wymień typowe czujniki (sensory), które występują w większości nowoczesnych smartfonów. Czy istnieją czujniki, które spotyka się rzadziej lub nie są jeszcze standardem? Podaj przykłady.

  • Wymień i krótko opisz trzy kluczowe zasady projektowania interfejsu użytkownika w aplikacjach mobilnych. Dlaczego każda z nich jest ważna?

  • Czym różni się projektowanie interfejsu dla urządzeń mobilnych od projektowania dla komputerów stacjonarnych? Podaj dwa przykłady różnic.

  • Co to jest responsywny design i dlaczego jest istotny w kontekście wielu różnych urządzeń mobilnych o odmiennych rozdzielczościach i rozmiarach ekranu?

  • Wyjaśnij pojęcie dostępności (accessibility) w aplikacjach mobilnych. Podaj dwa przykłady, jak można uczynić aplikację mobilną bardziej dostępną dla użytkowników z niepełnosprawnościami.

  • Jakie znaczenie ma hierarchia widoków (view hierarchy) w aplikacji mobilnej i jak może ona wpływać na wydajność renderowania interfejsu?

  • Opisz, w jaki sposób obsługiwane jest zdarzenie kliknięcia w przycisk w aplikacji mobilnej.

  • Wymień i krótko opisz typowe elementy graficznego interfejsu użytkownika stosowane w aplikacjach mobilnych. Czy są elementy interfejsu, które uznajesz za nieodpowiednie lub niepraktyczne w kontekście urządzeń mobilnych? Uzasadnij.

  • Jakie są najlepsze praktyki tworzenia interfejsu użytkownika, który poprawnie dostosowuje się do orientacji pionowej i poziomej urządzenia?

  • Co to jest API i w jaki sposób aplikacje mobilne wykorzystują API do komunikacji z serwerem (backendem)?

  • Wyjaśnij różnicę między żądaniem HTTP GET a POST. Kiedy powinno się używać każdego z nich?

  • W jaki sposób aplikacje mobilne mogą przechowywać i synchronizować dane, gdy urządzenie jest offline?

  • Co to jest JSON i dlaczego jest często używany w komunikacji pomiędzy aplikacją mobilną a serwerem?

  • Dlaczego wykonując operacje sieciowe w aplikacji mobilnej należy stosować podejście asynchroniczne?

  • Rozważ fragment kodu, który wykonuje żądanie sieciowe synchronicznie. Co jest nie tak z tym podejściem i jak można je poprawić?

  • Co to jest Promise i jak ułatwia zarządzanie operacjami asynchronicznymi w aplikacji mobilnej?

  • Użytkownik uruchomił operację pobierania dużej ilości danych z serwera. Jak zapewnić dobry UX w takiej sytuacji?

  • Wymień technologie wykorzystywane do komunikacji pomiędzy aplikacją mobilną a serwerem. Które z nich są najczęściej stosowane i dlaczego?

  • Podaj przykład aplikacji, która wymaga komunikacji w czasie rzeczywistym i uzasadnij użycie WebSocketów.

  • Wyjaśnij, co oznacza pojęcie cykl życia aplikacji mobilnej. Jakie podstawowe stany życia aplikacji można wyróżnić?

  • Jakie zdarzenia cyklu życia aplikacji powinny zostać obsłużone, aby przy zmianie orientacji ekranu stan aplikacji został zachowany?

  • Dlaczego ważne jest zwalnianie zasobów we właściwych momentach cyklu życia aplikacji?

  • Wyjaśnij, na czym polega wzorzec architektoniczny MVC i jak można go zastosować w aplikacji mobilnej.

  • Wymień jeden inny wzorzec architektoniczny wykorzystywany w aplikacjach mobilnych i krótko go scharakteryzuj.

  • Co to jest wzorzec Singleton i kiedy może być przydatny w aplikacji mobilnej?

  • Na czym polega wstrzykiwanie zależności (Dependency Injection) i jak ułatwia zarządzanie komponentami w aplikacji mobilnej?

  • Wymień znane wzorce architektoniczne wykorzystywane w aplikacjach mobilnych i krótko opisz jeden z nich. Czy znasz przykłady wzorców, które nie znajdują zastosowania w kontekście aplikacji mobilnych?

  • Jakie czynniki mogą negatywnie wpływać na wydajność aplikacji mobilnej? Wymień trzy przykłady.

  • Co oznacza, że aplikacja jest responsywna? Jak zapewnić responsywność interfejsu podczas wykonywania złożonych operacji?

  • W jaki sposób można zredukować zużycie energii (baterii) przez aplikację mobilną?

  • Dlaczego korzystanie z profilera jest ważne podczas optymalizacji aplikacji mobilnej?

  • Masz listę tysięcy elementów do wyświetlenia. Jakie techniki zastosujesz, aby zachować wydajność aplikacji?

  • Wymień trzy typowe zagrożenia bezpieczeństwa aplikacji mobilnych.

  • Co to są uprawnienia w aplikacjach mobilnych i jak powinien postępować programista, prosząc o nie użytkownika?

  • Na czym polega bezpieczna komunikacja między aplikacją mobilną a serwerem?

  • Czy zapisywanie hasła użytkownika w pliku tekstowym jest bezpieczne? Jak można przechowywać dane wrażliwe bezpieczniej?

  • Wyjaśnij, na czym polega atak typu Man-in-the-Middle i jak się przed nim bronić.

  • Dlaczego nie należy umieszczać poufnych kluczy lub sekretów API w kodzie aplikacji mobilnej? Jakie są alternatywy?