Kurs Graphic Applications Development

Ovaj kurs bavi se tehnikama za kreiranje grafičkih programa na desktop platformi, pre svega aplikacija sa grafičkim korisničkim interfejsom (GUI). 

Tokom nastave obrađuje se primarno Tkinter, okvir koji je ugrađen u sve Python distribucije i koji omogućava upoznavanje sa svim konceptima neophodnim za buduće bavljenje grafikom u aplikacijama. Predstavljaju se esencijalni koncepti grafičkog programiranja, poput emitovanja događaja, njihove detekcije i obrade, kreiranja glavne petlje aplikacije, njenog razumevanja i kontrole, kao i kreiranja i upotrebe različitih grafičkih korisničkih kontrola. Kurs pažnju posvećuje i problematici višenitnog programiranja u kombinaciji sa grafikom, takođe kroz Tkinter okvir. 

Iako je u kursu akcenat na Tkinter okviru, u njegovom sadržaju nalaze se i drugi grafički okviri, alati i biblioteke, čime njegovo gradivo obuhvata ne samo kreiranje standardnih poslovnih aplikacija već i specijalizovanih sadržaja, poput igara, alata i raznih drugih pomagala, a polaznicima otvara mogućnost izbora tehnologije koja im je najinteresantnija i koja u najvećoj meri zadovoljava njihove potrebe.

Osim rada sa 2D grafikom, tokom kursa postoji osvrt i na koncepte 3D programiranja i specifičnosti rada sa 3D grafikom.

Iako je posvećen radu sa grafikom, kurs kombinuje i elemente obrađivane u drugim kursevima, poput upravljanja podacima i mrežnog programiranja, tako da je njegovo savladavanje zapravo jedna od krajnjih tačaka na skali proučavanja određene tehnološke grane.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: AI & Python Development Program New.

Opis i ciljevi kursa Graphic Applications Development

Cilj kursa je osposobljavanje polaznika za kreiranje grafičkih aplikacija i njihovo potpuno razumevanje. Po njegovom završetku, polaznik će znati na koji način funkcionišu grafičke aplikacije na desktop platformama. On će moći da prepozna i objasni načine na koji se grafički elementi proizvode i emituju na ekranu ili njegovim delovima. Moći će da kreira grafičke komponente, da objasni oblike njihovog ponašanja i upotrebi ih prema projektnim potrebama. 

Biće upoznat sa procedurom obavljanja asinhronih poslova u grafičkim okruženjima i znati da primeni rešenja za efekte izazvane takvim operacijama. 

Polaznik će znati da kreira, prepozna i upotrebi glavnu petlju grafičke aplikacije, kao i da podešava frekvenciju osvežavanja ekrana.

Pored samog rada sa grafikom, nakon kompletiranog kursa, polaznik će biti u stanju da, koristeći vezu sa sistemom za upravljanje bazama podataka ili mrežnim servisima, aplikaciju oživi i učini funkcionalnom.

Kurs Graphic Application Development će vam odgovoriti na pitanja:

1. Šta je to GUI?

Grafički korisnički interfejs je razvijen u kasnim 1970-im godinama u američkoj Xerox laboratoriji za razvoj, a komercijalni uspeh je doživeo u Appleovom Macintosh i Microsoftovom Windows operativnom sistemu. Razloga za razvoj ovakvog pristupa bilo je mnogo, a najbitniji među njima je neefikasno korišćenje interfejsa baziranih na komandnim linijama.

Nakon tog trenutka, grafički interfejsi postaju standard u aplikativnom programiranju, čime se krajnjem korisniku pruža mogućnost intuitivnog upravljanja računarom i drugim uređajima kroz direktnu manipulaciju dugmićima, vertikalnim scroll trakama itd. U poslednje vreme prisutan je trend grafičkih korisničkih interfejsa gde korisnik tim elementima upravlja posredstvom ekrana na dodir, odnosno touchscreen tehnologije, kao i trend korišćenja glasovnih komandi.

2. Koje biblioteke u Pythonu omogućavaju kreiranje GUI aplikacija?

Kada je reč o grafičkim radnim okvirima (GUI frameworks), za Python postoji niz opcija. Od svih njih, Tkinter je jedini ugrađen, tj. dolazi sa instalacijom Pythona. Neki od tih radnih okvira se mogu koristiti širom drugih platformi, dok su neki razvijani specifično za određene platforme. Neki od GUI radnih okvira koje ćemo obraditi su: Kivy, PyQT, WxPython i Tkinter. Kroz primere ćemo obraditi početni Hello World primer za svaki od ovih radnih okvira, ali ćemo se u ostatku kursa fokusirati na Tkinter. Samo ime Tkinter je nastalo iz reči Tk interface. Tk grafički interfejs je originalno razvijen za Unix kao dodatak za TCL programski jezik (tool command language) i popularnost među programerima je stekao tokom devedesetih godina prošlog veka.

3. Koji elementi postoje u grafičkim aplikacijama?

