Skip to content

RafLew84/PUM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Programowania Urządzeń Mobilnych - PUM

Projekt Termin
Opis projektu ( szablon - word, pdf )
Projekt
Moduł Lista
Moduł 0
Moduł 1 lista 1, lista 2, lista 3
Moduł 2 lista 4, lista 5, lista 6
Moduł 3 lista 7
Moduł 4 lista 8
Moduł 5 lista 9

Moduł 0

Wykład 0 Lab 0
  • Podstawowe informacje
  • Treści programowe
  • Warunki zaliczenia - wykład, lab
  • Podstawowe informacje
  • Android Studio
  • Struktura projektu

Moduł 1

Wykład 1 Lab 1
  • Fundamenty aplikacji 1
  • Activity
  • Activity - Cykl życia
  • Tworzenie interfejsu użytkownika - XML
  • Mechanizm Intent - jawne i domniemane
  • Zachowanie stanu - Bundle
    1. Interfejs użytkownika - XML - notatnik
    2. Pierwsza aplikacja - obsługa onCLick, Bundle, ViewBinding - Kotlin, Java
    3. Implicit Intent - Kotlin, Java
Wykład 2 Lab 2
  • Fundamenty aplikacji 2
  • Fragment
  • Fragment - Cykl życia
  • Nawigacja w aplikacji
  • Jetpack Navigation
  • BottomNavigation
Wykład 3 Lab 3
  • Fundamenty aplikacji 3
  • RecyclerView
  • Wzorzec Adapter
  • Wzorzec ViewHolder
    1. RecyclerView, RecyclerView.Adapter, RecyclerView.ViewHolder - Kotlin, Java

Moduł 2

Wykład 4 Lab 4
  • Fundamenty aplikacji 1 - Compose
  • Jetpack Compose
  • Composable
  • Tworzenie interfejsu użytkownika - @Composable
  • Zachowanie stanu - MutableState
    1. Interfejs użytkownika - @Composable - compose
    2. Pierwsza aplikacja - obsługa onCLick, MutableState, remember - compose
    3. Implicit Intent - compose
Wykład 5 Lab 5
  • Nawigacja w aplikacji - Compose
  • Compose Navigation
  • NavigationBar
  • Pager, TabLayout
  • Scaffold
    1. Podstawy nawigacji - Compose Navigation - compose
    2. Scaffold, NavigationBar, NavigationBarItem - compose
    3. Scaffold, PaddingValues - compose
Wykład 6 Lab 6
  • Fundamenty aplikacji 2 - Compose
  • Tworzenie list - LazyColumn
    1. Podstawy tworzenia list - LazyColumn - compose

Moduł 3

Wykład 7 Lab 7
  • Architektura Aplikacji 1 - ViewModel
  • LiveData
Wykład 8 Lab 8
  • Architektura Aplikacji 2
  • Wzorzec MVx
Wykład 9 Lab 9
  • Architektura aplikacji 3
  • Strumienie danych i stan
  • Flow, StateFlow, SharedFlow

Moduł 4

Wykład 10 Lab 10
  • Architektura aplikacji 4
  • Wzorzec Repository
  • Zapis danych - SharedPreferences, DataStore
Wykład 11 Lab 11
  • Lokalne bazy danych
  • ROOM

Moduł 5

Wykład 12 Lab 12
  • Praca z zewnętrznymi źródłami danych
  • Retrofit
  • OkHttp

Archiwum:

2023/2024

archiwum Moduł 0

Wykład 0 Lab 0
  • podstawowe informacje
  • treści programowe
  • warunki zaliczenia - wykład, lab
  • Podstawowe informacje
  • Android Studio
  • Struktura projektu

archiwum Moduł 1

Wykład 1 Lab 1
  • Fundamenty aplikacji 1
  • Activity
  • Activity - Cykl życia
  • Tworzenie interfejsu użytkownika - XML
  • Mechanizm Intent - jawne i domniemane
  • Zachowanie stanu - Bundle
    1. Interfejs użytkownika - XML - notatnik
    2. Pierwsza aplikacja - obsługa onCLick, Bundle, ViewBinding - Kotlin, Java
    3. Explicit Intent - Kotlin, Java
    4. Serializacja - Serializable, Parcelable, @Parcel - Kotlin, Java
    5. Implicit Intent - Kotlin, Java
