VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID

Size: px
Start display at page:

Download "VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID"

Transcription

1 SVEUČ ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID Lovro Pejić Zagreb, lipanj 2017.

2

3 Hvala svima koji su bili uz mene i pomogli mi na mom putu k osvajanju akademske titule.

4 Sadržaj Uvod Operacijski sustav Android Početak i razvoj operacijskog sustava Android Arhitektura operacijskog sustava Android Aplikacijski sloj Sloj aplikacijskog okvira Programske knjižnice Radno okruženje Android Linux jezgra Struktura Android aplikacija Aktivnosti Usluge Primatelji namjera Pružatelji usluga Namjere Firebase Firebase definicija O Firebase-u Firebase usluge Firebase Analytics Firebase Cloud Messaging Firebase Authentication Firebase RealTime database Firebase Storage Firebase Hosting Višekorisnička igra pogađanja Ideja aplikacije Izvedba aplikacije Upute za instalaciju... 35

5 Zaključak Literatura Sažetak Summary Ključne riječi Keywords... 41

6 Uvod U današnje vrijeme višekorisničke aplikacije (multiplayer) pronašle su i hrabro drže svoje mjesto na svjetskom tržištu. Osjećaj nadmetanja protiv druge osobe ne može zamijeniti niti jedna igra protiv računala (singleplayer), kao ni osjećaj zadovoljstva u timskim višekorisničkim igrama prilikom ostvarivanja zajedničkog cilja. U ovom radu obradit će se proces izrade jedne višekorisničke igre pogađanja za operacijski sustav Android kao i ostalih alata potrebnih za njezinu izradu. U prvom poglavlju opisuje se operacijski sustav Android, nakon čega u drugom poglavlju slijedi opis tehnologije Firebase, te konačno u trećem poglavlju se daje pogled na višekorisničku aplikaciju i njene najzanimljivije dijelove u kojima se prikazuje oblikovanje i izvedba programskog rješenja kao i demonstracija ostvarenih funkcionalnosti. 1

7 1. Operacijski sustav Android U ovom poglavlju obradit će se nastanak i razvoj operacijskog sustava Android. Nakon početnog dijela prikazuje se arhitektura samog operacijskog sustava, te u konačnici osnovni prikaz strukture Android aplikacije sa svojim komponentama i grafičkim korisničkim sučeljem. 1.1 Početak i razvoj operacijskog sustava Android Operacijski sustav Android svoj nastanak i razvoj temelji na operacijskom sustavu Linux, no primarno je dizajniran za prijenosne uređaje sa zaslonom osjetljivim na dodir poput smartphonea, tableta i drugih pametnih uređaja. Android je prvobitno razvijen od tvrtke Android, Inc. koja ga je konstruirala s ciljem razvoja programa za pametne mobilne uređaje koji bi uzimali u obzir korisničke postavke i njihovu lokaciju. Njihov rad financirao je Google, koji je nedugo zatim i otkupio cijelu tvrtku, te od tada počinju spekulacije o ulasku Googlea na tržište pametnih telefona. Najvažniji pojmovi koji se vežu uz Android su otvorenost i neovisnost pošto je s Androidom stvoren jedan novi odnos između proizvođača sklopovlja i proizvođača programske potpore koji su do tada najčešće radili unutar jedne tvrtke i zajedničkim snagama razvijali samo svoje uređaje. Prvi uređaj s Android operacijskim sustavom Google je distribuirao pod Apache licencom, a prodan je u listopadu godine. 1.2 Arhitektura operacijskog sustava Android Arhitektura operacijskog sustava Android sastoji se od nekoliko slojeva. Svaki sloj sastoji se od različitih programskih komponenti koje kada rade skupa pružaju sve potrebne usluge sloju u kojem se nalaze. Svaki sloj niže razine pruža usluge slojevima viših razina. 2

8 Na sljedećoj fotografiji (slika 1.) prikazana je arhitektura Androida s pripadnim slojevima i odgovarajućim programskim komponentama. Slika 1. Arhitektura operacijskog sustava Android [8] Slojevi Android arhitekture, redom od najvišeg do najnižeg su: Aplikacijski sloj Sloj aplikacijskog okvira (application framework) Programske knjižnice Radno okruženje Android Linux jezgra 3

9 1.2.1 Aplikacijski sloj Aplikacijski sloj nalazi se na samom vrhu hijerarhije slojeva arhitekture operacijskog sustava Android i u njemu se nalaze same aplikacije koje su ugrađene u operacijski sustav (kalkulator, kamera, ) ali i ostale aplikacije koje je korisnik odlučio instalirati Sloj aplikacijskog okvira Sloj aplikacijskog okvira drugi je po redu sloj u hijerarhijskoj strukturi slojeva operacijskog sustava Android. U njemu se nalaze blokovi s kojima aplikacije imaju direktnu komunikaciju i aplikacije koje upravljaju osnovnim funkcijama uređaja, kao memorijskim resursima, glasovnim pozivima i tome slično Programske knjižnice Idući sloj u hijerarhiji su Androidove programske knjižnice. U ovom sloju nalaze se biblioteke koje uređajima omogućavaju upravljanje različitim tipovima podataka. Većina ih je pisana u C i C++ i specifične su za određeni hardver, te se lako prevode u druge programske jezike, a osnovna namjena im je pružanje specifičnih usluga ostalim slojevima na višim razinama Radno okruženje Android Radno okruženje Android sastoji se od virtualnog stroja Dalvik (DVM Dalvik virtual machine) i jezgrenih programskih knjižnica. Dalvik virtualni stroj je zapravo java virtualni stoj (JVM Java virtual machine) koji se koristi u Android uređajima za pokretanje aplikacija, no poseban je po tome što je prilagođen za pokretne uređaje s ciljem bolje organizacije i rasporeda resursa, poput radne memorije, trajanja baterije i slično. 4

10 1.2.5 Linux jezgra Linux jezgra nalazi se na dnu hijerarhije slojeva arhitekture operacijskog sustava Android i predstavlja osnovni sloj na kojem su zasnovani svi viši slojevi u hijerarhiji. Cijeli Android operacijski sustav zasnovan je na Linux 2.6 Kernel-u s nekim internim arhitekturnim promjenama. U ovom sloju nalaze se sve poveznice s hardverom uređaja i upute kako njime upravljati (driveri). Driveri su upravljački programi koji komuniciraju i upravljaju hardverom. Sve naredbe viših slojeva u konačnici se pretaču preko ovog sloja i njegovih instrukcija prema fizičkim komponentama uređaja. 1.3 Struktura Android aplikacija Kada Android aplikacije promatramo s jednog vrlo osnovnog gledišta možemo uočiti da se svaka Android aplikacija zapravo sastoji od dva ključna dijela (tu su još i nekakve ključne datoteke, poput manifesta, no one će biti obrađene u kasnijem dijelu rada). Prvi dio odnosi se na tzv. Java datoteke, u kojima se nalazi programski kod i logika same aplikacije. Ti java dokumenti pisani su u programskom jeziku Java i u njima zapravo piše što će aplikacija raditi i kako će se ponašati u nekom trenutku. Drugi dio odnosi se na dizajn i izgled grafičkog korisničkog sučelja, a pisan je u jeziku XML (Extensible markup language). Popularne razvojne okoline kao što su Android Studio nude mogućnost crtanja grafičkog korisničkog sučelja putem posebnih alata, no međutim tu funkcionalnost uglavnom koriste početnici koji još nisu svladali XML, a i važno je napomenuti da se neke stvari koje si je programer zamislio jednostavno ne mogu precizno nacrtati pomoću tih alata baš kako je programer želio, stoga je ipak korisno poznavati XML. Android SDK (Software development kit) alati kompajliraju (prevode) kod, skupa sa svim ostalim datotekama aplikacije u jedinstvenu arhivu s.apk ekstenzijom. Sav kod, zajedno s pripadnim datotekama unutar te arhive čini jednu aplikaciju i to je datoteka koju Android uređaji koriste prilikom instaliranja aplikacije. Za kraj uvoda u ovo poglavlje važno je još samo napomenuti da svaka aplikacija instalirana na neki Android uređaj živi zasebno, bez obzira i utjecaja na ostale aplikacije instalirane na tom uređaju. 5

11 Na sljedećim fotografijama nalazi se primjer Java koda (slika 2.), te primjer XML koda unutar neke Android aplikacije (slika 3.). Slika 2. Primjer Java koda 6

12 Slika 3. Primjer XML koda Raspored direktorija i datoteka svake Android aplikacije zapravo je jedna stablasta struktura u kojoj se nalaze komponente koje programer uređuje, briše ili dodaje prilikom izrade aplikacije kreirajući pritom željeno grafičko sučelje, te različite funkcionalnosti i zadaće pojedinih komponenti. Neki od navedenih direktorija su: src/ - koji sadrži pakete s Java datotekama u kojima se nalazi logika aplikacije res/ - koji sadrži dijelove koji su uglavnom vezani uz dizajn, kao na primjer slike, postavke fonta, boja, animacije, glazba, videozapisi, i tome slično. Manifests/ - sadrži AndroidManifest.xml datoteku i uglavnom mu je to glavna zadaća. Tu datoteku posjeduje svaka aplikacija i ona je vrlo važna za njezin rad, pošto su zapisi u njoj veoma važni. U njoj se recimo navode aktivnosti koje se koriste unutar aplikacije 7

