Zavřít reklamu

K programování ho přivedl kamarád, který vytvářel statické webové stránky. Jana Hnízdila to chytlo tak, že se to začal učit – ne čtením knížek, ale řešením reálných úkolů. Tato cesta se mu osvědčila u webů i u mobilních aplikací, kterým se dnes věnuje v české společnosti Livesport. “Některé firmy udělají aplikaci a už se o ni dál nestarají. Není moc propracovaná a člověk k ní nemá takový vztah, jako máme my tady,” říká programátor o aplikaci, kterou si stáhlo už přes 25 milionů lidí.

Když jste nastupoval do Livesportu, rovnou jste se začal věnovat aplikacím?
To ne, začínal jsem na webu, vzali mě sem jako webového vývojáře. Už od začátku jsem ale po aplikacích pokukoval. Chtěl jsem je vytvářet nejdřív na Android – tehdy jsem měl telefon s Androidem -, ale když mi tu dali Apple, začal jsem ho používat. Zvykl jsem si na něj, má hodně dobrých vlastností a funkcí. Ale nejsem výhradní fanoušek jenom jednoho operačního systému.

Jaký je rozdíl v programování pro Android a iOS?
Skočil jsem rovnou z webu do iOS, ale vidím i do Android kódu, protože na některých věcech spolupracujeme s kolegy z druhého týmu. Používají se jiné programovací jazyky,  Android se píše v Javě a iOS se dlouho psal v Objective-C, což je docela šílený jazyk. Naštěstí jsme začali se Swiftem, novým jazykem, který je o hodně lepší a zábavnější.

V čem jste začínal programovat?
Když jsem přišel do Livesportu, uměl jsem klasické PHP, JavaScript, CSS a podobné věci. Pak jsem se začal učit všechno, co bylo potřeba pro iOS. Máme tu ale vizi, že bych v budoucnu psal i něco pro Andorid, aby se oba týmy pro vývoj aplikací navzájem víc prolínaly.

Jaký byl přechod z programování webu do vývoje aplikací?
Je to velký rozdíl. Když člověk píše web, tak má jen počítač. Když něco změní v kódu, “refrešne“ si prohlížeč a změny hned vidí. Na aplikaci se vše kompiluje z různých částí. Pak se to pouští v simulátoru v počítači nebo přímo na mobilním zařízení. Je to jiný způsob uvažování a tvoření. Když na webu potřebujeme něco změnit, tak to nasadíme a uživatelé to hned vidí. Když uděláme chybu v aplikaci, tak to zdaleka tak rychle ven nedostaneme. Musíme udělat novou verzi, kterou pak musí ještě schválit Apple. Je potřeba víc přemýšlet, líp testovat a mít v hlavě, že nějakou dobu trvá, než můžeme dát uživatelům opravenou verzi.

Kolik jste za dobu, co jste v Livesportu, vydali verzí aplikace?
Dřív jsme každou verzi dělali hodně dlouho, třeba i měsíc nebo dva. Jenže tím pak vzniká velký rozdíl mezi jednotlivými verzemi a změní se hodně věcí. Vzniká i víc prostoru na chyby. Taky jsme se občas s něčím zasekli, dlouho to trvalo. Takže jsme zrychlili a v současné době vydáváme novou verzi jednou za dva týdny.

Když řeknete, že tři roky pracujete na jedné aplikaci, tak to je fakt dlouho. Co na ní takovou dobu děláte?
Aplikaci pro iOS píšeme teď ve čtyřech lidech každý den. Funguje dobře, ale stejně se občas objeví drobné chyby, které opravujeme. A pořád ji také vylepšujeme, přidáváme nové funkce. Naše aplikace dřív zdaleka neuměla tolik věcí jako dnes. Poslední velkou novinkou bylo přidání zimních sportů. Plus se snažíme některé starší věci přepisovat, aby byly lepší a celá aplikace menší a líp se testovala. Je to hodně práce.

Jan Hnizdil

Jak vůbec odhalujete chyby v aplikaci?
Ideálně by to měl člověk poznat přes testy. Máme napsané vlastní testy, které spouštíme přes Xcode Server a Jenkinse, ale ty nepokrývají celou funkčnost aplikace. V ideálním světě by mělo všechno fungovat dohromady a aplikace být otestovaná celá, ale to u takhle velkých aplikací stoprocentně nemá nejspíš nikdo. Většinu chyb odhalíme sami. Máme i skupinu testerů, kteří novinky vidí, než je pustíme do světa. Beta verze ukazujeme samozřejmě předem i zaměstnancům. A pak nám něco reportují i uživatelé.