Wykład 2 Lab 2
  • Fundamenty aplikacji 2
  • Fragment
  • Fragment - Cykl życia
Wykład 3 Lab 3
  • Fundamenty aplikacji 3
  • RecyclerView
  • RecyclerView.Selection
  • Wzorzec Adapter
  • Wzorzec ViewHolder
  • ViewPager2
  • FragmentStateAdapter
  • RecyclerView.Adapter
  • RecyclerView.ViewHolder
    1. RecyclerView, RecyclerView.Adapter, RecyclerView.ViewHolder - Kotlin, Java
    2. ViewPager2, ViewPager2.FragmentStateAdapter, FragmentActivity - Kotlin, Java
    3. ViewPager2, RecyclerView.Adapter - Kotlin, Java
Wykład 4 Lab 4
  • Nawigacja w aplikacji
  • Jetpack Navigation
  • BottomNavigation
  • ViewPager2
  • TabLayout
    1. Jetpack Navigation, Bundle, Action - Kotlin, Java
    2. BottomNavigation, Jetpack Navigation, ActionBar, Menu Navigation Kotlin, Java
    3. TabLayout, ViewPager2, Nawigacja zakładkowa - Kotlin, Java
Aplikacje
Aplikacja prezentuje podstawowe informacje na temat Wydziału Fizyki i Astronomii Uniwersytetu Wrocławskiego. Wykorzystuje RecyclerView z CardViews do wyświetlania informacji oraz obejmuje podstawową obsługę gestów. Do prezentowania danych w formacie master-detail użyto Jetpack Navigation.

Wykorzystane elementy:
  • RecyclerView, RecyclerView.ViewHolder, RecyclerView.Adapter
  • Podstawowym elementem listy jest CardView
  • Aplikacja wykorzystuje pojedynczą aktywność (Activity) z dwoma fragmentami (Fragment)
  • Nawigacja została wykonana w Jetpack Navigation
  • Obsługa gestów (drag&drop, swipe) wykonana z pomocą klasy ItemTouchHelper
  • Aplikacja wykorzystuje dummy data
Aplikacja, która umożliwia użytkownikom śledzenie ich finansów. Wykorzystuje nawigację za pomocą TabLayout i ViewPager2, składa się z trzech ekranów, na których prezentowany jest stan oszczędności i rachunków. Główny ekran zapewnia wszechstronne spojrzenie na wszystkie wydatki. Aplikacja wykorzystuje także RecyclerView i DonutChart, aby prezentować dane w przyjazny dla użytkownika sposób.

Wykorzystane elementy:
  • Dane prezentowane są za pomocąRecyclerView, oraz DonutChart
  • Aplikacja wykorzystuje trzy fragmenty
  • Animacje przy przechodzeniu między zakładkami
  • Wykorzystuje nawigację za pomocą TabLayout i ViewPager2 z FragmentStateAdapter
  • Aplikacja wykorzystuje dummy data
Carsy to mobilna aplikacja zaprojektowana, aby pomóc użytkownikom śledzić zużycie paliwa i koszty związane z użytkowaniem samochodu. Aplikacja pokazuje dane dotyczące każdego tankowania, w tym ilość kupionego paliwa i cenę. Carsy może obliczyć średnie zużycie paliwa i dostarczyć szczegółowych statystyk dotyczących użytkowania samochodu i kosztów związanych z jego eksploatacją w ciągu czasu. Oprócz śledzenia zużycia paliwa, aplikacja może także monitorować inne związane z samochodem wydatki, takie jak koszty utrzymania i napraw, ubezpieczenia i myjni samochodowych.

Wykorzystane elementy:
  • Nawigacja wykonana przy pomocy Jetpack Navigation
  • Aplikacja wykorzystuje trzy fragmenty
  • Aplikacja wykorzystuje RecyclerView z trzema różnymi ViewHolder w celu pokazania pełnej lini czasu
  • Wykorzystuje DropDown do przełączania pomiędzy adapterami RecyclerView
  • Aplikacja wykorzystuje dummy data

archiwum Moduł 2