13 kako bi ih sustav znao prepoznati, zatim tu su još i različite dozvole koje su aplikaciji potrebne (primjerice dozvola za spajanje na internet, slanje i primanje poruka itd.). Uz sve to, u njoj se još navode i nekakva ograničenja koje se odnose na pojedinu aktivnost ili na aplikaciju u cjelini (kao primjer toga možemo navesti ograničenje na zakretanje zaslona koje se proizvoljno može uključiti ili isključiti). Build gradle direktorij u ovom direktoriju nalaze se dvije build gradle datoteke (veoma važne!) u kojima programer među ostalim navodi i vanjske biblioteke koje će se koristiti unutar aplikacije (npr. Google Play services api, Firebase api,..). Prilikom izgradnje aplikacije potrebne datoteke iz tih biblioteka skidaju se s interneta i ugrađuju u aplikaciju. Na sljedećoj fotografiji prikazana je struktura direktorija Android aplikacije. Slika 4. Prikaz stablaste strukture direktorija Android aplikacije 8

14 Svaku Android aplikaciju čini nekoliko komponenti koje po potrebi komuniciraju s ostalim komponentama unutar iste ili drugih aplikacija. Postoje četiri kategorije komponenti koje se međusobno razlikuju po namjeni i po životnom ciklusu. To su: Aktivnosti Usluge Primatelji namjera Pružatelji usluga Ove komponente su osnovni građevni blokovi Android aplikacija. Svaka od njih ima određenu ulogu i svoj životni ciklus. Temeljito poznavanje rada ovih komponenti od velike je važnosti s obzirom na to da putem njih programer može obaviti sve operacije koje su mu potrebne kako bi ostvario željenu funkcionalnost. Dodatno, poznato je da direktna komunikacija (pristup) između dvaju aplikacija na nekom uređaju nije moguća, no gore navedene komponente pružaju usluge koje tu komunikaciju (na malo drugačiji način tj. preko iskazivanja namjera) ipak omogućuju Aktivnosti Aktivnost predstavlja jedan ekran s grafičkim korisničkim sučeljem. Svaka aplikacija može se sastojati od jedne ili više aktivnosti koje rade skupa (čine smislenu cjelinu), ali su međusobno neovisne. Unutar aplikacije može biti osmišljeno više aktivnosti, no u jednom trenutku u nekom dijelu aplikacije na ekranu može biti prikazana samo jedna aktivnost. Svaka aplikacija trebala bi imati barem jednu aktivnost, kako bi korisnik išta vidio i mogao izvršiti bilo kakvu interakciju s aplikacijom. Aktivnost koja se pokreće prilikom pokretanja aplikacije najčešće nazivamo početna aktivnost (Main activity). 9

15 Svaka aktivnost može se naći u šest stanja. U jednom trenutku aktivnost može biti u samo jednom stanju. Važno je napomenuti da postoje stanja u kojima se u nekom trenutku može nalaziti samo jedna aktivnost. Ta stanja su: stanje izgradnje, stanje pokretanja, stanje izvođenja, stanje pauziranja, stanje zaustavljanja i stanje uništavanja aktivnosti. Prilikom Ulaska u svako od navedenih stanja pokreću se neke ugrađene metode vezane uz trenutno stanje određene aktivnosti. Te metode se mogu nadjačati i modificirati po želji programera s ciljem odrađivanja još nekog dodatnog posla ukoliko je to potrebno (npr. odjaviti korisnika iz aplikacije prilikom gašenja aplikacije). Te metode vidljive su na sljedećoj fotografiji (slika 5.) koja ujedno prikazuje i životni vijek aktivnosti (pošto su te metode usko vezane uz njega). Slika 5. Prikaz životnog ciklusa i metoda svake aktivnosti [9] 10

16 Popis ugrađenih metoda i njihova funkcionalnost: oncreate() pokreće se prilikom stvaranja aktivnosti onstart() pokreće se prilikom pokretanja aktivnosti onpause() pokreće se kada aktivnost pređe u stanje pauze onresume() pokreće se kada aktivnost nastavi s radom onrestart() pokreće se kada se aktivnost ponovno pokrene onstop() pokreće se prilikom zaustavljanja aktivnosti ondestroy() pokreće se prilikom uništavanja aktivnosti Usluge Usluga je komponenta koja se razlikuje od aktivnosti prvenstveno po tome što ne pruže grafičko korisničko sučelje već radi u pozadini, a može izvoditi uobičajene postupke no i veoma dugotrajne i zahtjevne zadatke. Nikad se ne izvodi na grafičkoj dretvi (jer je to loša praksa), pošto ne radi s grafičkim komponentama, nego na nekoj drugoj zasebnoj dretvi. S uslugama je jednostavnije raditi nego s aktivnostima (manje metoda, jednostavnije), no one zahtijevaju veći oprez Primatelji namjera Primatelj namjera je komponenta koja je zadužena za primanje objavljenih namjera. Prilikom zaprimanja određene namjere ona na primjer može inicirati obavijest u statusnoj traci, ažurirati elemente prilikom gašenja zaslona, inicirati prikaz obavijesti, poruku o slaboj bateriji i drugo, no najčešće služi samo kao poveznica između drugih komponenata. Primatelj namjera nema vlastito grafičko korisničko sučelje i nikad ne odrađuje znatnu količinu posla. 11

17 1.3.4 Pružatelji usluga Pružatelj sadržaja je komponenta koja upravlja pristupom različitih podatkovnih struktura koje se trajno pohranjuju u uređaju. Koristi se za prijenos podataka između aplikacija, odnosno za pohranu podataka u datoteke, na internet (uz dozvolu operacijskog sustava), bazu podataka, i slično Namjere Namjera je u suštini događaj, tj. poruka koje je namijenjena za aktiviranje odgovarajućih komponenti unutar aplikacije. Namjera se pokreće tako da se instancira objekt klase Intent u kojem se navodi akcija koja se želi inicirati (na primjer pokrenuti novu aktivnost). Prilikom pokretanja svake namjere navodi se akcija koju je potrebno izvršiti, te opcionalno primatelj namjere. Ukoliko je primatelj namjere zadan namjera se odmah može izvršiti, s druge strane, ukoliko je neodređen, on se određuje interno unutar aplikacije. Najbolji primjer toga je isječak koda kojim programer želi pokrenuti novu aktivnost: Intent intent = new Intent(MainActivity.this, GameActivity.class); startactivity(intent); Pri stvaranju novog objekta namjere u priloženom kodu prvi parametar predstavlja pozivatelja namjere, odnosno od njega se uzima kontekst kako bi se namjera imala nad čime pozvati, a drugi predstavlja akciju koju je potrebno izvršiti, odnosno poruku koju je potrebno prenijeti. U ovom slučaju to je pokretanje nove aktivnosti. Aktivnost se pokreće postupkom startactivity(), a ukoliko se u prethodnoj aktivnosti očekuje rezultat prilikom pokretanja nove aktivnosti, onda se pokreće postupkom startactivityforresult(). 12

