Rozhovory
17.12.2022
Tím Skillmea
Šimon Urbánek: Programování je pro mě něco jako pro malíře štětec
V dnešním rozhovoru nám chytrý programátor Šimon Urbánek prozradí, jak se dostal k práci iOS developera pro českou aplikaci Windy, která poskytuje interaktivní předpověď počasí po celém světě.
Zkus nám na začátek přiblížit svou práci.Momentálně pracuji jako iOS developer ve Windy.com (dále už jen Windy), kde mám na starost celý Apple ekosystém. To zahrnuje nativní prvky aplikace (např. iCoud synchronizace, lokalizace, notifikace), přes widgety, Apple watch aplikaci s komplikacemi (complications) až po automatizaci release cyklu. Jelikož Windy je multiplatformová aplikace, neobejdu se bez JavaScriptu, Typescriptu a znalostí Node backendu.
Jak ses k této práci dostal?Byla to docela náhoda, zapnul jsem si inzertní portál (myslím, že startupjobs), abych zjistil, jaké jsou přibližné požadavky na pozici iOS developera a nabídka od Windy mi připadala jako ušitá pro mě.
Řekl jsem si, že se jim ozvu (reagoval jsem jen na tuto jednu nabídku).
Pozvali mě na první pohovor, který dopadl super (teoretické otázky z programování), pak na druhý (úloha na programování), který jsem totálně pokazil. Role to nebyla těžká, ale v silně typovém jazyce jako Swift to byl trochu oříšek. To mě ale neodradilo a řešení úkolu jsem dopsal ve Swiftu a pak ještě v JavaScriptu, abych ukázal náročnost správného řešení v obou případech. Řešení jsem odeslal Windy a za několik hodin se mi ozvali a dohodli jsme se na polovičním úvazku s tím, že po dokončení školy nastoupím na full time. Z toho mi vyplynulo ponaučení, že firmám nejde o to, zda dokážete za x hodin naprogramovat simulovaný úkol, ale zda máte dostatek motivace se vypořádat s problémy.
Čemu ses před touto prací věnoval?Od střední školy jsem se věnoval programování webů. Měl jsem brigádu, kde jsem pracoval jako web developer a se spolužáky jsme vyvíjeli aplikaci pro psaní knížek. Byla to éra startupů, tak jsme se snažili prorazit. Ze startupu jsme se nestali milionáři (ale se zkušenostmi k nezaplacení), tak jsem pokračoval na vysokou školu ČVUT v Praze.
Vedle vysoké jsem pracoval jako JavaScript developer pro mobilní SAP aplikaci a vyzkoušel jsem pozici project manager vývoje. Při diplomové práci jsem se věnoval BlockChainu, který mě neoslovil.
Co mě ale oslovilo, byl moment, kdy jsem si koupil iPad s Apple tužkou. Bylo to neskutečné zařízení, které nahradilo všechny knížky, skripta a poznámkové bloky. Tedy skoro všechno. Jedinou věc, kterou iPad nahradit nemohl, byl můj papírový plánovač. Plánování perem na papír má své kouzlo a v Apple storu nebyla žádná aplikace, která by takovou funkcionalitu poskytovala. Tak začala moje cesta iOS developera. Zapsal jsem si kurz iOS programování (později iv pokročilé verzi), začal jsem dívat kurzy na internetu (i placené) a pomalu jsem začal pracovat na vizi.
O tomto projektu jsem mluvil i mým dlouholetým kamarádem a skvělým programátorem Ondřejem, jehož nápad také nadchl a pustil se do projektu se mnou (také předtím neměl s iOS zkušenosti). Takové věci se ve dvou prostě lépe táhnou, speciálně když vstupujete do neznámého.
Nám jsi prozradil, že máš v AppStore i vlastní aplikaci. Řekni nám o ní víc.Nazývá se Pencility, je to iPad aplikace, která mi nahrazuje ručně psaný plánovač. Spojuje prvky tradičního plánování perem na papír s výhodami online kalendáře a to do listu synchronizovaného mezi všemi Apple zařízeními. Aplikace je placená a našla si už stovky nadšených uživatelů, kteří stále přibývají. Neděláme žádnou reklamu, všechna stažení jsou přímo z Appstoru od uživatelů, kteří mají tentýž problém, se kterým kde Pencility začaly programovat.
[Šimonova appka Pencility]
Absolvoval jsi už nějaké kurzy od Skillmea, pokud ano jaké?Ano, už na střední škole jsem začínal s Webrebelem od Yablka. Bylo to naprosto úžasné, hlavně v začátcích, kdy se problematice ještě moc nerozumíte. Pamatuji si dodnes, jak jsem s učitelem informatiky vyřizoval slevový kód pro střední školy, protože v plné ceně jsem si to tehdy nemohl dovolit. To si neumíte představit, jak potom člověk vnímá každé slovo, aby z kurzu dostal maximum.
I v dnešní době jsou video kurzy pro mě zábavná forma učení (kdo, pár dní četl nějakou dokumentaci, pochopí). V práci používáme Svelte, takže když jsem viděl, že máte kurz, věděl jsem co bude můj večerní program. Následoval kurz o Vue.js a naposledy jsem koukal kurz o Figmě. Je to skvělý nástroj také pro vývojáře, když si potřebujete rychle nastínit obrazovky, před samotnou implementací.
Sázím, že sám doma vlastníš nějaké to jablíčko. Je pro tebe značka Apple lovebrandem?Mám rád filozofii Applu a technologie, které poskytuje vývojářům k vytvoření aplikaci. Uvedu konkrétní příklad synchronizace dat mezi zařízeními, která je již standardem. Pro synchronizaci potřebujete server, za který je nutno měsíčně platit (při větším počtu uživatelů to nejsou malé částky). To může být, ale problém, když jste začínající vývojář, který chce vydat aplikaci zdarma, nebo s one-time purchase. V Apple ecosystému lze nádherně použít iCoud, který celou logiku synchronizace vyřeší za vás (při použití core data, nebo document based aplikace).
Zmíním ještě jeden příklad a to je jeden kód “pro všechno”. Dnes už stačí napsat jednu aplikaci řekněme na iPhone. S malými UI úpravami bude perfektně fungovat i na iPadu a když funguje na iPadu bude fungovat i na všech M (1, 2) Macech. A to nemluvím o znovupoužitelnosti views a logiky mezi aplikací, widgety a např. hodinkami. Prostě nádhera.[Šimon Urbánek]
Jaké jsou tvé cíle a co tě udržuje stále motivovaným?Od malička mě bavilo vytváření nových věcí a programování je pro mě něco jako pro malíře štětec. Máte čisté plátno s nekonečnými možnostmi a je jen na vás, čím jej zaplníte. A když ještě vaši aplikaci používají lidé, kterým pomáhá, je to úžasný pocit.
Práce ve Windy je skvělá, protože píšu kód pro miliony, a ten adrenalin při releasech je jako droga. Mám tam velkou volnost (a také zodpovědnost) vést iOS development. Skvělé je, že když se firma věnuje jen jedné aplikaci, mám možnost si mezi prvními vyzkoušet nejnovější technologie, které ji posouvají vpřed.
Vedle práce jsem ale nezanevřel na Pencility (i když času je podstatně méně) a mám v plánu i další iPad aplikaci.[Šimon Urbánek]
Ovlivnila pandemie covidu nějakým způsobem tvou práci?Do Windy jsem nastupoval právě v covidovém období, takže když jsem něco potřeboval, musel jsem si vystačit se Slackem a videohovory, což je složitější, než se postavit a kolegu se něco zeptat v office. Ale asi nic jiného.
Na závěr můžeš našim čtenářům prozradit, co plánuješ do budoucnosti? Chystáš se zrealizovat i nějaké kurzy?Myslím, že jsem od programátorské komunity dostal hodně, a teď je na čase něco vrátit. Proto bych chtěl zrealizovat kurz, právě na vývoj nejen iOS aplikací, ale pro celý ekosystém ve SwiftUI. Být iOS vývojářem není snadná cesta, hlavně na začátku, ale stojí za to.