Wykład 5 Lab 5
  • Fundamenty aplikacji 1 - Compose
  • Jetpack Compose
  • Composable
  • Tworzenie interfejsu użytkownika - @Composable
  • Zachowanie stanu - MutableState
    1. Interfejs użytkownika - @Composable - compose
    2. Pierwsza aplikacja - obsługa onCLick, MutableState, remember - compose
    3. Implicit Intent - compose
Wykład 6 Lab 6
  • Fundamenty aplikacji 2 - Compose
  • Tworzenie list - LazyColumn
  • Pager
  • Cykl życia composable
    1. Podstawy tworzenia list - LazyColumn - compose
    2. Lista z wielokrotnym zaznaczeniem - compose
    3. Pager - compose
Wykład 7 Lab 7
  • Nawigacja w aplikacji - Compose
  • Compose Navigation
  • NavigationBar
  • Pager, TabLayout
  • Scaffold
    1. Podstawy nawigacji - Compose Navigation - compose
    2. Scaffold, NavigationBar, NavigationBarItem - compose
    3. Scaffold, PaddingValues - compose
    4. Pager + TabRow - compose
Aplikacje
Aplikacja prezentuje podstawowe informacje o Wydziale Fizyki i Astronomii Uniwersytetu Wrocławskiego. Wykorzystuje LazyGrid z Card do wyświetlania informacji. Do prezentacji danych w formacie master-detail używane jest Compose Navigation.

Wykorzystane elementy:
  • Nawigacja wykonana przy pomocy Compose Navigation
  • Aplikacja wykorzystuje Jetpack Compose
  • Aplikacja wykorzystuje LazyVerticalGrid w celu wyśweitlania listy
  • Aplikacja wykorzystuje dummy data
Aplikacja, która umożliwia użytkownikom śledzenie ich finansów. Wykorzystuje nawigację za pomocą Compose Navigation z zakładkami, składa się z trzech ekranów, na których prezentowany jest stan oszczędności i rachunków. Główny ekran zapewnia wszechstronne spojrzenie na wszystkie wydatki. Aplikacja wykorzystuje także LayColumn i DonutChart z zaimplementowanymi animacjami, aby prezentować dane w przyjazny dla użytkownika sposób.

Wykorzystane elementy:
  • Nawigacja wykonana przy pomocy Compose Navigation z zakładkami
  • Aplikacja wykorzystuje Jetpack Compose
  • Aplikacja wykorzystuje animacje oraz zagnieżdżone przewijalne komponenty
  • Aplikacja wykorzystuje dummy data
Carsy to mobilna aplikacja zaprojektowana, aby pomóc użytkownikom śledzić zużycie paliwa i koszty związane z użytkowaniem samochodu. Aplikacja pokazuje dane dotyczące każdego tankowania, w tym ilość kupionego paliwa i cenę. Carsy może obliczyć średnie zużycie paliwa i dostarczyć szczegółowych statystyk dotyczących użytkowania samochodu i kosztów związanych z jego eksploatacją w ciągu czasu. Oprócz śledzenia zużycia paliwa, aplikacja może także monitorować inne związane z samochodem wydatki, takie jak koszty utrzymania i napraw, ubezpieczenia i myjni samochodowych.

Wykorzystane elementy:
  • Nawigacja wykonana przy pomocy Compose Navigation
  • Aplikacja wykorzystuje trzy ekrany z NavigationBar
  • Aplikacja wykorzystuje Jetpack Compose
  • Wykorzystuje DropDownMenu umożliwiając użytkownikowi wybór
  • Aplikacja wykorzystuje dummy data

archiwum Moduł 3

Wykład 8 Lab 8
  • Architektura aplikacji 1
  • ViewModel
  • LiveData
  • Wzorzec MVVM
Wykład 9 Lab 9
  • Strumienie danych
  • Asynchroniczne przetwarzanie danych
  • Flow
  • StateFlow
  • SharedFlow
  • ComposeState
Wykład 10 Lab 10
  • Wzorzec Repository
  • Lokalne przechowywanie danych
  • SharedPreferences
  • DataStore
Wykład 11 Lab 11
  • ROOM
  • Dao
  • Entity
  • SQL
