Napsal jsem appku, abych si udržel přehled

Dominik Veselý
Feb 11 · 4 min read
Image for post
Image for post

Letos to bude osm let, co jsme založili Ackee. Moje role ve firmě se během těch let postupně proměňovala. V době, kdy jsme byli tři, jsem téměř všechno programoval sám. Dnes se moji kolegové (a už nás je přes šedesát) však děsí, že se vůbec do nějakého programování budu chtít pouštět. Přijde mi, že moje současná role v rámci firmy by nemohla být blíže všem těm klišé vtipům na téma, jak firmu zakládají a řídí ajťáci.

Je to tak. Doba je neúprosná a ze mě je teď manažer, obchodník, technický ředitel a občas i nákupčí kabelů pro celou firmu. Náplň mé práce snad nemůže být různorodější. Jsem ale moc rád, že mi z pracovního života nevymizela ani ta technická část. Zatím se v technologiích stále chytám, a to i přes to, že mí kolegové jsou na tom naštěstí mnohem lépe a v tomhle mě hravě strčí do kapsy. Každodenní odstup od práce s technologiemi osobně vnímám jako svou výhodu. Umím díky tomu nabídnout pohled ze širšího kontextu. Není to ale samosebou. Pořád se musím udržovat, zkoumat novinky a sledovat, co je nového. Kolegové se totiž občas přijdou na něco zeptat (nevím, jestli mě jen zkouší, nebo si opravdu myslí, že bych vážně mohl vědět něco k technologiím víc než oni) anebo hůř — musím reagovat přímo u klienta. A věřte mi, že ani v jednom z případů nechci být za blbce! :)

Hodně čtu a sleduji technologické novinky. Není to ale totéž jako mít vlastní zkušenost. Proto se snažím čas od času něco napsat. Během roku tak strávím jeden až dva měsíce programovací prací na klientských nebo interních projektech. Můžete hádat, z čeho mají kolegové větší radost. :) Není to mnoho, a i proto se věnuji teorii a čtení článků o novinkách nebo zajímavých řešeních. Od loňského WWDC, kde Apple představil SwiftUI, mě tento nový způsob psaní aplikací (nejen UI), s potenciálem stát se novým standardem, dost lákalo vyzkoušet.

Zrodil se nápad: východní či západní Berlín?

Co budu psát, jsem věděl téměř hned. Už asi tři roky jezdíme často pracovně do Berlína, kde jsme otevřeli pobočku. Zažil jsem tam nespočet nočních i denních procházek. Potvrdily mi, že je Berlín město, které je i po 30 letech od pádu zdi vizuálně velice nesourodé, a vliv hranice mezi jeho východní a západní částí je minimálně na architektuře dost znát. Občas (hlavně v místech okolo bývalé berlínské zdi) nám dělalo problém odhadnout, jestli jsme právě na místě bývalého východního nebo západního bloku. A pořád jsem říkal, že by to chtělo aplikaci, která mi jednoduše ukáže, zda jsem na východě nebo západě. Ideálně i s minimapou, kde jednotlivé hranice uvidím stejně jako svou polohu.

Náhled na to, jak appka vypadá a funguje.

Když už jsem měl nápad, co napsat, tak si stačilo počkat jen čtyři měsíce, než jsem si na to udělal čas. Zkrátka program na vánoční svátky byl jasný. Jednu velkou výhodu ta prokrastinace měla. Jak čas plynul, už nebylo SwiftUI tak strašně neprobádaný svět, už k němu existovalo relativně hodně podkladů. Jejich kvalita mě však utvrdila v tom, že dnes i programovací blogy jsou jedna velká SEO past vedle druhé. I blogposty skrývající se za honosné “definitive guides” obsahují pramálo informací. Většinou jsem narazil na mírně rozšířený příklad dokumentace okořeněný GIFem.

Moje aplikace měla být vlastně velice jednoduchá. Klasickým stackem, který používáme v Ackee, bych ji, i přestože už moc neprogramuju, měl napsanou za zhruba tři nebo čtyři hodiny se vším všudy. Mimochodem, naši seniorní vývojáři by to stihli i za půlku. Prostě neměl jsem v hlavě žádnou raketovou vědu. Přinášelo mi to však hořkosladký pocit — na jednu stranu jsem cítil jakési potěšení z neprobádaného, ale na stranu druhou zklamání z toho, že jsem věděl, že zdaleka neřeším nic světoborného. Přesto jsem se téměř u všeho dostal za hranice již zmíněných tutoriálů. Mám proto v plánu sepsat i nějaký techničtější kousek o svém projektu. Těšte se!

Čas strávený programováním jsem si sice neměřil, ale protože jsem všemožně experimentoval i s animacemi (na ty jsem byl vždycky vysazený), tak mi samozřejmě tvorba mojí appky ve SwiftUI trvala výrazně déle. Vůbec mi to ale nevadilo, protože jsem měl možnost vyzkoušet něco nového, něco co možná zase trošku změní to, jak v Ackee pracujeme.

Přestože mě projektík hodně bavil, ze samotného SwiftUI mám poměrně smíšené pocity. Jednu věc můžete napsat deseti různými způsoby, což bude vyžadovat opravdu silné guidelines a codestyle, naproti tomu se mi pro takovéto mikro projekty moc líbí práce se stavy i tvorba kompletní aplikační hierarchie. I během pár minut tak lze vytvořit opravdu funkční a pěknou aplikaci. Nedokážu si však představit psaní rozsáhlých aplikací, na kterých v Ackee běžně pracujeme. Ale k tomu se určitě rozepíšu více v již slíbeném techničtějším textu. Měl jsem radost, že jsem si mohl vyzkoušet něco nového. Nemusel jsem si o SwiftUI jen číst, ale na vlastní kůži jsem si zkusil i něco napsat. A tento svůj přístup learning-by-doing můžu jedině doporučit!

Protože když budete o věcech pouze mluvit, lidé z vás potom můžou mít srandu :)

Dominik Veselý

Written by

Software Architecture Expert, Co-Founder of @AckeeCZ. #ios #node #saas enthusiast. Lecturer at @FIT_CTU. Runner in the spare time.

Ackee

Ackee

We are software development enthusiasts cooking the best apps in Prague.

Dominik Veselý

Written by

Software Architecture Expert, Co-Founder of @AckeeCZ. #ios #node #saas enthusiast. Lecturer at @FIT_CTU. Runner in the spare time.

Ackee

Ackee

We are software development enthusiasts cooking the best apps in Prague.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store