Lidí, kteří takhle do detailu pracují na jedné aplikaci, asi není tolik. Jaké to má výhody?
Když jsme hledali kolegu do týmu, tak se hlásilo hodně lidí z firem, které aplikace chrlí. Přijde k nim zákazník, že chce aplikaci, a oni sáhnou po šabloně, kterou upraví. Udělají aplikaci a už se o ni dál ani nestarají. Není moc propracovaná a člověk k ní nemá takový vztah, jako máme my tady. Naše aplikace je tak trochu naše dítě, máme ji rádi. To mi přijde lepší. Navíc naši aplikaci používají miliony lidí po celém světě. Android i iOS verzi dohromady si zatím stáhlo 25 milionů lidí. Díky tomu máme hodně zkušeností a také si budujeme reputaci.

Co je na “střevech” té aplikace zábavné? Co vás na tom baví?
Moc se mi líbí vše, co píšu v  novém jazyce, ve Swiftu. A líbí se mi taky přepisování starších věcí do nového jazyka. Snažím se přitom dodržet, aby ta stará část fungovala s novou. To není vždycky úplně jednoduché. Nejvíc mě baví takzvaný refactoring – když vidím nějaký kód, který se mi nelíbí, tak ho prostě vylepším, aby se lépe používal.

Takže rád řešíte složitější věci?
Ano. On o refactoringu byl i celý můj roční úkol – ty si dáváme na ročním hodnocení vedle běžné práce. Já se měl zbavit jednoho obrovského souboru ve starém jazyce. Do něj jsme dávali všechno, co jsme nevěděli, kam vložit jinam. Já ho předělal, přehledně rozkouskoval a teď se nám s jednotlivými částmi pracuje mnohem líp.

Kdybyste měl poradit někomu, kdo se na programování teprve chystá, doporučil byste mu začít s webem nebo rovnou s aplikacemi?
Doporučil bych rovnou začít psát mobilní aplikace a naučit se ten nejnovější jazyk, v případě iOS je to nyní Swift. Když se chcete cokoli naučit, je nejlepší to rovnou začít dělat. Jakmile člověk začne psát něco reálného, i třeba úplnou drobnost, začne narážet na reálné problémy, hledat řešení, učit se, a to je nejlepší cesta.

Dá se říct, jak těžké je naučit se Swift?
Nemá tak šílenou syntaxi jako Objective-C, takže mi ani tolik těžký nepřijde. A jsou k němu dobré návody.

Je to jako učit se znova programovat, nebo se dají využít znalosti z programování webu?
Kdo má znalosti z webu, má výhodu. Ale na druhou stranu má i nějaké špatné zvyky, které si s sebou nese. A když někdo není vůbec programátor a začíná dělat aplikace ve Swiftu, tak to může být taky výhoda. Je to individuální.

Když hledáte někoho do týmu, jaký kandidát by se k vám měl přihlásit, aby k vám zapadl? Co by měl splňovat?
Máme teď jednoho nováčka, který dělá Android, ale zvládl by i iOS. Tam byl nejdřív trochu problém s tím, že neznal moc PHP. Když měl dělat webové věci, tak se docela bál a trvalo mu nějakou dobu, než se odvážil něco změnit. Chtělo by to někoho, kdo už má s aplikacemi zkušenosti. Že bychom vychovávali někoho cizího, kdo by se učil od začátku, to už asi nejde. Ten člověk musí mít nějaký základ. Do našeho týmu by měl mít základ v programování aplikací. A je dobré, když rozumí i webu, ale tam ta váha není taková, to se může i doučit. Důležitá je praxe s aplikacemi. Já sice žádnou neměl, ale byl jsem z firmy a kolegové věděli, že funguju. A pak by měl být precizní a snažit se, ať to za něco stojí.

Věnujete se ještě webu, nebo už vůbec?
Minimálně, ale ano. Naše aplikace stahuje data z webu, takže od něj nejsme úplně odtrženi. Když potřebujeme přidat něco nového, potřebujeme na to web připravit. Takže občas do něj kód také ještě píšu.

Co vám za poslední dobu udělalo v práci největší radost?
Hodně se mi líbil náš první Livesport Talk. Na něj jsme veřejně pozvali všechny zájemce o programování a Livesport a povídali jsme si s nimi, jak u nás pracujeme. Když se nás šéf týmu ptal, kdo by tam chtěl mluvit, nikomu se moc nechtělo. Jsme programátoři a nejsme na mluvení před lidmi zvyklí. Vyšlo to ale výborně a lidem se to líbilo. Mě to bavilo a doufám, že uděláme za pár měsíců další. A pak mi taky udělal radost ten můj roční úkol, protože díky tomu se nám ulevilo všem, kteří na aplikaci pracujeme.

Jan Hnizdil

Dnes nejčtenější

.