Aplikacje
Aplikacja została zaimplementowana zgodnie z wzorcem MVVM (Model-View-ViewModel) z wykorzystaniem repozytorium. Wzorzec ten pomaga oddzielić logikę biznesową od warstwy prezentacji, co ułatwia testowanie, utrzymanie i rozwijanie aplikacji. Do zarządzania stanem aplikacji i reaktywności został użyty StateFlow(compose/kotlin) LiveData(java), umożliwiając łatwą aktualizację widoków w czasie rzeczywistym w odpowiedzi na zmiany w stanie gry. Aplikacja bazuje na oficjalnym Android Codelab

Wykorzystane elementy:
  • Aplikacja zaimplementowana zgodnie ze wzorcem MVVM
  • Aplikacja wykonana w językach Kotlin, Java
  • Interfejs użytkownika wykonano przy pomocy Jetpack Compose (Kotlin) i oparty na języku XML z Fragmentami (Kotlin, Java)
  • DataStore (Compose,Kotlin) i SharedPreferences (Java) wykorzystano w celu zapisu stanu gry
  • Aplikacja wykorzystuje StateFlow (Compose, Kotlin) LiveData (Java)
  • Kotlin Coroutines wykorzystano do asynchronicznego przetwarzania danych (Compose, Kotlin)
PrioritizeMe to aplikacja, która umożliwia użytkownikom przechowywanie, zarządzanie oraz priorytetyzowanie zadań. Dzięki zaimplementowanej bazie danych oraz operacjom CRUD (Create, Read, Update, Delete), użytkownicy mogą swobodnie dodawać, przeglądać, edytować i usuwać zadania z wygodnym interfejsem.

Wykorzystane elementy:
  • Aplikacja zaimplementowana zgodnie ze wzorcem MVVM
  • Aplikacja wykonana w językach Kotlin, Java
  • Interfejs użytkownika wykonano przy pomocy Jetpack Compose (Kotlin) i oparty na języku XML z Fragmentami (Kotlin, Java)
  • Aplikacja wykorzystuje ROOM w celu przechowywania danych
  • Aplikacja wykorzystuje StateFlow (Compose, Kotlin) LiveData (Java)
  • Kotlin Coroutines (Compose, Kotlin) oraz Executors (Java) wykorzystano do asynchronicznego przetwarzania danych

archiwum Moduł 4

Wykład 12 Lab 12
  • Praca z zewnętrznymi źródłami danych
  • Retrofit
  • OkHttp
Wykład 13 Lab 13
  • Paginacja danych
  • Retrofit
  • Paging
Wykład 14 Lab 14
  • Wstrzykiwanie zależności
  • Dagger
  • Hilt
Aplikacje
Aplikacja została zaimplementowana zgodnie z wzorcem MVVM (Model-View-ViewModel) z wykorzystaniem repozytorium. Do zarządzania stanem aplikacji i reaktywności został użyty StateFlow(compose/kotlin) LiveData(java), umożliwiając łatwą aktualizację widoków w czasie rzeczywistym w odpowiedzi na zmiany w stanie aplikacji. Aplikacja korzysta z zewnętrznego api mealApi

Wykorzystane elementy:
  • Aplikacja zaimplementowana zgodnie ze wzorcem MVVM
  • Aplikacja wykonana w językach Kotlin, Java
  • Interfejs użytkownika wykonano przy pomocy Jetpack Compose (Kotlin) i oparty na języku XML z Fragmentami (Kotlin, Java)
  • ROOM wykorzystano w celu zapisu danych
  • Retrofit wykorzystano w celu pobrania danych z zewnętrznego api
  • Aplikacja wykorzystuje StateFlow (Compose, Kotlin) LiveData (Java)
  • Kotlin Coroutines wykorzystano do asynchronicznego przetwarzania danych (Compose, Kotlin)

2022/2023

Projekt Termin
Opis projektu (szablon - pdf, word) 6.01.2023
Projekt 7.02.2023

archiwum Moduł 0

Wykład 0 Lab 0
  • podstawowe informacje
  • treści programowe
  • warunki zaliczenia - wykład, lab
  • Podstawowe informacje
  • Android Studio
  • Struktura projektu

archiwum Moduł 1

