SlideShare une entreprise Scribd logo
1  sur  37
Web frontend
Startup akademija, prva tech radionica
Vuk Nikolić
       @vuknikolic
Android, Java, iOS engineer
    www.vuknikolic.rs
Šta je web frontend?
AJAX                               CSS
                Modernizr
         DOM                  Dojo
                 JSON
Prototype
                                HTML5 API
  Firebug      HTML
                              CSS Grids
     CSS Pre-Processors

Javascript                     jQuery
             Responsive Web
HTML
HTML - ubrzano
Opisivanje strukture stranice

Prikazuje se u browseru (desktop i mobilni)

Skup tagova (header, tabela, liste...)

Skup komponenti (textfield, button...)
Šta je taj HTML5?
Dodatni tagovi (article, header, footer, audio,
video...)

Dodatne komponente (kalendar, datum,
email...)

Dodatne funkcionalnosti (canvas crtanje,
drag‟n‟drop, web storage, geolocation...)

Prikaz idalje u browseru!
HTML = Šema stranice
       Poenta priče
CSS
CSS - Ubrzano
Kako da izgledaju HTML elementi

Definisanje izgleda stranice
(pozicija, veličina, boja, fontovi, margine, lejeri)

Razdvajanje izgleda od šeme
CSS Primer
CSS3?
Novi propertiji: Box radius, Drop shadow,
Opacity, animacije

Media queries, font-face, RGBA

SELECTORS (Begins with, nth-child, only-
child, empty, not, checked)

Animacije (2D i 3D), transformacije

Pomagač: http://css3generator.com/
CSS3 Primeri

 Svi elementi sa atributom „href‟ koji počinju sa „„startapakademija.com"

•[href^="startapakademija.com"]


 Transformacije :)

    •   transform: scale(1.1,1.1) rotate(40deg) translate(10px, 20px)

 Zakrivi ivice

    •   border-radius: 2px;

 Samo za odreĎene veličine ekrana

    •   @media screen and (max-width: 600px) { ... }
JavaScript
Jezik za definisanje funkcionalnosti stranica

Izvršava se u browseru

AJAX - učitavanje i menjanje dela stranice

Revolucija sa gmaps i gmailom kao primerima
šta može da se uradi
<script type="text/javascript">
function notEmpty() {
    var myTextField = document.getElementById('myText');
    if (myTextField.value != "") {
         alert("You entered: " + myTextField.value)
    } else {
         alert("Would you please enter some text?")
  }
}
</script>




             JavaScript Primer
Hvala na pažnji!
Problemi?
Različit prikaz u browserima, ako uopšte i
prikažu :)

Teško i naporno “debugovanje”

Sa svakom aplikacijom/sajtom sve iznova,
standardni problemi

Kombinovanje HTML, CSS i JSa u jednom
fajlu
Rešenja?
Zašto jQuery?
CSS Selektori

Lako manipulisanje DOMom i efekti

Ogroman community i brdo pluginova

Jednostavan