18 2. Firebase Slika 6. Firebase [10] Na Firebase web stranici stoji motivacijska rečenica: Firebase helps you build better mobile apps and grow your business. Prevedeno na hrvatski to bi značilo: Firebase vam pomaže izgraditi bolje mobilne aplikacije i unaprijediti vaše poslovanje. Ova motivirajuća rečenica na jedan vrlo neobičan način privlači pažnju mnogih korisnika, iako zapravo uopće ne govori o tome što je to Firebase i čemu zapravo služi. U sljedećem poglavlju definirat ćemo Firebase i navesti njegove najbitnije usluge, koje ćemo zatim ukratko i opisati. 2.1 Firebase definicija Firebase je mobilna platforma koja omogućuje da brzo razvijete visokokvalitetne aplikacije, izgradite ažuriranu bazu korisnika i ostvarite veću zaradu. Platforma uključuje nekoliko dobro integriranih značajki koje možete kombinirati, uključujući pozadinske programe za mobilne uređaje, analizu te alate za razvoj i unovčavanje aplikacija za maksimalno povećanje uspjeha aplikacije. (link: 13

19 2.2 O Firebase-u Firebase je tvrtka iz San Francisca (Kalifornija) koja pruža backend usluge aplikacijama različitih namjena. Tvrtka proizvodi veliki broj proizvoda namijenjenih za programere mobilnih i web aplikacija. Tvrtku Firebase su osnovali Andrew Lee i James Tamplin godine i svoj prvi proizvod, bazu podataka za rad u stvarnom vremenu, plasirali na tržište već u prvoj polovici godine. S obzirom na kvalitetu svojih usluga tvrtka je relativno brzo napredovala, te uskoro nadodala sve više i više novih funkcionalnosti. U 10. mjesecu godine Firebase je objavio pripojenje s Google-om, koji ga je kupio, ali nisu objavili za koju cijenu. 2.3 Firebase usluge Kao što je već u prethodnom poglavlju navedeno, Firebase se relativno brzo razvijao. U Firebase platformu do danas je uključen poprilično velik broj usluga, a u gotovo svakoj modernoj aplikaciji može se pronaći mjesto za neke od njih. U ovom poglavlju govorit će se o nekim od najvažnijih i najpoznatijih od tih usluga. To su primjerice: Firebase Analytics Firebase Cloud Messaging Firebase Authentication Firebase RealTime database Firebase Storage Firebase Hosting U sljedećim poglavljima navedene funkcionalnosti bit će ukratko opisane, ali prije toga važno je još nadodati da je uključivanje bilo koje od ovih funkcionalnosti u Android aplikaciju veoma jednostavno. Koristeći moderne razvojne okoline potrebno je svega nekoliko klikova mišem da bi 14

20 se Firebase usluge dodale u projekt. Dodatno, korištenje tih usluga poprilično je lako s obzirom na bogatu dokumentaciju koju je Google pripremio za svaku od njim. Slijedi nekoliko fotografija o tome. Slika 7. Firebase usluge 15

21 Slika 8. Uključivanje Firebase usluga u projekt koristeći Android Studio Slika 9. Primjer bogate Firebase dokumentacije 16

22 2.3.1 Firebase Analytics Google Analytics for Firebase is a free app measurement solution that provides insight on app usage and user engagement. Google Analytics jedna je od Firebase usluga koja je vrlo važna za napraviti uspješnu aplikaciju. Firebase nudi različite analitičke alate koji to pospješuju postići. Tako postoje alati koji govore tko su korisnici aplikacije, što ih zapravo zanima, koliko često koriste aplikaciju, koliko vremena provode u aplikaciji i tako dalje. Također postoje analitičke usluge koje bilježe uspješnost oglašavanja aplikacije, govore o načinu dijeljenja aplikacije i drugo. Ukratko, Google Firebase Analytics sadrži i objedinjuje sve podatke i statistike koje su razvojnom programeru potrebne na jednom mjestu, a omogućavaju mu da svakom pojedinom korisniku ponudi ono što ga najviše zanima te ga na taj način privuče i zadrži da koristi njegovu aplikaciju Firebase Cloud Messaging Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably deliver messages at no cost. Firebase Cloud Messaging besplatna je usluga koja omogućava slanje poruka korisnicima aplikacije koristeći različite platforme. Poruke se mogu slati pojedinačnom uređaju, skupini uređaja, ili u temu, pa te poruke dobivaju samo pretplaćeni uređaji. Cloud Messaging zamišljen je kao sustav za primanje notifikacija unutar aplikacije, no postoje načini kako ga iskoristi i u druge svrhe, no to će biti objašnjeno u jednom od kasnijih poglavlja. Glavna značajka koju je potrebno spomenuti je da Cloud Messaging funkcionira koristeći Cloud Messaging Token, kojeg je potrebno spremiti u bazu podataka na poslužitelju prilikom registracije novog korisnika u aplikaciju. Taj Token kasnije se koristi za slanje poruka s poslužitelja prema svakom pojedinom uređaju. Brzina slanje poruka koristeći Cloud Messaging veoma je zadovoljavajuća (gotovo da je RealTime) isto kao i vjerojatnost isporuke svake poruke. 17

23 2.3.3 Firebase Authentication Most apps need to know the identity of a user. Knowing a user s identity allows an app to securely save user data in the cloud and provide the same personalized experience across all od the user s devices Firebase Authentication je usluga koja olakšava prijavu korisnika u sustav i korisnicima, ali i samim programerima. Danas velika većina aplikacija zahtjeva prijavu korisnika u sustav kako bi im omogućila dodatne funkcionalnosti, te kako bi sačuvala privatnost njihovih podataka. Tu u priču ulazi Firebase koji omogućava brzu, laku i jednostavnu autentifikaciju korisnika u sustav. Za prijavu nije nužno izgraditi novi korisnički račun, iako je to moguće, već Firebase omogućava prijavu koristeći mnoge druge servise. Prijavu u sustav moguće je izvršiti koristeći Facebook, Twitter, Git Hub ili Google račun. Ekran za prijavu korisnika u sustav programer može izgraditi po želji, koristi gotov ekran za prijavu kojeg je pripremio Google, ili bilo kakvu njegovu modifikaciju pošto je to također dopušteno. Nakon uspješne prijave, korisnik dobiva jedinstveni Firebase ključ koji ga razlikuje od svih ostalih korisnika aplikacije, te mu omogućava pristup njegovim podacima Firebase RealTime database Store and sync data with our NoSQL cloud database. Data is synced across all clients in realtime, and remains available when your app goes offline Firebase također pruža usluge korištenja baze podataka, odnosno omogućava pohranu i sinkronizaciju podataka između korisnika u stvarnom vremenu. Ovaj Google-ov alat omogućava korisnicima da na prilično jednostavan i brz način dođu do svojih podataka bez obzira na to koriste li mobilnu aplikaciju ili web, te također pripomaže međusobnoj kolaboraciji korisnika aplikacije. U svakom trenutku prilikom ažuriranja podataka u bazi podataka, podaci se pohranjuju u Firebase Database Cloud i simultano o tome obavještava sve uređaje kojih se ta izmjena tiče (vrijeme za 18

24 obavještavanje uređaja mjeri se u milisekundama). Što se tiče sigurnosti podataka u bazi podataka, u konzoli pomoću koje se upravlja bazom podataka postoje sigurnosna pravila koja određuju tko može pristupiti kojim podacima, a ta pravila po volji određuje razvojni programer kao i strukturu (stablastu) cijele baze podataka. Dakle moguće je namjestiti da svaki korisnik može pristupiti svim podacima baze podataka (tako da se uklone sva sigurnosna pravila), ili samo svojim podacima. Ta sigurnosna pravila zajedno s cijelom bazom podataka spremaju se na Firebase poslužitelj Firebase Storage Cloud Storage is built for app developers who need to store and serve user-generated content, such as photos or videos Firebase Storage omogućava korisnicima da pohrane i podjele svoj sadržaj putem Android aplikacije. Firebase Storage funkcionalnost poprilično je slična Firebase RealTime bazi podataka. Kao i tamo, ovdje se također nalazi datoteka sa sigurnosnim pravilima za dijeljenje i pristup sadržaju, ali prijenos podataka ovdje je puno većeg memorijskog zauzeća i nije u stvarnom vremenu Firebase Hosting Firebase Hosting provides fast and secure static hosting for your web app Firebase Hosting je servis za skladištenje statičkog sadržaja, a podržava skladištenje različitih datoteka poput CSS, HTML ili JavaScript datoteka potrebnih za izradu frontenda (grafičkog korisničkog sučelja) web aplikacija. Firebase Hosting je brz, siguran i pouzdan. 19

25 3. Višekorisnička igra pogađanja U ovom poglavlju opisuje se višekorisnička igra pogađanja za operacijski sustav Android. U prvom potpoglavlju iznijet će se ideja i tema same aplikacije, a nakon toga slijedi potpoglavlje u kojem će biti prikazan tok i sve funkcionalnosti aplikacije. Svaki ključni dio ovog potpoglavlja bit će dokumentiran isječcima iz programskog koda ili fotografijom iz odgovarajuće aktivnosti unutar aplikacije. 3.1 Ideja aplikacije Aplikacija pod nazivom Guess game zamišljena je kao igra vješala modernog doba, odnosno višekorisnička igra pogađanja slova i riječi za Android uređaje u obliku mobilne aplikacije. Svaka igra sastoji se od pogađanja slova te u konačnici zadanih pojmova među pet slučajno odabranih riječi koje je odredio poslužitelj, te na taj način igrači inkrementalno zarađuju bodove. Igrač koji na kraju igre ima veći broj bodova je pobijedio. Ukoliko jedan od igrača napusti aplikaciju automatski je izgubio, dok je drugi igrač završio kao pobjednik. Sama igra bazira se na potezima (tzv. turn-based game), a koristi različite tehnologije poput Firebase RealTime database-a, Firebase Cloud Messaging-a, te više različitih internet protokola. Svi dijelovi aplikacije (uključujući i tehnologije) koji do sada nisu objašnjeni, bit će prikazani u sljedećem poglavlju. 20

26 Slika 10. Prvi pogled na aplikaciju Guess Game 3.2 Izvedba aplikacije Prije početka objašnjavanja izvedbe ove igre, potrebno je za početak navesti koji sve uređaji sudjeluju u njoj, odnosno koje sve komponente ovdje postoje, te kako one uopće komuniciraju. Za odigravanje igre u ovoj aplikaciji potrebna su dva mobilna uređaja s operacijskim sustavom Android. Svaki uređaj nalazi se kod jednog korisnika i oni predstavljaju igrače (međusobni suparnici) potrebne za odigravanje jedne igre. Dio aplikacije kojeg klijenti imaju na svojim uređajima napisan je u programskom jeziku Java i naziva se korisnički (frontend) dio aplikacije. Međutim za rad ove aplikacije potreban je i poslužiteljski (backend) dio aplikacije, a za razliku od korisničkog dijela napisan je u programskom jeziku JavaScript. Poslužitelj u ovoj aplikaciji ima dvije glavne namjene, a to je da služi za registraciju novih korisnika u sustav i spremanje Firebase Cloud Messaging Tokena, te služi kao posrednik u komunikaciji između uređaja. 21

27 Cijena ta komunikacija između uređaja unutar igre odvija se u tri koraka, a oni su sljedeći: Prvi uređaj šalje svoju poruku poslužitelju koristeći protokol HTTP (HyperText Transfer Protocol). Pri slanju te poruke šalje se i korisničko ime prijatelja kojem je poruka namijenjena. Nakon primanja poruke poslužitelj ju koristeći protokol XMPP (Extensible Messaging and Presence Protocol) prosljeđuje Firebase poslužitelju, zajedno s prijateljevim Firebase Tokenom, kojeg je dohvatio iz baze podataka na temelju pristignutog korisničkog imena. Nakon što je Firebase poslužitelj primio poruku on je koristeći FCM (Firebase Cloud Messaging) pomoću Tokena šalje na uređaj za kojeg je ta poruka namijenjena. Primjer komunikacije između uređaja (slika 11.) vidljiv je na sljedećoj fotografiji: Slika 11. Prikaz izvedbe komunikacije između uređaja 22

28 Ovo je samo primjer komunikacije između dva Android uređaja, koja se događa iz poteza u potez za vrijeme trajanja igre. Unutar same aplikacije postoji još modela komuniciranja no o tome malo kasnije. Sada kada su komponente aplikacije i osnovni koncepti funkcioniranja igre objašnjeni potrebno je objasniti cijeli tok aplikacije. Prilikom svakog pokretanja aplikacije korisniku se prikaže početni ekran s nevidljivom tipkom preko cijelog ekrana na kojoj trepereći piše Tap To Start (slika 12.) i kreće melodija aplikacije (ako ona nije isključena u postavkama, no o tome u nastavku). Nakon što je korisnik kliknuo tu tipku provjerava se da li je taj korisnik već od prije registriran u sustav ili ne, te o tome ovisi što će mu se sljedeće prikazati na ekranu. Ako je registriran od prije, automatski će biti propušten na ekran kojeg vidi prijavljeni korisnik (Slika 15). S druge strane, ako je ovo njegovo prvo korištenje aplikacije od njega će se zatražiti da odabere svoje korisničko ime pod kojim će ga ostali korisnici moći vidjeti u sustavu (Slika 13). Nakon odabira korisničkog imena slijedi provjera prema poslužitelju da li je korisničko ime dostupno ili zauzeto. Ukoliko je zauzeto korisniku će to biti dojavljeno (Slika 14.) te će ga se zatražiti da proba unijeti drugačije korisničko ime. Nakon uspješno unesenog novog korisničkog imena (ono koje je slobodno), provest će se automatska registracija novog korisnika u sustav te će ga se automatski prijaviti i prikazati mu ekran prijavljenog korisnika (Slika 15). U nastavku slijedi nekoliko fotografija o cijeloj ovoj situaciji. 23

29 Slika 12. Slika 13. Početni ekran Ekran za odabir korisničkog imena Slika 14. Slika 15. Korisničko ime već zauzeto Ekran prijavljenog korisnika 24

30 Na sljedećim fotografijama nalaze se najvažniji isječci koda kojima se demonstriraju gore ostvarene funkcionalnosti. Pošto je programska izvedba za sve gore navedeno poprilično slična prikazat ćemo programski kod samo za slučaj registracije novog korisnika. Slika 16. Prikaz koda za registraciju novog korisnika na klijentu Slika 17. Prikaz koda za registraciju novog korisnika na poslužitelju 25

31 Nakon uspješne prijave u sustav korisnik ima nekoliko gumbova na raspolaganju za pritisnuti. Ti gumbići su sljedeći, redom: Play (sredina ekrana) How to play (sredina ekrana) Quit (sredina ekrana) Settings (gore desno) Information (gore desno) Kako bismo odabrali protivnika i započeli novu igru potrebno je kliknuti na gumb Play, no pošto o tome ima još najviše za govoriti prvo ćemo prokomentirati preostale funkcionalnosti, pa krenimo: Pritiskom na gumb How to play otvara se nova aktivnost u kojoj ukratko piše koja su pravila te kako započeti novu igru. Pritiskom na gumb Quit korisnik je odlučio izaći iz aplikacije. Odabirom gumba Settings otvara se nova aktivnost (Slika 18.) u kojoj korisnik može promijeniti svoju lozinku (slika 19.). Ona je inicijalno postavljena na 7777, a služi tome kako bi se spriječilo nepoznatim korisnicima da šalju zahtjeve za igrom trenutnom korisniku aplikacije. Osim toga, korisnik još može uključiti ili isključiti melodiju aplikacije. Nakon bilo kakvih izmjena potrebno je kliknuti na Apply Changes kako bi se izmjene uistinu i provele. S druge strane, ako je korisnik odustao od napravljenih izmjena dovoljno je kliknuti gumb za povratak na samom uređaju. 26

32 Slika 18. Slika 19. Prikaz aktivnosti s postavkama Ekran za promjenu lozinke Prije nego li krenemo na odabir protivnika i pokretanje same igre, spomenimo još i gumb Information kojim se otvara nova aktivnost koja prikazuje informacije o razvojnom programeru koji je napravio aplikaciju. (Slika 20.) Slika 20. Autor aplikacije 27

33 Konačno, kada korisnik klikne na gumb Play otvara se nova aktivnost u kojoj se nalazi popis igrača koji se trenutno nalaze u aplikaciji. Na vrhu ekrana postoji tražilica u koju korisnik može upisati prijateljevo ime kako bi ga lakše pronašao. Popis igrača dostupnih za igru nalazi se u Firebase RealTime bazi podataka, koja je prikladna za to iz razloga što je popis dostupnih igrača sam po sebi vrlo dinamičan, pa ga je nužno uvijek imati osvježenog, a to obavlja ova baza. Igrač koji trenutno nije unutar aplikacije nije vidljiv na ovom popisu, kao ni igrač koji upravo igra igru protiv nekoga, jer ni on nije trenutno dostupan za odigravanje nove igre. U takvoj situaciji postat će dostupan čim završi igru koju trenutno igra. Ukoliko u aplikaciji nema drugih igrača (osim trenutnog korisnika) bit će prikazan natpis No players, pošto ne bi bilo smisleno da igrač vidi i može odabrati sam sebe za odigravanje igre. Ukoliko ima igrača dostupnih za igranje korisnik može kliknuti na igrača s kojim želi igrati te zatim upisati njegovu šifru (to ovdje služi kako trenutni korisnik ne bi ometao igrača kojeg ne pozna, pošto je igra zamišljena kao mjesto za odmjeru snaga prijatelja). Nakon što je korisnik odabrao suparnika i unio njegovu ispravnu šifru, prijatelju se šalje zahtjev za novom igrom koju je korisnik zatražio. Prijatelj ima ograničeno vrijeme za odgovor kako bi se spriječilo predugo čekanje korisnika na odgovor. Ukoliko prijatelj odgovori da ne želi igrati obojica se vraćaju na izbornik gdje biraju suigrača za sljedeću partiju. Inače, ako je prijatelj potvrdio zahtjev za igru, igra započinje no o tome ćemo više pričati u nastavku. Prije toga, spomenimo još da korisnik koji iskazuje namjeru slanja zahtjeva za novu igru (a to radi odabirom suigrača) ulazi u tzv. Send request mode (omogućeno slanje zahtjeva), te u tom stanju ne može primati zahtjeve za nove igre od svojih prijatelja. Korisnik koji na ekranu vidi popis dostupnih igrača nalazi se u tzv. Request receive mode-u (omogućeno primanje zahtjeva), u kojem može primati zahtjeve za igru svojih prijatelja. 28

34 Slika 21. Nema dostupnih igrača Slika 22. Prikaz dostupnih igrača Slika 23. Slanje zahtjeva za igru Slika 24. Primanje zahtjeva za igru 29

35 Nakon uspješnog dogovora o igri dvaju igrača, igra započinje te se igračima prikazuje Preparing screen (Ekran za čekanje) koji kratko vrijeme stoji prikazan na ekranu obojici igrača, sve dok se ne odrede ključni parametri za igru. Ti parametri su sljedeći: Odabir pet slučajno odabranih riječi iz baze podataka na poslužitelju Slučajni odabir igrača koji je prvi na potezu Nakon određivanja parametara poslužitelj šalje poruku na oba uređaja u kojoj oni zaprimaju ono što je slučajnim odabirom odlučeno i igra može početi. Ekran za čekanje prikazan je relativno kratko, ali opet dovoljno dugo da se ključni parametri stignu odrediti i da ih uređaji stignu primiti. Na sljedećim fotografijama prikazno je stanje pripreme za početak igre, kao i trenutak u kojem je igra započela na jednom od uređaja. Slika 25. Slika 26. Ekran za čekanje Ekran korisnika prvog na potezu 30

36 Komunikacija uređaja od trenutka slanja zahtjeva za novu igru do trenutka slanja ključnih parametara igračima i započinjanja igre prikaza je na sljedećoj fotografiji (slika 27). Slika 27. Komunikacija uređaja prilikom započinjanja nove igre Tok komunikacije za slučaj uspješnog dogovaranja igre je sljedeći: 1. Korisnik je odabrao suigrača te ispravno upisao njegovu lozinku. Na taj način poslao je zahtjev drugom igraču i čeka na njegov odgovor (odnosno šalje poruku poslužitelju). 2. Preko dobivenog korisničkog imena poslužitelj pronalazi komunikacijski Token drugog igrača u bazi podataka, te prosljeđuje zahtjev za igrom na Firebase poslužitelj. 3. Firebase poslužitelj dostavlja zahtjev za igrom na uređaj drugog igrača. 4. Drugi igrač odlučuje želi li igrati s igračem od kojeg je dobio zahtjev ili ne. 5. Nakon prihvaćanja zahtjeva za igrom, drugom igraču se prikazuje ekran za čekanje, a informaciju o potvrdi šalje se natrag prvom igraču (opet preko poslužitelja). 6. Poslužitelj pronalazi komunikacijski Token prvog igrača u svojoj bazi podataka, te prosljeđuje 31

37 informaciju o skorom početku igre Firebase-ovom poslužitelju 7. Firebase poslužitelj prenosi tu informaciju do uređaja prvog korisnika 8. Za cijelo to vrijeme (od trenutka potvrde zahtjeva za igrom od strane drugog igrača) poslužitelj određuje parametre potrebne za odigravanje igre 9. Nakon što je završio s određivanjem parametara, poslužitelj ih mora dostaviti uređajima kako bi igra mogla početi, te ih zbog toga prosljeđuje Firebase poslužitelju koji vrši dostavu obojici igrača (parametri su prilagođeni svakom igraču). 10. U posljednjem koraku Firebase poslužitelj dostavlja odgovarajuće parametre svakom igraču, te im se umjesto ekrana za čekanje od tog trenutka prikazuje ekran u kojem je igra započela. Igrač koji je na potezu ima dvije mogućnosti (slika 28). On može pogađati o kojoj se riječi radi ako sluti da mu je rješenje poznato (ako je odabrao pogađanje još uvijek se može predomisliti), dok u protivnom može ponuditi slovo. Ukoliko se to slovo nalazi u riječi koja je trenutno iscrtana za pogađanje igrač dobiva određeni broj bodova za svako pojavljivanje tog slova u iscrtanoj riječi, te se ta slova prikazuju na ekranu obojice igrača (na kraju poteza). Ako se ponuđeno slovo ne nalazi u riječi sve što igrač može napraviti je završiti potez. Dodatno, svaki puta nakon što je igrač pogodio barem jedno slovo koje se nalazi u riječi dobiva mogućnost pogađanja iscrtane riječi (slika 29). U tom trenutku ako igrač i dalje ne zna o kojem se pojmu radi može završiti svoj potez, dok u suprotnom može birati pogađanje. Nakon što je igrač odabrao pogađanje (slika 30.) njegovom prijatelju se prikazuje koje je slovo trenutni igrač pogodio i ispisuje mu se poruka da je njegov suparnik odlučio pogađati (više ne može odustati). Ukoliko je igrač pogodio o kojem se pojmu radi na određeni broj sekundi igračima se prikazuje rješenje (Slika 31.), igrač koji je pogađao dobiva određeni broj bodova s obzirom na duljinu pogođene riječi, te ako je preostalo još riječi za sljedeći krug igre one se iscrtavaju. Ukoliko je igrač pogađao pojam i fulao ga, rješenje se prikazuje obojici igrača, no igrač ne dobiva bodove za pokušaj te se iscrtava priprema za pogađanje sljedeće riječi (ako ih je još preostalo). U trenutku kada je pogađana zadnja riječ i nema sljedećih riječi za iscrtavanje, određuje se pobjednik odigrane partije, te se obojici igrača prikazuje ekran s tekstom jesu li pobijedili ili izgubili nakon čega im je omogućen gumb za povratak u prethodni izbornik u kojem opet mogu odabrati igrača za sljedeću igru. (Slika 32.) 32

38 Svaki igrač u bilo kojem trenutku može odlučiti napustiti igru gašenjem aplikacije. Štoviše, to također može učiniti pritiskom na tipku Resign (nalazi se gore desno). Prilikom napuštanja igre igrač je automatski izgubio. (Slika 33.) Slika 28. Slika 29. Mogućnosti igrača na potezu Prikaz opcija nakon pogođenog slova 33

39 Slika 30. Slika 31. Pogađanje pojma nakon pogođenog slova Prikaz rješenja nakon pogađanja pojma Slika 32. Slika 33. Pobjeda temeljem većeg broja bodova Poraz zbog predaje unatoč većem broju bodova 34

40 3.3 Upute za instalaciju Instalacija korisničkog dijela aplikacije poprilično je jednostavna i obavlja se u svega nekoliko koraka. Aplikaciju je moguće instalirati na dva načina. Prvi način je automatski preko razvojne okoline. Taj način je praktičniji (obično ga koriste razvojni programeri) te će prvi biti opisan u nastavku. Drugi način uključuje izvoz aplikacije u.apk format koristeći mogućnosti razvojne okoline, te ju takvu prebaciti na memoriju telefona preko računala te ju zatim pronaći na samom uređuju i pokrenuti instalaciju.. Za primjer instalacije na prvi način koristit će se razvojna okolina Android Studio, a koraci same instalacije su sljedeći: Prvi korak je otići u postavke uređaja te u rubrici sigurnost pronaći opciju nepoznati izvori koju treba označiti. (ta opcija služi kao dozvola za instalaciju aplikacija koje ne dolazi direktno s Google Play Store-a) Povezati Android uređaj s računalom koristeći USB kabel i dozvoliti računalu pristup podacima mobilnog uređaja (automatski se ponudi, potrebno prihvatiti) Kliknuti na zeleni gumb play unutar Android Studio te odabrati prispojeni uređaj te potvrditi odabir Dok se instalacija završi potrebno je odspojiti uređaj. Koraci instalacije drugog načina poprilično su slični. Prva dva koraka su identična. Svi koraci navedeni su u nastavku: Prvi korak je otići u postavke uređaja te u rubrici sigurnost pronaći opciju nepoznati izvori koju treba označiti. (ta opcija služi kao dozvola za instalaciju aplikacija koje ne dolazi direktno s Google Play Store-a) Povezati Android uređaj s računalom koristeći USB kabel i dozvoliti računalu pristup 35

41 podacima mobilnog uređaja (automatski se ponudi, potrebno prihvatiti) Prenijeti izvezenu app-debug.apk datoteku s računala na Android uređaj Odspojiti USB kabel U memoriji uređaja potražiti ikonicu aplikacije, te ju otvoriti kako bi instalacija započela Što se tiče pokretanja poslužiteljskog dijela aplikacije dovoljno je otvoriti neku razvojnu okolinu poput WebStorm-a, te pokrenuti aplikaciju pritiskom na zelenu tipku play. Iako je sada poslužiteljski dio aplikacije spreman i čeka na zahtjeve korisničkog dijela aplikacije na unaprijed predefiniranom portu ( port : 3000), aplikacija još uvijek nije spremna za korištenje. Kao posljednji korak potrebno je pokrenuti MongoDB bazu podataka, koju je prije toga potrebno instalirati na poslužitelju. Upute za instalaciju mogu se pronaći na Nakon uspješne instalacije bazu potrebno je pozicionirati se u sljedeći direktorij: C:\Program Files\MongoDB\Server\3.4\bin, te unijeti naredbu kojom baza počinje slušati na upućene upite. Ta naredba je: mongod dbpath C:\Users\USER\WebstormProjects\HomeApp\data Upute za instalaciju razvojne okoline Android Studio i razvojne okoline WebStorm nalaze se na sljedećim linkovima:

42 Zaključak U današnje vrijeme višekorisničke aplikacije pronašle su i hrabro drže svoje mjesto na svjetskom tržištu. Zadatak ovog rada bio je oblikovati, programski izvesti i testirati aplikaciju s igrom pogađanja za operacijski sustav Android. Za izvedbu aplikacije korišten je poslužitelj te pripadni klijentski dio za operacijski sustav Android. Objašnjen je proces komunikacije između uređaja, te je ukratko spomenuto koji protokoli se na kojem mjestu koriste. Ponovimo, to su protokoli HTTP i XMPP. Protokol HTTP u ovom radu služi za komunikaciju između uređaja i poslužitelja, dok je XMPP posrednik između vlastitog i Firebase poslužitelja. Protokol XMPP brži je od protokola HTTP, a namijenjen je za brzu razmjenu kratkih poruka. Cilj projekta bio je proučiti izvedbu jednostavne višekorisničke aplikacije zajedno s tehnologijama koje su potrebne za njenu izvedbu. Izrada ovog rada veoma me se dojmila prvenstveno zbog toga što je obogatila moje znanje za jedno novo veliko iskustvo dizajniranja aplikacije koja se sastoji od dva velika dijela (korisničkog i poslužiteljskog), korištenja najpoznatijih i najraširenijih protokola u internetskoj komunikaciji, te korištenje modernih i općeprihvaćenih tehnologija kojima se predviđa još veći rast i svjetla budućnost. Sve u svemu, usudio bih se zaključiti da mi je ova tema otvorila jedan mali prozor u velik i zanimljiv svijet višekorisničkih aplikacija. 37

43 Literatura [1] Wikipedia, operacijski sustav android [2] Google, Android Architecture [3] Android developers, Android application fundamentals [4] WordPress, struktura android aplikacija [5] AdMob, Firebase definicija [6] Firebase, Firebase documentation [7] Wikipeda, Firebase documentation [8] UKEwjbzuGUqabUAhUqAsAKHW75DgsQ_AUIBigB&biw=1366&bih=645#tbm=isch&q=and roid+architecture&imgrc=220cha6fevnafm: [9] [10] E3LCDh3s/V3bV3DtOTcI/AAAAAAAAGO8/EtOIT0T_eIsqzhaQPXz1pQQTGhc5CAeGwCLc B/s1600/firebase-dhanish-dcoding.gif 38

44 Sažetak Naslov: Višekorisnička igra pogađanja za operacijski sustav android Operacijski sustav Android svoj nastanak i razvoj temelji na operacijskom sustavu Linux, no primarno je dizajniran za prijenosne uređaje sa zaslonom osjetljivim na dodir poput smartphonea, tableta i drugih pametnih uređaja. Najvažniji pojmovi koji se vežu uz Android su otvorenost i neovisnost. Prvi uređaj s operacijskim sustavom Android prodan je u listopadu godine. Arhitektura operacijskog sustava Android sastoji se od nekoliko slojeva. To su: aplikacijski sloj, sloj aplikacijskog okvira, programske knjižnice, radno okruženje Android, te Linux jezgra. Svaka Android aplikacija zapravo se sastoji od 2 ključna dijela. To su Java datoteke u kojima se nalazi programska logika, te XML datoteke u kojima se nalazi izgled grafičkog korisničkog sučelja. Raspored direktorija i datoteka svake Android aplikacije zapravo je jedna stablasta struktura u kojoj se nalaze komponente koje programer uređuje, briše ili dodaje prilikom izrade aplikacije kreirajući pritom željeno grafičko sučelje, te različite funkcionalnosti i zadaće pojedinih komponenti. Neki od tih direktorija su src/, res/, manifests/, build gradle direktoriji i drugi. Svaku Android aplikaciju čini nekoliko komponenti koje po potrebi komuniciraju s ostalim komponentama unutar iste ili drugih aplikacija. Postoje četiri kategorije komponenti koje se međusobno razlikuju po namjeni i po životnom ciklusu. To su: aktivnosti, usluge, primatelji namjera i pružatelji usluga. Firebase je platforma koja uključuje nekoliko dobro integriranih značajki koje se mogu kombinirati, uključujući pozadinske programe za mobilne uređaje, analizu te alate za razvoj i unovčavanje aplikacija za maksimalno povećanje uspjeha aplikacije. Neke od najvažnijih i najpoznatijih Firebase usluga su: Analytics, Cloud messaging, Authentication, RealTime database, Storage i Hosting. Aplikacija koja je obrađena u ovom radu zamišljena je kao igra vješala modernog doba, odnosno višekorisnička igra pogađanja slova i riječi u obliku Android mobilne aplikacije. Sama igra bazira se na potezima (turn-based game), a koristi različite tehnologije poput Firebase RealTime database-a, Firebase Cloud Messaging-a, te više različitih internet protokola. 39

45 Summary Title: A Multiplayer Guessing Game for Android The Android operating system is based on the Linux operating system, but is primarily designed for touch screen devices such as smartphones, tablets, and other smart devices. The most important concepts that connect with Android are openness and independence. The first device running the Android operating system was sold in October The Android operating system architecture consists of several layers. These are: application layer, application framework layer, program libraries, Android runtime environment, and Linux kernel. Each Android application actually consists of two key parts. These are Java files with application logic and XML files where the graphical user interface layout is located. The directory and file layout of each Android application is actually a stark structure that contains components that the programmer edits, deletes, or adds when creating an application, creating the desired graphical interface and the various functionality and tasks of individual components. Some of these directories are src/, res/, manifests/, build gradle and others. Each Android app is made up of several components that communicate with other components, if needed, within the same or other applications. There are four categories of components that differ between purpose and life cycle. These are: activities, services, broadcast revceivers and content providers. Firebase is a platform that includes several well-integrated features that can be combined, including wallpapers for mobile devices, analysis of these tools for development and monetizing applications to maximize the success of the application. Some of the most important and most famous Firebase services are: Analytics, Cloud Messaging, Authentication, RealTime Database, Storage and Hosting. The application dealt with in this paper is designed as a game of modern-day hangman, that is, a multiplayer game of guessing a letters and words in the form of a Android mobile app. The game itself is based on moves (turn-based game) and uses various technologies such as Firebase RealTime Database, Firebase Cloud Messaging, and many different Internet protocols. 40

46 Ključne riječi Java, JavaScript, Android, Android povijest, Struktura Android aplikacija, Android arhitektura, Linux, Android Studio, Mobilna aplikacija, HTTP, XMPP, FCM, Pogađanje riječi i slova, Aplikacija, Igra bazirana na potezima, Višekorisnička aplikacija, Firebase, Poslužitelj, Komunikacija, Baza podataka za rad u stvarnom vremenu Keywords Java, JavaScript, Android, Android history, Android application structure, Android architecture, Linux, Android Studio, Mobile application, HTTP, XMPP, FCM, Word and case wizarding, Application, Turn-based game, Multiplayer application, Firebase, Server, Communication, RealTime database 41

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

DZM Aplikacija za servise

DZM Aplikacija za servise Mobendo d.o.o. DZM Aplikacija za servise Korisničke upute Andrej Radinger Sadržaj Instalacija aplikacije... 2 Priprema za početak rada... 4 Rad sa aplikacijom... 6 Kopiranje... 10 Strana 1 of 10 Instalacija

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME

ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Stručni studij ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME Završni

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

Upute za VDSL modem Innbox F60 FTTH

Upute za VDSL modem Innbox F60 FTTH Upute za VDSL modem Innbox F60 FTTH Default Login Details LAN IP Address User Name Password http://192.168.1.1 user user Funkcionalnost lampica LED Stanje Opis Phone USB Wireless Data Internet Broadband

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. Šta je potrebno za ispravan rad programa? Da bi program FINBOLT 2007 ispravno i kvalitetno izvršavao zadaću koja je postavljena pred njega

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima 1. Uvod 2. Preuzimanje programa i stvaranje mapa 3. Instalacija Apachea 4. Konfiguracija Apachea 5. Instalacija PHP-a 6. Konfiguracija

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze Trening: Obzor 2020. - financijsko izvještavanje i osnovne ugovorne obveze Ana Ključarić, Obzor 2020. nacionalna osoba za kontakt za financijska pitanja PROGRAM DOGAĐANJA (9:30-15:00) 9:30 10:00 Registracija

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

USB Key Uputa za instaliranje programske potpore i registraciju korisnika

USB Key Uputa za instaliranje programske potpore i registraciju korisnika Uputa za instaliranje programske potpore i registraciju korisnika 1 SADRŽAJ 1. UVOD 3 2. SPAJANJE USB KEYJA NA RAČUNALO 4 2.1. PROVJERA RADA USB KEYJA 4 3. INSTALIRANJE PROGRAMSKE POTPORE 5 3.1. INSTALIRANJE

More information

Informacijski sustav primarne zdravstvene zaštite Republike Hrvatske

Informacijski sustav primarne zdravstvene zaštite Republike Hrvatske 2/153 21-FAP 901 0481 Uhr Rev A Informacijski sustav primarne zdravstvene zaštite Republike Hrvatske Ispitni slučajevi ispitivanja prihvaćanja korisnika G1 sustava 2/153 21-FAP 901 0481 Uhr Rev A Sadržaj

More information

Lokacijska aplikacija za pametni sat s operacijskim sustavom Android Wear

Lokacijska aplikacija za pametni sat s operacijskim sustavom Android Wear SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4086 Lokacijska aplikacija za pametni sat s operacijskim sustavom Android Wear Matija Cvetnić Zagreb, srpanj 2015. Sadržaj

More information

MOBILNA APLIKACIJA MOJE DIJETE

MOBILNA APLIKACIJA MOJE DIJETE SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET Sveučilišni studij računarstva MOBILNA APLIKACIJA MOJE DIJETE Završni rad Gabriela Angebrandt Osijek, 2016. Sadržaj: 1. UVOD...

More information

za STB GO4TV in alliance with GSS media

za STB GO4TV in alliance with GSS media za STB Dugme za uključivanje i isključivanje STB uređaja Browser Glavni meni Osnovni meni Vrsta liste kanala / omiljeni kanali / kraći meni / organizacija kanala / ponovno pokretanje uređaja / ponovno

More information

Regshot. Mateo Šimonović,

Regshot. Mateo Šimonović, Regshot Mateo Šimonović, 0036465116 Mentor: prof. Marin Golub Akademska godina 2014/2015 SADRŽAJ 1. Uvod... 2 2. Instaliranje i pokretanje programa... 3 3. Rad s programom... 4 4. Regshot u primjeni analize

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

Use-case diagram 12/19/2017

Use-case diagram 12/19/2017 Use-case diagram Situacija gdje se sustav koristi za ispunjenje korisničkih zahtjeva te prikazuje djelić funkcionalnosti koju sustav pruža Opisuje funkcionalne zahtjeve sustava promatranih izvana Prikaz

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU ALEN JUREN RAZVOJ PROTOTIPNOG SUSTAVA ZA PRAĆENJE OSOBNIH TROŠKOVA ZAVRŠNI RAD ČAKOVEC, 2018. MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVO ALEN JUREN RAZVOJ

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI IZRADA MOBILNE I WEB APLIKACIJE ZA GENERIRANJE QR KODA UPOTREBOM PYTHON PROGRAMSKOG JEZIKA ZAVRŠNI RAD ČAKOVEC, 2014. MEĐIMURSKO VELEUČILIŠTE

More information

ANDROID KLIJENTSKA APLIKACIJA ZA CENTRALIZIRANO NARUČIVANJE HRANE U OSIJEKU

ANDROID KLIJENTSKA APLIKACIJA ZA CENTRALIZIRANO NARUČIVANJE HRANE U OSIJEKU SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Stručni studij ANDROID KLIJENTSKA APLIKACIJA ZA CENTRALIZIRANO NARUČIVANJE HRANE U OSIJEKU

More information

Udaljeno upravljanje tablet računalima za edukaciju

Udaljeno upravljanje tablet računalima za edukaciju Udaljeno upravljanje tablet računalima za edukaciju Zvonimir Sabljić, Marin Vuković, Željka Car Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Sažetak Edukacija je jedno od područja koja se

More information

UPUTE ZA KORIŠTENJE HOME.TV TO GO USLUGE

UPUTE ZA KORIŠTENJE HOME.TV TO GO USLUGE UPUTE ZA KORIŠTENJE HOME.TV TO GO USLUGE Verzija 2.0 22.11.2017. Sadržaj: 1. UVOD... 2 2. INSTALACIJA... 3 3. PRIJAVA KORISNIKA... 3 4. KORIŠTENJE APLIKACIJE... 5 4.1. Korištenje aplikacije na mobilnim

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Uvod u GIT Šta je git? Sistem za verzionisanje softvera kao i CVS, SVN, Perforce ili ClearCase Orginalno

More information

Aplikacija za dojavu događaja na uređajima s operacijskim sustavom Android

Aplikacija za dojavu događaja na uređajima s operacijskim sustavom Android SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4090 Aplikacija za dojavu događaja na uređajima s operacijskim sustavom Android Borna Sirovica Zagreb, lipanj 2015 Sadržaj

More information

SelmetAssetBO. Aplikacija za popis osnovnih sredstava na osobnom računalu. Korisnički priručnik. ver. RGN d.o.o. datum zadnje izmjena:

SelmetAssetBO. Aplikacija za popis osnovnih sredstava na osobnom računalu. Korisnički priručnik. ver. RGN d.o.o. datum zadnje izmjena: SelmetAssetBO Aplikacija za popis osnovnih sredstava na osobnom računalu Korisnički priručnik ver. RGN d.o.o. datum zadnje izmjena: 02.05.2016. datum izrade: 10.05.20011. str.1 Datum Što je promijenjeno

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO KRISTIAN LEINER

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO KRISTIAN LEINER MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO KRISTIAN LEINER održanim ispitima izrađena pomoću ASP.NET MVC tehnologije ZAVRŠNI RAD ČAKOVEC, 2015. MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO KRISTIAN

More information

Upravljanje kvalitetom usluga. doc.dr.sc. Ines Dužević

Upravljanje kvalitetom usluga. doc.dr.sc. Ines Dužević Upravljanje kvalitetom usluga doc.dr.sc. Ines Dužević Specifičnosti usluga Odnos prema korisnicima U prosjeku, lojalan korisnik vrijedi deset puta više nego što je vrijedio u trenutku prve kupnje. Koncept

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA CRNA GORA (1}(02.17&r/4 Ver. O;:, fjr}/ ~ AGENCUA ZA ELEKTRONSKE KOM~~IKACUE J.O.O "\\ L\lax Montenegro" BrOJ o/-lj Podoor'ca.d:ioL 20/1g0d I POSTANSKU DEJATELNOST DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA DNEVNA KARTA DAILY TICKET 35 BAM / 3h / person RADNO VRIJEME OPENING HOURS 08:00-21:00 Besplatno za djecu do 6 godina

More information

Web usluge. Web usluge

Web usluge. Web usluge Sadržaj Uvod....3 Ideja i način rada Web usluga.... 4 Slojevi Web usluga i protokoli.....6 XML (extensible Markup Language).... 7 SOAP (Simple Object Access Protocol)....9 WSDL (Web Service Description

More information

IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU C#

IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU C# SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni preddiplomski studij računarstva IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU

More information

WEB APLIKACIJA S BAZOM RECEPATA

WEB APLIKACIJA S BAZOM RECEPATA SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Preddiplimski studij računarstva WEB APLIKACIJA S BAZOM RECEPATA Završni rad Emil Vartušek

More information

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports. IZVJEŠTAJI U MICROSOFT ACCESS-u (eng. reports) su dijelovi baze podataka koji omogućavaju definiranje i opisivanje načina ispisa podataka iz baze podataka na papir (ili PDF dokument). Način izrade identičan

More information

UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU

UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij UPRAVLJANJE KORISNIČKIM RAČUNIMA U RAILS OKRUŽENJU Diplomski rad Monika

More information

3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3.1. Spajanje naprava u ra unalo Slika 3.1. Spajanje UI naprava na sabirnicu 3.2. Kori²tenje UI naprava radnim ekanjem Slika 3.2. Pristupni sklop UI

More information

UTJECAJ BOJE U DIGITALNIM MEDIJIMA NA DOŽIVLJAJ DIZAJNA I KORISNIČKO ISKUSTVO

UTJECAJ BOJE U DIGITALNIM MEDIJIMA NA DOŽIVLJAJ DIZAJNA I KORISNIČKO ISKUSTVO SVEUČILIŠTE U ZAGREBU GRAFIČKI FAKULTET DOMAGOJ TROJKO UTJECAJ BOJE U DIGITALNIM MEDIJIMA NA DOŽIVLJAJ DIZAJNA I KORISNIČKO ISKUSTVO DIPLOMSKI RAD Zagreb, 2013. DOMAGOJ TROJKO UTJECAJ BOJE U DIGITALNIM

More information

RAČUNALNA APLIKACIJA ZA RFID EVIDENCIJU STUDENATA NA NASTAVI

RAČUNALNA APLIKACIJA ZA RFID EVIDENCIJU STUDENATA NA NASTAVI SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni studij RAČUNALNA APLIKACIJA ZA RFID EVIDENCIJU STUDENATA NA NASTAVI Završni

More information

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE 3309 Pursuant to Article 1021 paragraph 3 subparagraph 5 of the Maritime Code ("Official Gazette" No. 181/04 and 76/07) the Minister of the Sea, Transport

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni diplomski studij računarstva EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU

More information

Visoka škola strukovnih studija za informacione i komunikacione tehnologije. SMS Gateway. Dr Nenad Kojić

Visoka škola strukovnih studija za informacione i komunikacione tehnologije. SMS Gateway. Dr Nenad Kojić Visoka škola strukovnih studija za informacione i komunikacione tehnologije SMS Gateway Dr Nenad Kojić Uvod SMS Gateway-i najčešće predstavljaju desktop aplikacije koji treba da omoguće korisničkim aplikacijama

More information

Korak X1 X2 X3 F O U R T W START {0,1}

Korak X1 X2 X3 F O U R T W START {0,1} 1) (8) Formulisati Traveling Salesman Problem (TSP) kao problem traženja. 2) (23) Dato je prostor stanja sa slike, sa početnim stanjem A i završnim stanjem Q. Broj na grani označava cijenu operatora, a