Wykład 1 Lab 1
  • Activity
  • Cykl życia aktywności
Aplikacje

archiwum Moduł 2

Wykład 2 Lab 2
  • Stan instancji
  • Bundle
  • Intent
Aplikacje

archiwum Moduł 3

Wykład 3 Lab 3
  • RecyclerView
  • Adapter
  • ViewHolder
  • Selector
Aplikacje
  • WFiApp - Java, Kotlin
    • RecyclerView
    • CardView
    • GridLayout
    • ItemTouchHelper
    • ImageView
  • QuickYoga - Java, Kotlin
    • RecyclerView
    • MediaPlayer
    • TextToSpeech
    • customowy ProgressBar
    • ImageView
    • RippleEffect

archiwum Moduł 4

Wykład 4 Lab 4
  • Fragmenty
  • Jetpack Navigation
Aplikacje
  • ListOfLists - Java, Kotlin
    • RecyclerView
    • Jetpack Navigation
    • Implicit Intent
    • Adapter
  • PUMApp - Java, Kotlin
    • RecyclerView
    • Jetpack Navigation
    • Drawer Navigation
    • Dark Theme

archiwum Moduł 5

Wykład 5 Lab 5
  • BottomNavigation
  • ViewPager2
  • Jetpack Navigation
  • TabLayout
  • BottomNavigation - podstawy - Java, Kotlin
  • ViewPager2 + FragmentStateAdapter - podstawy - Java, Kotlin
  • ViewPager2 + RecyclerView.Adapter - podstawy - Java, Kotlin
  • ViewPager2 + TabLayout - podstawy - Java, Kotlin
Aplikacje
  • MyFinance - Java, Kotlin
    • TabLayout
    • ViewPager2
    • RecyclerView
  • Carsy - Java, Kotlin
    • BottomNavigation
    • Jetpack Navigation
    • RecyclerView

archiwum Moduł 6

Wykład 6 Lab 6
  • Shared Preferences
  • SQLite
  • ViewBinding
Aplikacje
  • Tasky - Java, Kotlin
    • Shared Preferences
    • JSON
    • Gson
    • RecyclerView

archiwum Moduł 7

Wykład 7 Lab 7
  • Permissions
  • Notifications
  • Widgets
Aplikacje
  • GalleryApp - Java, Kotlin
    • Permissions
    • Implicit Intent
    • Camera
    • SQLite
    • Navigation
  • NotyApp - Java, Kotlin
    • Widget
    • Broadcast Receiver
    • Service
    • SQLite
    • ListView

archiwum Moduł 8

Wykład 8 Lab 8
  • ViewModel
  • LiveData
  • DataBinding

archiwum Moduł 9

Wykład 9 Lab 9
  • ROOM
  • relacja 1-1
  • relacja 1-N
  • relacja M-N

archiwum Moduł 10

Wykład 10 Lab 10
  • MVC
  • MVP
  • MVVM
Aplikacje
  • Shoppy - Java, Kotlin
    • MVVM
    • ROOM
    • SearchView
    • RecyclerView
    • Navigation

archiwum Moduł 11

Wykład 11 Lab 11
  • Retrofit
  • OkHttp
Aplikacje
  • VeryNobleApp - Java, Kotlin
    • MVVM
    • Retrofit
    • LoggingInterceptor
    • Navigation
    • RecyclerView
    • WebView
  • Foody - Java, Kotlin
    • MVVM
    • ROOM
    • Retrofit
    • LoggingInterceptor
    • Navigation
    • RecyclerView

archiwum Moduł 12

Wykład 12 Lab 12
  • Dagger

archiwum Moduł 13

Wykład 13 Lab 13
  • Dagger-Hilt
Aplikacje
  • PolishNewsApp - Kotlin
    • MVVM
    • Retrofit
    • ROOM
    • RecyclerView
    • Dagger-Hilt
    • Navigation
    • BottomNavigation
    • SwipeRefreshLayout
    • Flow
    • StateFlow
    • Channel

archiwum Moduł 14

Wykład 14 Lab 14
  • Podsumowanie
  • Zaliczenie
  • Podsumowanie
  • Zaliczenie

About

Programowanie Urządzeń Mobilnych

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published