U svim browserima je OK
jQuery - primeri
Dodaj novu klasu za postojeći element
•$(„#secion‟).addClass(„newClass‟)


Promeni atribut
•$(„#myImage‟).attr(„src‟,   „img.png‟)

Šta da se desi kada kliknem
•$(„#myLink‟).click(function   (e){})

Sakri sve koji su klase “myFancyClass”
•$(„.myFancyClass‟).hide(„slow‟)
jQuery plugins
jQuery UI - Gotove komponente i efekti

Fotogalerije, Navigacija, Tooltipovi, razne
Komponente (Accordion), Endless scroll,
Validacije, Modalni prozori...
CSS Framework?
CSS Frameworks!
Reset “biblioteke” - isti početak

Gridovi i brzo sklapanje interfejsa

Responsive design!

Primeri: Twitter
Bootstrap, Blueprint, Foundation Zurb, 960
grid system
Responsive design
Twitter Bootstrap
Podrška za gridove

Responsive design

Tipografija, tabele, forme, dugmići

Dropdown, navigacija, alerts, progress bars

Ali i JavaScript: Tooltip, modal, popoveri
Bootstrap teme!
less.js
CSS Pre-Processor?

Često ponavljanje istih vrednosti

Mini template za CSS
less.js primer
Modernizr
Testira preko 40 next-gen funkcionalnosti
browsera

Olakšava život :)
Firebug
Neophodan alat

Inspekcija HTMLa, CSSa, JavaScripta,
internet saobraćaja

Menjanje postojeće strane i fajlova

Odlična konzola za testiranje JavaScripta

Pluginovi za dodatne potrebe
Firebug
Firebug
Napredniji JavaScript
Ozbiljnije biblioteke

Backbone.js, ember.js, angular.js

MVC pristup

Rad sa localstorage-om

RESTful support
YAFS?
Workshop!

Contenu connexe

Similaire à Vuk Nikolić - Web frontend - startap akademija, prva tech radionica

Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend Framework
Saša Stamenković
 
Front-end development iz ugla .NET programera
Front-end development iz ugla .NET programera�Front-end development iz ugla .NET programera�
Front-end development iz ugla .NET programera
Startit
 

Similaire à Vuk Nikolić - Web frontend - startap akademija, prva tech radionica (12)

Javascript #4 - Startit Centar Indjija
Javascript #4 - Startit Centar IndjijaJavascript #4 - Startit Centar Indjija
Javascript #4 - Startit Centar Indjija
 
Intro to 2D Game Development
Intro to 2D Game DevelopmentIntro to 2D Game Development
Intro to 2D Game Development
 
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
 
Uvod u react
Uvod u reactUvod u react
Uvod u react
 
Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend Framework
 
Let's talk about CSS
Let's talk about CSSLet's talk about CSS
Let's talk about CSS
 
Silverlight
SilverlightSilverlight
Silverlight
 
Javascript #3 - StartIt centar Indjija
Javascript #3 - StartIt centar IndjijaJavascript #3 - StartIt centar Indjija
Javascript #3 - StartIt centar Indjija
 
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer ToolsaWinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
 
Front-end development iz ugla .NET programera
Front-end development iz ugla .NET programera�Front-end development iz ugla .NET programera�
Front-end development iz ugla .NET programera
 
Slobodan_Zivancevic_cv
Slobodan_Zivancevic_cvSlobodan_Zivancevic_cv
Slobodan_Zivancevic_cv
 
Web design
Web designWeb design
Web design
 

Plus de Startap Akademija

Plus de Startap Akademija (10)

Ivan Aksentijević - Developing a culture in startup
Ivan Aksentijević - Developing a culture in startupIvan Aksentijević - Developing a culture in startup
Ivan Aksentijević - Developing a culture in startup
 
Saša Šarunić - shoutem
Saša Šarunić - shoutemSaša Šarunić - shoutem
Saša Šarunić - shoutem
 
Janko Jovanović - Proizvod je, u stvari, dizajn - UX dizajn za startape
Janko Jovanović - Proizvod je, u stvari, dizajn - UX dizajn za startapeJanko Jovanović - Proizvod je, u stvari, dizajn - UX dizajn za startape
Janko Jovanović - Proizvod je, u stvari, dizajn - UX dizajn za startape
 
Ilija Studen - Honey, we shipped!
Ilija Studen - Honey, we shipped!Ilija Studen - Honey, we shipped!
Ilija Studen - Honey, we shipped!
 
Daniel Tenner - The crazy risks of being an entrepreneur
Daniel Tenner - The crazy risks of being an entrepreneurDaniel Tenner - The crazy risks of being an entrepreneur
Daniel Tenner - The crazy risks of being an entrepreneur
 
Daniel Tenner - Startup tools
Daniel Tenner - Startup toolsDaniel Tenner - Startup tools
Daniel Tenner - Startup tools
 
Daniel Tenner - Ideas, cofounders, shares
Daniel Tenner - Ideas, cofounders, sharesDaniel Tenner - Ideas, cofounders, shares
Daniel Tenner - Ideas, cofounders, shares
 
Startup Academy Placeholder
Startup Academy PlaceholderStartup Academy Placeholder
Startup Academy Placeholder
 
Berislav Lopac - Startapi i investicije
Berislav Lopac - Startapi i investicijeBerislav Lopac - Startapi i investicije
Berislav Lopac - Startapi i investicije
 
Boris Krstović - Building Product 101
Boris Krstović - Building Product 101Boris Krstović - Building Product 101
Boris Krstović - Building Product 101
 

Vuk Nikolić - Web frontend - startap akademija, prva tech radionica

  • 1. Web frontend Startup akademija, prva tech radionica
  • 2. Vuk Nikolić @vuknikolic Android, Java, iOS engineer www.vuknikolic.rs
  • 3. Šta je web frontend?
  • 4. AJAX CSS Modernizr DOM Dojo JSON Prototype HTML5 API Firebug HTML CSS Grids CSS Pre-Processors Javascript jQuery Responsive Web
  • 6. HTML - ubrzano Opisivanje strukture stranice Prikazuje se u browseru (desktop i mobilni) Skup tagova (header, tabela, liste...) Skup komponenti (textfield, button...)
  • 7. Šta je taj HTML5? Dodatni tagovi (article, header, footer, audio, video...) Dodatne komponente (kalendar, datum, email...) Dodatne funkcionalnosti (canvas crtanje, drag‟n‟drop, web storage, geolocation...) Prikaz idalje u browseru!
  • 8. HTML = Šema stranice Poenta priče
  • 9. CSS
  • 10. CSS - Ubrzano Kako da izgledaju HTML elementi Definisanje izgleda stranice (pozicija, veličina, boja, fontovi, margine, lejeri) Razdvajanje izgleda od šeme
  • 12. CSS3? Novi propertiji: Box radius, Drop shadow, Opacity, animacije Media queries, font-face, RGBA SELECTORS (Begins with, nth-child, only- child, empty, not, checked) Animacije (2D i 3D), transformacije Pomagač: http://css3generator.com/
  • 13. CSS3 Primeri Svi elementi sa atributom „href‟ koji počinju sa „„startapakademija.com" •[href^="startapakademija.com"] Transformacije :) • transform: scale(1.1,1.1) rotate(40deg) translate(10px, 20px) Zakrivi ivice • border-radius: 2px; Samo za odreĎene veličine ekrana • @media screen and (max-width: 600px) { ... }
  • 14. JavaScript Jezik za definisanje funkcionalnosti stranica Izvršava se u browseru AJAX - učitavanje i menjanje dela stranice Revolucija sa gmaps i gmailom kao primerima šta može da se uradi
  • 15. <script type="text/javascript"> function notEmpty() { var myTextField = document.getElementById('myText'); if (myTextField.value != "") { alert("You entered: " + myTextField.value) } else { alert("Would you please enter some text?") } } </script> JavaScript Primer
  • 17. Problemi? Različit prikaz u browserima, ako uopšte i prikažu :) Teško i naporno “debugovanje” Sa svakom aplikacijom/sajtom sve iznova, standardni problemi Kombinovanje HTML, CSS i JSa u jednom fajlu
  • 19. Zašto jQuery? CSS Selektori Lako manipulisanje DOMom i efekti Ogroman community i brdo pluginova Jednostavan U svim browserima je OK
  • 20. jQuery - primeri Dodaj novu klasu za postojeći element •$(„#secion‟).addClass(„newClass‟) Promeni atribut •$(„#myImage‟).attr(„src‟, „img.png‟) Šta da se desi kada kliknem •$(„#myLink‟).click(function (e){}) Sakri sve koji su klase “myFancyClass” •$(„.myFancyClass‟).hide(„slow‟)
  • 21. jQuery plugins jQuery UI - Gotove komponente i efekti Fotogalerije, Navigacija, Tooltipovi, razne Komponente (Accordion), Endless scroll, Validacije, Modalni prozori...
  • 23. CSS Frameworks! Reset “biblioteke” - isti početak Gridovi i brzo sklapanje interfejsa Responsive design! Primeri: Twitter Bootstrap, Blueprint, Foundation Zurb, 960 grid system
  • 25.
  • 26. Twitter Bootstrap Podrška za gridove Responsive design Tipografija, tabele, forme, dugmići Dropdown, navigacija, alerts, progress bars Ali i JavaScript: Tooltip, modal, popoveri
  • 27.
  • 29. less.js CSS Pre-Processor? Često ponavljanje istih vrednosti Mini template za CSS
  • 31. Modernizr Testira preko 40 next-gen funkcionalnosti browsera Olakšava život :)
  • 32. Firebug Neophodan alat Inspekcija HTMLa, CSSa, JavaScripta, internet saobraćaja Menjanje postojeće strane i fajlova Odlična konzola za testiranje JavaScripta Pluginovi za dodatne potrebe
  • 35. Napredniji JavaScript Ozbiljnije biblioteke Backbone.js, ember.js, angular.js MVC pristup Rad sa localstorage-om RESTful support
  • 36. YAFS?