More information

Uvod u MS Word. Nova znanja. Novi pojmovi

Uvod u MS Word. Nova znanja. Novi pojmovi Uvod u MS Word Na početku učenja novog programa najbolje ga je pokrenuti i malo prošetati po njemu. Pogledati osnovni izgled prozora, proanalizirati što sadrži, otvarati izbornike i pogledati koje naredbe

More information

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA. Stručni studij. IoT I PAMETNA KUĆA

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA. Stručni studij. IoT I PAMETNA KUĆA SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Stručni studij IoT I PAMETNA KUĆA Završni rad Sven Obadić Osijek, 2017. Sadržaj 1. UVOD...

More information

Što su over-the-top usluge i kako utječu na komunikaciju?

Što su over-the-top usluge i kako utječu na komunikaciju? SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR Što su over-the-top usluge i kako utječu na komunikaciju? Antonija Mušćet Voditelj: Vedran Podobnik Zagreb, svibanj, 2015 Sadržaj 1.

More information

ODRICANJE OD ODGOVORNOSTI Ovaj je Priručnik povjerljivo, neobjavljeno vlasništvo društva Intesa Sanpaolo Card i ovime se ne prenose prava vlasništva.

ODRICANJE OD ODGOVORNOSTI Ovaj je Priručnik povjerljivo, neobjavljeno vlasništvo društva Intesa Sanpaolo Card i ovime se ne prenose prava vlasništva. My CheckOut Administracijska Aplikacija Korisnička uputa PBZ Card (Hrvatska) 1 ODRICANJE OD ODGOVORNOSTI Ovaj je Priručnik povjerljivo, neobjavljeno vlasništvo društva Intesa Sanpaolo Card i ovime se ne

