vse Flashcards
Kaj so fragmenti
Deli uporabniskega vmesnika ki so vezani na aktivnosti. Omogočajo večkratno uporabo. Se dodajajo in odstranjujejo tekom izvajanja aktivnosti.
zivlenski cikel fragmenta
Ustvarjanje (onAttach, on Create, onCreateView, onViewCreated)
Postane viden (onStart, onResume)
Gre v ozadje (onPaused, onStop)
Uničenje(onDestroyView, onDestroy, onDeatch)
Funkcije živlenskega cikla
Ustvarimo s klicem konstruktorja ali s klicem funkcije newInstance
Izbrise se ko ni vec aktivne referencena objekt pobrise ga smetar.
Fragment manager skrbi za povezovanje konteksta in aktivnosti.
onAttach in onDetach skrbita za povezovanja fragmenta v kontekst
Izgled se določi v funkciji onCreateView potem pa lahko v onVIewCreated nastavimo posamezne akcije
Razlika med activity in fragment
inflate in binding se nastavi v onCreate pri fragmentih pa v metodi onCreateView in onViewCrated
Definiranje in prikaz fragmenta
Ustvarimo xml ki definira videz fragmenta
Ustvarimo nov razred ki je podedovan iz fragmenta in ustvari postavitev s klicem funkcije inflate
Ustvarimo nov instance fragmenta v aktivnosti
Z uporabo transakcije upravljalca fragmentov dodamo fragment
Upravljalec fragmentov
Skrbi za ustvarjanje, odstranjevanje in dodajanje in zamenjavo fragmentov. To so transakcije fragmentov
Za uspešno mora aktivnost vkljucevati container v kateri gosti aktivnosti. Pogosto je to prazen razvrscevalnik FrameLayout ki je odgovoren za določanje velikosti in umestitve fragmenta. Če je fragment statičen tega ne potrebujemo ampak ga dodamo v značko <fragment></fragment>
Navigacija
Ker ima android zapleten sistem za navigacijo so razvili navigacijsko komponento navigation ki poenostavlja izvajanje navigacije in omogoča vizualizacijo toka navigacije v aplikaciji
Prednosti:
samodejna obdelava transakcij fragmentov
Privzeto vedenje in podpora animacijam
Privzeto pravilno vodenje premikanja med posameznimi deli uporabniskega vmesnika
Graf navigacije
je konfiguracijska datoteka xml ki v osnovi definira zacetni fragment. Za definiranje cilja pa moramo dolociti se dodatne parametre - id, name, label, layout
NavHostFragment
Prevzame nadzor nad izgledom in mora zavzeti celoten zaslon. Definirati je potrebno navGraph in defaultNavHost
NavigationController
findNavController je objekt dostopen iz fragmenta ali aktivnosti. S funkcijo navigate lahko samodejno izvede startActivity ali pa izvede akcijo
ViewModel
Z njim shranjujemo in upravljamo podatke povezane z uporabniskim vmesnikom na nacin ki se uposteva zivljenski cikel komponent.
Naloge: priprava in upravlanje podatkov za aktivnosti ali fragmente
ohranja podatke ob spremembi nastavitve konfiguracije
skrbi za komunikacijo med uporabniskim vmesnikom in ostalo aplikacijo
Prednosti ViewModela
Omogočajo da se loci zivljenski cikel podatkov in logike od zivleskega cikla fragmenta ali aktivnosti
Povecanje modularnosti aplikacije
Olajsajo testiranje
LiveData
komponenta arhitekture Androida, ki omogoča opazovanje in obveščanje uporabniškega vmesnika o spremembah podatkov v realnem času.
Dobra praksa je da stanje objektov ne spreminjamo v fragmentih ampak v ViewModelu
Objavi in naroči
Podoben opazovalcu. Glavni cilj je komunikacija med objekti ki ustvari sporočilo in ga posreduje naročnikom
Sporočilo se posilja med objekti s pomocjo posrednika.
Opazovalec je implementiran sinhrono saj se takoj ob obvestilu obvestijo vsi opazovalci, narocnik pa asinhrono s pomocjo vrst sporocil.
Objavi naroči se uporablja za komunikacijo med aplikacijami ali locenimi moduli
EventBus
Poenostavlja komunikacijo med komponentami
Loči pošiljatelje in prejemnike dogodkov
hitra in majhna knjiznica
OSMdroid knjiznica
Implementacija mape v aplikacijo
Najprej dodamo potrebne permissione v manifest za lokacijo in za internet
v gradle dodamo implementation za knjiznico
Naredimo layout za mapo
V aktivnosti nastavimo vir in tip mape.
In na koncu se postavimo na zeleno lokacijo
Broadcast
Skrbi za posiljanje sporocil med procesi in aplikacijami
Ko se zgodi posamezen dogodek (npr povezava z omrezjem) se ta dogodek razprseno oddaja. Dogodek se posreduje vsem zainteresiranim napravam za ta dogodek.
Kako se aplikacije registrirajo na dogodek
aplikacija se lahko naroci na dogodek staticno ali dinamicno
staticno je preko manifesta dinamicno pa preko metode Context.registerReceiver
Pri staticnem je lahko problem s spominom ker se lahko zazene ogromno aplikacij naenkrat.
Kako dostopamo do lokacije
Z vmesnikom LocationManager ki je primarni dostop do GPS
Uporaba google location services GLS, kjer dostopamo do lokacije s pomocjo vmesnika fusedLocationProviderClient
LocationRequest
tam se nastavijo zahteve po frekvenci in natancnosti pridobljene lokacije setInterval setFastestInterval setPriority
Dodajanje in popravlanje
Realtime database deluje podobno kot objavi in naroci ki poslusa vsako spremembo in jo posreduje vsem ki poslusajo
Custom view
Prednosti: prilagodljivost vecja funkcionalnost in izbolsana uporabniska izkusnja
Uporabimo jih za ustvarjanje uporabniskih vmesnikov za razlicne aplikacije.
Kaj so senzorji
naprave katerih cilj je zaznavanje realnega sveta na nacin ki je primere za elektronsko obdelavo
Kaj so aktuatorji
Deluje v nasprotni smeri kot senzor primer: vibriranje