Přejít k navigační liště

Zdroják » Různé » Střípky z WebExpo 2009 – III

Střípky z WebExpo 2009 – III

Články Různé

Dnešní pokračování článku o konferenci WebExpo 2009 bude již poslední. Potřetí si připomeneme některé zajímavé přednášky pro vývojáře, programátory a webdesignery, které na konferenci zazněly.

Druhý ročník konference WebExpo proběhl ve dnech 16. – 18. října v areálu ČZU v Praze-Suchdole. Třídenní program zahrnoval více než 60 přednášek, workshopů a diskusí na témata, která souvisí s vývojem, rozvojem a provozem webových a mobilních aplikací. Ve čtyřech sálech se střídaly přednášky věnované vývoji, webdesignu, frameworkům a byznysu. Pro čtenáře Zdrojáku vybíráme již podruhé některé zajímavé přednášky o programování a webdesignu. První část našeho přehledu jste si mohli přečíst před dvěma týdny, druhou část přehledu před týdnem.

Verzování kódu s Gitem

Přednášku o verzovacím nástroji Git s podtitulem Více než „zálohování a sdílení“ přednesl Karel Minařík. V pětačtyřiceti minutách dokázal pomocí 161 slidů představit historii verzovacích systémů, základní pojmy z tohoto oboru, Git jako způsob organizace práce, základní operace s Gitem a skončit u představení repozitářů Github a Githosting.

Webexpo 2009 - ilustrace
 WebExpo 2009 (Ilustrační foto: Ivana Dvorská)

V českých firmách je nejčastěji používaným verzovacím systémem (pokud firma vůbec nějaký verzovací systém používá; jejich používání není zdaleka tak samozřejmé) CVS nebo MS SourceSafe. Tyto nástroje jsou přece jen staršího data a jejich workflow nerespektuje novější metodiky a postupy pro vývoj. Velkým krokem vpřed je SVN (Subversion), ale i ten má svá omezení. Vznikly proto další verzovací nástroje – Git, Mercurial, Bazaar a další. Git původně vyvinul Linus Torvalds pro řízení vývoje Linuxového kernelu, a v současné době jej používají např. projekty Ruby On Rails, Google Android, One Laptop Per Child či PHP framework Nette. Git je, podle Karla Minaříka, mnohem lepší než často používaný SVN. Toto své tvrzení podložil argumenty: Git podporuje mergování (slučování větví), branchování (větvení) a nelineární vývoj.

Karel Minařík si je zjevně vědom situace v české vývojářské obci, tak do své přednášky zahrnul i evangelizační část na téma „K čemu nám vlastně verzovací systém může být dobrý?“ Vyvracel tak často zažité přesvědčení, že verzovací nástroj vlastně není nic víc než „pojmenovaná záloha v tar.gz“, či dokonce že to je „zbytečně složitá a okrášlená záloha v tar.gz“. Verzovací nástroj poskytuje nejen zálohu mimo počítač, ale i funkce, které s prostou „zálohou zdrojáků v tar.gz“ těžko lze realizovat – například synchronizace zdrojových kódů od více autorů, silné „undo“, které umožní vrátit jen některé změny a jiné ponechat, prozkoumání historie zdrojových kódů a porovnání změn či nelineární vývoj, což je zjednodušeně řečeno možnost „oddělit“ si stranou testovací verzi zdrojových kódů, na ní si ověřovat potřebné změny, udržovat ji paralelně s hlavní větví a případně je slučovat.

Pokud si stále kladete otázku, zda použít Git nebo něco jiného, možná vám pomůže prostá odpověď Scotta Chacona, propagátora Gitu (v překladu Karla Minaříka): „Proč je Git lepší než X“.

Přednáška: Karel Minařík – verzování kódu s Gitem
Materiál k přednášce: Prezentace (slideshow)

Vývoj aplikací pro mobilní platformu Android

Pro chytré telefony lze vyvíjet chytré aplikace. To bylo mottem přednášky Pavla Petřeka ze společnosti Inmite. Hlavním tématem byl vývoj aplikací pro platformu Android. Přednášející nejprve shrnul některé základní informace o vývoji aplikací pro Android a vysvětlil některé pojmy. V druhé polovině pak probral některá pokročilá témata, která je třeba mít při vývoji na paměti, především pak možnosti mobilních zařízení a jejich omezení (malý displej, napájení z baterie).