More information

Uvod u micro:bit Tomislav Pandurić

Uvod u micro:bit Tomislav Pandurić Uvod u micro:bit Tomislav Pandurić Osnovna škola Franje Krežme, Osijek 26. veljače 2017. Sadržaj Upoznajmo micro:bit... 1 Programiranje micro:bita... 3 Microsoft PXT... 6 Komunikacija s računalom... 14

More information

PORTAL ZA UDOMLJAVANJE KUĆNIH LJUBIMACA

PORTAL ZA UDOMLJAVANJE KUĆNIH LJUBIMACA SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA OSIJEK Sveučilišni studij računarstva PORTAL ZA UDOMLJAVANJE KUĆNIH LJUBIMACA Završni rad

More information

REALIZACIJA WEB APLIKACIJE ZA POSLOVANJE TURISTIČKE AGENCIJE

REALIZACIJA WEB APLIKACIJE ZA POSLOVANJE TURISTIČKE AGENCIJE SVEUČILIŠTE U DUBROVNIKU ODJEL ZA ELEKTROTEHNIKU I RAČUNARSTVO DIPLOMSKI STUDIJ POSLOVNO RAČUNARSTVO Diplomski rad REALIZACIJA WEB APLIKACIJE ZA POSLOVANJE TURISTIČKE AGENCIJE Mentor: dr.sc. Mario Miličević

