Dydaktyka / Programowanie urządzeń mobilnych 1

Manuskrypt HTML

Webowa wersja manuskryptu kursu. Menu po lewej wybiera rozdział, a panel po prawej pokazuje treść przekonwertowaną z LaTeX.

Manuskrypt HTML

W00 - Wstęp i organizacja

Materiały do zajęć dostępne są na platformie GitHub: https://github.com/RafLew84/ProgUM.

Zasady zaliczenia

Warunkiem uzyskania pozytywnej oceny z części laboratoryjnej jest spełnienie następujących kryteriów:

  • Przewidzianych jest 6 list zadań.
  • Z każdej listy wystawiana jest osobna ocena.
  • Dopuszczalne jest nieoddanie lub niezaliczenie jednej listy. Za tą listę student otrzymuje ocenę 2.0.
  • Każda lista ma określony termin zwrotu i punktację.
  • Za każdy tydzień opóźnienia ocena obniżana jest o 1.
  • Listy oddawane są podczas zajęć laboratoryjnych.
  • Do list zadań dołączana jest lista pytań, na które student jest zobowiązany odpowiedzieć ustnie podczas zajęć laboratoryjnych. Z każdej listy pytań (o ile istnieje) losowane są pytania. Liczba pytań jest zależna od liczby punktów na liście. Przykładowo, jeśli lista ma 10 punktów, a z zadań praktycznych student może otrzymać 5 punktów, losowane jest 5 pytań. Pytania dotyczą zarówno teorii jak i praktyki.
  • Student jest zobowiązany do przekazania kodu źródłowego w repozytorium GitHub. Link do repozytorium należy podać jako odpowiedź na zadanie na platformie MS Teams. Brak linku do repozytorium z rozwiązaniami zadań jest równoznaczny z brakiem zaliczenia przedmiotu.
  • Ocena końcowa jest średnią arytmetyczną ocen z list
    1. Ocena 3,0 – średnia 3,0 – 3,24
    2. Ocena 3,5 – średnia 3,25 – 3,74
    3. Ocena 4,0 – średnia 3,75 – 4,24
    4. Ocena 4,5 – średnia 4,25 – 4,74
    5. Ocena 5,0 – średnia 4,75 – 5,0
  • Dopuszczalne są trzy nieobecności nieusprawiedliwione na zajęciach laboratoryjnych.
  • Oceny i punktacja jest dostępna na bieżąco w pliku na platformie MS Teams

Treści programowe

Plan wykładu obejmuje następujące zagadnienia:

  1. Wstęp: Typy danych, Wyrażenia, Instrukcje, Pętle
  2. Garbage Collection
  3. Funkcje
  4. Kolekcje
  5. Klasy, Obiekty i Interfejsy
  6. Inicjalizacja i Delegacja
  7. Fundamenty Aplikacji Android: Aktywność, Cykl Życia
  8. Jetpack Compose: Podstawy tworzenia UI, Kompozycja, Rekompozycja, Stan
  9. Elementy struktury UI (Scaffold) i obsługa kolekcji w UI
  10. Nawigacja (Compose Navigation, Tab Navigation, Drawer)
  11. Wzorce projektowe
  12. Widgety i ich cykl życia

Wprowadzenie do języka Kotlin

Kotlin to statycznie typowany język programowania działający na wirtualnej maszynie Javy (JVM), opracowany przez firmę JetBrains. Został zaprojektowany jako w pełni interoperacyjny z Javą, co pozwala na płynne łączenie obu języków w ramach jednego projektu. Od 2019 roku Kotlin jest rekomendowanym językiem do tworzenia aplikacji na platformę Android.

Do najważniejszych cech języka należą:

  • Bezpieczeństwo (Null Safety): Wbudowany mechanizm ochrony przed Null-Pointer-Exception poprzez rozróżnienie na poziomie systemu typów referencji, które mogą przechowywać null, od tych, które nie mogą.
  • Zwięzłość: Składnia języka znacząco redukuje ilość kodu nadmiarowego (boilerplate) dzięki takim konstrukcjom jak data classes, properties czy automatyczna inferencja typów.
  • Wieloplatformowość: Poza JVM, Kotlin może być kompilowany do JavaScriptu oraz kodu natywnego (Kotlin/Native), co umożliwia współdzielenie logiki biznesowej między różnymi platformami (iOS, Android, Desktop, Web).
  • Wsparcie dla paradygmatów: Język oferuje zaawansowane wsparcie dla programowania funkcyjnego, mechanizm korutyn do obsługi asynchroniczności oraz funkcje rozszerzające (extension functions), które pozwalają na dodawanie nowych funkcjonalności do istniejących klas bez konieczności dziedziczenia.