Vyvíjet aplikace pro Android lze velmi pohodlně z prostředí Eclipse (existuje plugin i pro NetBeans, ale ten pro Eclipse je vyspělejší). Aplikace pro Android (APK) jsou archivy JAR (ZIP), které obsahují AndroidManifes­t.xml, což je soubor, který specifikuje, z čeho se aplikace skládá (může to připomínat strukturu pluginů pro Firefox, pozn. aut.). Aplikace se skládají z komponent, například:

  • Aktivity: komponenty, které interagují s uživatelem a odpovídají jednomu formuláři či obrazovce.
  • Služby: kód běžící na pozadí delší dobu, bez vizuální podoby: downloady, výpočty na straně klienta.
  • Content providers: cesta, jak sdílet data ven z aplikace; komunikace mezi zařízeními, sdílení dat a funkcí.
  • Broadcast Intent Receivers: handlery, které naslouchají vzkazům z vnějšku (i zevnitř) aplikace.

Jedním z důležitých pojmů při vývoji aplikací pro Android je Intent. Intent je balíček, který obsahuje definici požadované akce a sadu parametrů pro tuto akci. Akce jsou např. Zobraz, Spusť, Přečti čárový kód apod. Pomocí Intentů komunikují aplikace mezi sebou či uvnitř sebe. Každý webový odkaz je v podstatě Intent s akcí Intent.ACTION_VIEW. Lze je mapovat na různá schémata, různé servery, různé cesty. Není tedy nutné vyvíjet tlustého/tenkého klienta pro novou aplikaci, spoustu věci lze řešit přímo z webové stránky, i když se jedná o volání nějaké systémové funkcionality.

Webexpo 2009 - ilustrace
WebExpo 2009 (Ilustrační foto: Ivana Dvorská)

Android nabízí některé komplexní komponenty, např. zobrazení mapy, zobrazení webu, zobrazení obrázku… Problém je, že zavolání takové komplexní komponenty představuje velkou datovou a zdrojovou zátěž, např. při zavolání webového view musí systém načíst celý webkit, což je pomalé, leckdy je potřeba swapovat apod. Problém přináší i oddělená úložiště dat pro aplikace, takže např. jedna aplikace nedokáže využít mapové podklady, které si stáhla druhá aplikace, a stahuje je znovu. Dobrým zvykem je používat již hotové aplikace. Ve spojení s Intenty jde o mocnou zbraň. Pokud uživatel nemá nainstalovanou danou aplikaci, může vaše aplikace nabídnout instalaci této chybějící aplikace. Uživateli se zobrazí dialogové okno a je případně odeslán do Marketu.

K „dobrým zvykům“ vývojáře mobilní aplikace patří např. pravidlo, že uživatelé by neměli být moc obtěžováni zbytečnými dialogy a uživatelská interakce by měla být pokud možno minimální. Android nabízí takzvané „toasty“, což je bublinka obsahující krátkou zprávu – např. „Item saved.“ Vysoké intervaly dynamických notifikací odebírají energii, což je u bateriového zařízení kritické. U statických notifikací je ideální spojit víc notifikací a hlavně je zobrazit pouze jednou.

OS Android umožňuje vícevláknové zpracování (multithreading). Při použití vláken je ale třeba mít na paměti, že běží. Například zapomenuté vlákno, které si spustí GPS, dokáže odebírat spoustu energie a vybít baterku. Proto je dobré použít časovač, který takováto zapomenutá vlákna (nebo zapomenuté obslužné rutiny) dokáže odstranit.

Při vývoji je třeba myslet na to, že zařízení mají různé možnosti, různě velké displeje, různě orientované… Emulátor v Eclipse (AVD) umí zobrazit aplikaci v různých rozlišeních, umožňuje simulovat nastavení GPS, Cell ID apod. Funguje i testování přímo v zařízení (deploy). Google se chce vyhnout pasti, do níž spadl Firefox tím, že pro něj vznikly stovky nepořádných rozšíření, které snižují jeho stabilitu, rychlost apod. Google chce podobnému osudu Androidu předejít osvětou a některými pomůckami, jako je např BatteryMeter.

Při vývoji aplikací pro zařízení „na baterie“ existují některé činnosti, které jsou „drahé“. Jaké to jsou?

  • Neuvážené operace na pozadí (např. kontrola update aplikace každých 10 minut)
  • Přenášet velké objemy dat na pomalém připojení
  • Zapínat GPS, když není potřeba – často stačí informace o Cell ID

Je dobré při vývoji myslet na to, kde aplikace poběží, takže např.:

  • Sdružovat periodické operace na pozadí
  • Promyslet nakládání se zámky (zamknout procesor, zamknout displej atd.) – pokud zapomeneme zámek opět povolit, nastane problém
  • Kódovat s rozmyslem: Javovský VM (Virtual Machine) není zadarmo. Používejte static fields, primitivní proměnné (ne objekty), omezte používání iterátorů, recyklujte objekty.

Přednáška: Pavel Petřek – Vývoj aplikací pro mobilní platformu Android

Materiál k přednášce: Prezentace (pdf)

Na Zdrojáku chystáme články o vývoji aplikací pro mobilní telefony