More information

Pravljenje Screenshota. 1. Korak

Pravljenje Screenshota. 1. Korak Prvo i osnovno, da biste uspesno odradili ovaj tutorijal, morate imati instaliran GOM Player. Instalacija je vrlo jednostavna, i ovaj player u sebi sadrzi sve neophodne kodeke za pustanje video zapisa,

More information

Osmišljavanje računalnog oblaka

Osmišljavanje računalnog oblaka SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 176 Osmišljavanje računalnog oblaka Neven Ćubić Zagreb, lipanj 2011. Sadržaj 1. Uvod...2 2. Računalni oblaci...3 2.1. Prednosti

More information

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB UPUTSTVO za ruter TP-LINK TD-854W/ TD-W8951NB Uputstvo za ruter TP-Link TD-854W / TD-W8951NB 2 PRAVILNO POVEZIVANJE ADSL RUTERA...4 PODEŠAVANJE KONEKCIJE PREKO MREŽNE KARTE ETHERNET-a...5 PODEŠAVANJE INTERNET

More information

Iskustva video konferencija u školskim projektima

Iskustva video konferencija u školskim projektima Medicinska škola Ante Kuzmanića Zadar www.medskolazd.hr Iskustva video konferencija u školskim projektima Edin Kadić, profesor mentor Ante-Kuzmanic@medskolazd.hr Kreiranje ideje 2003. Administracija Učionice