Grafički interfejsi se sastoje od elemenata. Iako postoje grafički korisnički interfejsi kojima korisnik upravlja na dodir (touch interface) i slično, u ovom kursu ćemo se fokusirati na desktop GUI aplikacije i njihove elemente. Tako kreirane desktop aplikacije prate WIMP paradigmu, što je zapravo skraćenica od: window, icon, menus, pointer. WIMP paradigma razvijena je u Xerox PARC-u i popularizovana Appleovim uvođenjem Macintosha (1984. godine), koji je dodao koncepte „trake menija” i proširenog upravljanja prozorima. WIMP stil kreiranja GUI-a je zamenio post-WIMP-om. Bilo da je reč o WIMP stilu ili post-WIMP stilu, koncept je dosta sličan. Neki od elemenata WIMP stila GUI aplikacije se mogu svrstati u kategorije:

  • prozor (window);
  • meniji;
  • ikonice;
  • kontrole (widgets);
  • tabovi;
  • elementi interakcije.
Graphic Applications Development

4. Šta je animacija?

Animacija je metoda sukcesivnog prikazivanja crteža, slika i modela kako bi se kreirala iluzija pokreta. Kako ljudsko oko može „zadržati” trenutnu sliku tek šesnaesti deo sekunde, kada se slike brzo smenjuju, mozak ih „spaja” u jednu, pokretnu sliku. U tradicionalnoj animaciji, slike su bile crtane na transparentnoj plastičnoj podlozi i potom fotografisane i prikazivane na filmu. Na ovaj način nastajali su prvi crtani filmovi. Danas, animacije se generišu putem računarske grafike (CGI – computer-generated imagery). Animacija se deli na proste animacije, tradicionalne animacije, računarske animacije (digitalna 2D, digitalna 3D i snimanje pokreta) i kadar po kadar (stop motion).

5. Šta je Tkinter?

Tkinter je ugrađeni Python modul za rad sa grafičkim interfejsima. Pošto se Python može koristiti na više platformi – isto važi i za Tkinter aplikacije. Samo ime je nastalo iz reči Tk interface. Tk grafički interfejs je originalno razvijen za Unix kao dodatak za TCL programski jezik (tool command language) i popularnost među programerima je stekao tokom devedesetih godina prošlog veka. Deo je standardnih Python biblioteka još od Python verzije 1.1 i kao takav dopušta besplatno kreiranje komercijalnih aplikacija. Tkinter aplikacija se može kreirati koristeći funkcionalni i objektno orijentisani pristup. Kroz ovaj kurs kreiraćemo aplikacije koristeći oba ova pristupa.

6. Sta je I/O koncept?

Ulaz i izlaz ili I/O predstavlja komunikaciju između procesirajućeg sistema, kao što je npr. računar, i spoljnog sveta. Ulaz je signal koji taj sistem prima, a izlaz je signal koji taj sistem šalje. Signale šalju uređaji ili drugi sistemi. I/O proces je na većini modernih računara asinhron (nezavisan) u smislu da je vreme izvršavanja operacija na centralnoj procesorskoj jedinici (CPU) i I/O uređaja nezavisno. Kada je reč o CPU-u, on je po prirodi sinhron (istovremen), gde kontrolna jedinica izvršava svaku naredbu/instrukciju pod vremenom koje određuje centralni sat u procesoru. Tako se svaka operacija izvršava u tačno određeno vreme i sa tačno određenim trajanjem, jer svaka naredba u mašinskom kodu (kodu koji se jedino može izvršavati na procesoru) traje unapred definisan broj otkucaja procesorskog sata.

7. Kako se implementira detekcija sudara?

O detekciji sudara (collision detection) kao konceptu se može pričati u dve ili tri dimenzije. Pošto je u Tkinteru moguća jedino 2D animacija, na nju ćemo se i fokusirati. Kako bismo osigurali da na određenom prostoru može biti samo jedan objekat, moramo implementirati detekciju sudara, koja se bazira na geometriji tih objekata i njihovih pozicija. Postoji više tehnika kojima se mogu detektovati sudari; one su se najviše razvijale zahvaljujući igračkoj industriji. Pošto ćemo detekciju sudara prikazati na primeru jednostavne igre gde je cilj igrača da sakupi što više nasumično postavljenih poena (krugova) na kanvasu, o detekciji sudara ćemo govoriti u kontekstu igara, ali se isti principi primenjuju svuda u digitalnoj 2D animaciji.

Plan i program predavanja:

Modul 1 – Računarska grafika

  • Uvod u grafički korisnički intefejs
  • Uvod u Python grafičke okvire i Tkinter

Modul 2 – Rad sa Tkinter okvirom

  • Kreiranje Tkinter grafičke aplikacije
  • Rad sa Tkinter kontrolama
  • Rukovanje događajima
  • Korišćenje platna

Modul 3 – Animacija

  • Koncepti animacije
  • Rukovanje ulazom i izlazom
  • Detekcija sudara

Kurs Graphic Applications Development

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok 2024/25. je u toku.

Da saznate sve o upisu, kliknite ovde.

Prijavite se