Další přednášky

Představené přednášky patřily k tomu nejzajímavějšímu, co na letošním WebExpo zaznělo. Samozřejmě zajímavých a inspirativních přednášek pro vývojáře bylo mnohem víc, ale na Zdrojáku není tolik místa, abychom takto podrobně probrali každou. pojďme si ty další připomenout alespoň ve zkratce.

Webexpo 2009 - ilustrace
WebExpo přineslo i vhodné příležitosti pro setkání vývojářů (Jakub Vrána a David Grudl, foto: Ivana Dvorská)

JavaFX (web a mobile) by měl být třetím nástrojem do party k Adobe Flexu a Silverlightu. O JavěFX hovořil Jan Štěrba ze Sunu.

Multiplatformní IDE předváděl Petr Pišl (rovněž Sun) při přednášce Vývoj webových aplikací v prostředí NetBeans. V prezentaci ukazoval, jak NetBeans podporuje a pokrývá všechny fáze vývoje webových aplikací, od editování kódu, generování kódu, vývoje JavaScriptu a CSS přes testování (unit testing) a ladění až po produkční nasazení (deployment), s důrazem na aplikace v Javě a PHP.

Výkonnostní testování je významnou, ale bohužel velmi často opomíjenou částí vývojového procesu. Co dobře funguje na vývojářském serveru, nemusí až tak dobře fungovat při nárůstu počtu přistupujících uživatelů anebo objemu spravovaných. Přitom čím dříve se na číhající problém přijde, tím snazší je jeho náprava… O automatizovaném testování webových aplikací hovořil Michael Juřek.

O tom, jakým způsobem by měl grafik při tvorbě webu přemýšlet a postupovat, hovořil Jiří Libánský v přednášce s názvem (Web)design je komunikace.

Tématu, kterému jsme se před nedávnem věnovali na Zdrojáku, byla věnována přednáška Jakuba Podlešáka s názvem Vytváření RESTful webových aplikací (nejen) v Javě (prezentace). Přednáška nejprve shrnula principy RESTu (viz REST: Architektura pro webové API na Zdrojáku) a výhody, které tento architektonický styl poskytuje. Část byla věnována představení JAX-RS (standardizované Java API pro REST). Na Zdrojáku připravujeme článek o Jersey.

frameworku Symfony a ORM nástroji Doctrine přednášel Jaroslav Bauml. 

Další přednášky, informace o přednášejících a stručné výtahy naleznete na stránkách WebExpo v sekci Program.

Závěr

Letošní WebExpo potvrdilo vysokou laťku, nasazenou loňským premiérovým ročníkem. Přineslo nejen spoustu zajímavých přednášek a doprovodných akcí, ale i ojedinělou příležitost pro setkání lidí z oboru. Nezbývá než poděkovat realizačnímu týmu za poměrně kvalitně zvládnutou akci, která v České republice chyběla, a popřát WebExpu i do dalších ročníků vysokou návštěvnost a zajímavé přednášky.

Foto: Ivana Dvorská

Komentáře

Subscribe
Upozornit na
guest
4 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Tomas

Neni skoda, ze z takovych akci neni porizovan, resp. zverejnovan, videozaznam? Klidne za nejaky rozumny poplatek, ale verim, ze by to bylo ku prospechu vsech…

kahi

„První videa by se měla objevit ke konci letošního roku. Budeme Vás informovat na našem Twitteru.“

http://webexpo.cz/…letter/0911/

karmi

Děkuji za shrnutí přednášky, chtěl bych ještě upřesnit/poopravit:

1/ Předně ad Why Git Is Better Than X – pozor pozor, to není moje práce, ale původně projekt Scotta Chacona [http://github.com/schacon], který stojí za většinou evangelizačních aktivit Gitu (vytvořil novou homepage, stvořil 500-slajdové prezentace, napsal open source knihu ProGit, atd). Mým podílem je pouze český překlad [http://github.com/…tter/tree/cz], který neběží na „oficiální doméně“ http://whygitisbetterthanx.com jen proto, že Scott je nějak zaneprázdněn a nemerguje pull requesty :)

2/ Evangelizační aspekt mojí přednášky byl poněkud slabší. Koncipoval jsem ji (záměrně) spíše jako relativně hard-core ukázku toho, co Git umí, pro začátečníky i pokročilejší. Z ohlasů vyplývá, že by přednáška typu — zjednodušeně řečeno — „Proč byste měli používat Git a ne Subversion“ byla publikem žádanější. Chtěl bych to napravit článkem zde na Zdrojáku. Pokud tedy víte o nějaké specifické oblasti, kterou jsem nestihnul probrat srozumitelně/e­fektivně, napište mi prosím e-mailem, sem do komentáře, twitterem, atd. ať mám více „podkladů“.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.