More information

FAQ - najčešće postavljana pitanja. PBZ Wave2Pay usluga

FAQ - najčešće postavljana pitanja. PBZ Wave2Pay usluga FAQ - najčešće postavljana pitanja PBZ Wave2Pay usluga Brandovi virtualnih kartica koji su podržani PBZ Wave2Pay uslugom: Visa Inspire kartica tekućeg računa u kunama Privredne banke Zagreb American Express

More information

Advertising on the Web

Advertising on the Web Advertising on the Web On-line algoritmi Off-line algoritam: ulazni podaci su dostupni na početku, algoritam može pristupati podacima u bilo kom redosljedu, na kraju se saopštava rezultat obrade On-line

More information

WWF. Jahorina

WWF. Jahorina WWF For an introduction Jahorina 23.2.2009 What WWF is World Wide Fund for Nature (formerly World Wildlife Fund) In the US still World Wildlife Fund The World s leading independent conservation organisation

More information

Upravljanje programskim okvirom za evolucijsko računanje

Upravljanje programskim okvirom za evolucijsko računanje SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 3615 Upravljanje programskim okvirom za evolucijsko računanje Domagoj Stanković Voditelj: prof. dr. sc. Domagoj Jakobović Zagreb,

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

More information

IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO

IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET OSIJEK Sveučilišni studij IZRADA RAČUNALNE IGRE KORISTEĆI GAMEMAKER:STUDIO Završni rad Luka Omrčen Osijek, 2016 SADRŽAJ 1. UVOD...

More information

MEĐIMURSKO VELEUČILIŠTE ČAKOVEC STRUČNI STUDIJ RAČUNARSTVA MARKO KNOK REDUNDATNOST I BALANSIRANJE OPTEREĆENJA WEB POSLUŽITELJA ZAVRŠNI RAD

MEĐIMURSKO VELEUČILIŠTE ČAKOVEC STRUČNI STUDIJ RAČUNARSTVA MARKO KNOK REDUNDATNOST I BALANSIRANJE OPTEREĆENJA WEB POSLUŽITELJA ZAVRŠNI RAD MEĐIMURSKO VELEUČILIŠTE ČAKOVEC STRUČNI STUDIJ RAČUNARSTVA MARKO KNOK REDUNDATNOST I BALANSIRANJE OPTEREĆENJA WEB POSLUŽITELJA ZAVRŠNI RAD ČAKOVEC, 2017. MEĐIMURSKO VELEUČILIŠTE ČAKOVEC STRUČNI STUDIJ

More information

Office 365. Priručnik. Zagreb, 2016.godina

Office 365. Priručnik. Zagreb, 2016.godina Priručnik Office 365 Zagreb, 2016.godina Ovo djelo je dano na korištenje pod licencom Creative Commons Imenovanje- Nekomercijalno-Dijeli pod istim uvjetima 4.0 međunarodna. Sadržaj: Sažetak... 4 Uvod...

More information

Upotreba selektora. June 04

Upotreba selektora. June 04 Upotreba selektora programa KRONOS 1 Kronos sistem - razina 1 Podešavanje vremena LAMPEGGIANTI 1. Kada je pećnica uključena prvi put, ili u slučaju kvara ili prekida u napajanju, simbol SATA i odgovarajuća

More information

ZAVOD ZA AUTOMATIKU I PROCESNO RAČUNARSTVO FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU HTTP PROTOKOL OTVORENO RAČUNARSTVO

ZAVOD ZA AUTOMATIKU I PROCESNO RAČUNARSTVO FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU HTTP PROTOKOL OTVORENO RAČUNARSTVO ZAVOD ZA AUTOMATIKU I PROCESNO RAČUNARSTVO FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU HTTP PROTOKOL OTVORENO RAČUNARSTVO Zagreb, 2006. Sadržaj 1. Što je HTTP?... 3 1.1. Što su to resursi?...

More information

Babylon - instalacija,aktivacija i rad sa njim

Babylon - instalacija,aktivacija i rad sa njim Babylon - instalacija,aktivacija i rad sa njim Babilon je vodeći svetski prevodilac brzog online i offline rečnika sa prevođenjem u preko 75 jezika jednim jednostavnim klikom misa i koriste ga miloni privatnih

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA SMJER: MREŽNO INŽENJERSTVO MATKO MARTEK MREŽNA KONFIGURACIJA I PROTOKOLI ZA POVEZIVANJE

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA SMJER: MREŽNO INŽENJERSTVO MATKO MARTEK MREŽNA KONFIGURACIJA I PROTOKOLI ZA POVEZIVANJE MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA SMJER: MREŽNO INŽENJERSTVO MATKO MARTEK MREŽNA KONFIGURACIJA I PROTOKOLI ZA POVEZIVANJE WEB-POSLUŽITELJA I MOBILNIH UREĐAJA ZAVRŠNI RAD ČAKOVEC,

More information

Sveučilište Jurja Dobrile u Puli. Fakultet ekonomije i turizma. Dr. Mijo Mirković. Igor Anušić MOBILNO OGLAŠAVANJE. Završni rad. Pula, 2017.

Sveučilište Jurja Dobrile u Puli. Fakultet ekonomije i turizma. Dr. Mijo Mirković. Igor Anušić MOBILNO OGLAŠAVANJE. Završni rad. Pula, 2017. Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma Dr. Mijo Mirković Igor Anušić MOBILNO OGLAŠAVANJE Završni rad Pula, 2017. godine Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma

More information

Osigurajte si bolji uvid u poslovanje

Osigurajte si bolji uvid u poslovanje Osigurajte si bolji uvid u poslovanje Mario Jurić Megatrend poslovna rješenja d.o.o. 1 / 23 Megatrend poslovna rješenja 25 + godina na IT tržištu 40 M kn prihoda 50 zaposlenih 60% usluge Zagreb i Split

More information

Sadržaj 1 UVOD KRATKI PREGLED VAŽNIJIH OPERACIJSKIH SUSTAVA SYMBIAN... 3

Sadržaj 1 UVOD KRATKI PREGLED VAŽNIJIH OPERACIJSKIH SUSTAVA SYMBIAN... 3 Sadržaj 1 UVOD... 2 2 KRATKI PREGLED VAŽNIJIH OPERACIJSKIH SUSTAVA... 3 2.1 SYMBIAN... 3 2.2 BLACKBERRY OS... 5 2.3 IOS... 5 2.4 ANDROID... 6 2.5 WINDOWS MOBILE... 8 3 SIGURNOST NA POKRETNIM UREĐAJIMA...

More information

CRNA GORA

CRNA GORA HOTEL PARK 4* POLOŽAJ: uz more u Boki kotorskoj, 12 km od Herceg-Novog. SADRŽAJI: 252 sobe, recepcija, bar, restoran, besplatno parkiralište, unutarnji i vanjski bazen s terasom za sunčanje, fitnes i SPA

More information

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

More information