QR Platba. Aplikace, která omylem neselhala.
Před pár lety, jsem udělal aplikaci, která neměla vůbec důvod existovat. Moc toho neumí a to co umí (generovat platební QR kód), umí každá bankovní aplikace. I tak slaví svůj 5. rok se stabilní uživatelskou základnou čítající 1 100 uživatelů. No dobře, není to úplně úspěch, ale aplikace žije.
Důvod, proč jsem se rozhodl napsat ódu na QR Platbu je, abych se podělil o zkušenosti, které jsem díky tomu získal. Většina vývojářů co znám, totiž vlastní veřejnou aplikaci nemá. Prostě jim to nestojí za tu práci nebo nemají inspiraci. Co chci říct je, že i když je appka poměrně skromná, umožnila mi vyzkoušet si, jaké to je, vydat aplikaci mezi lidi, udělat jí PR a reagovat na feedback uživatelů.
Ono totiž vydat aplikaci interně do firmy, kde jí mají zaměstnanci nařízeno používat, je o něco jednodušší. Nemůžou jí prostě opustit, a tak vás nic netlačí udělat jí víc sexy. Kromě vlastního svědomí samozřejmě.
Tehdy jsem ve firmě dělal aplikaci na Android, byla to pro mně premiéra, stejně jako pro ten podnik. Zvolil jsem Xamarnin jako framework, protože už umím C# a jsem líný učit se nový jazyk a IDE. Internet mě od toho odrazoval, ale moje lenost nezná meze...
Dodělal jsem první verzi pracovní aplikace, měl jsem všechno čerstvě v hlavě. Byl na to čas, a tak jsem vlastní QR Platbu napsal už docela rychle.

První věc co mi aplikace dal,a byla architektura MVVM. Furt jsem o tom četl a nějak jsem si říkal, že aplikaci udělám lépe - přirozeně. Zkusil jsem si malé MVVM a přišel na to, že to řeší spousty problémů co jsem měl s GUI. Prostě je jednodušší udělat živé GUI, které se neseká. Nikdy potom už jsem u nativních aplikací nedělal jinak.
Nemluvě o dalších výhodách MVVM, které jsem v té době nedokázal ocenit.
Do toho okamžiku, jsem byl spíš takový bastlíř. Nějak jsem něco psal, ale nebyl v tom řád. Vedlejší efekt dodržování architektury je totiž přehlednější kód, u kterého vám odpadá přemýšlení nad tím jestli máte soubor založit tam nebo jinam, co v něm má být, jak se má jmenovat, co má umět... Taky se kód stává pochopitelný(ější) pro ostatní vývojáře.
Něco, co bych se v zaměstnáních, kde jsem do té doby pracoval, nedozvěděl. Pracoval jsem pro výrobní závody, kde se spíš čeká nějaký rychlý výsledek a na formální stránku už není tolik prostoru. Až později jsem narazil na tým, který mi ukázal, že správná architektura a dodržování konvencí může vést k opravdu kvalitnímu kódu. Něco, co se dá číst i za pár let.
Dalším krokem bylo aplikaci vydat. Tedy nahrát jí Google Play. Postup je trochu složitější než uvnitř firem. Tam aplikaci hodíte někam na síť a nějak to zkopírujete do klientských počítačů. Google vyžaduje vygenerování certifikátu a podepsání aplikace. Poté je třeba dodat popis, nahrát správně obrázky a nechat aplikaci projít automatickým testem. Distribuce aplikace se provádí skrze aktualizace.
QR Platba začala sbírat uživatele. Ona totiž neměla konkurenci a zároveň jsem zvolil dostatečně jasný název, takže se brzo objevila v top výsledcích. Přišel ale největší kámen úrazu. Uživatelé. Asi si to dovedete představit, každý má pocit, že za aplikací stojí společnost, která vám dluží určitou kvalitu.

Například tato recenze. Vaše appka funguje na tisíci zařízeních s různým rozlišením, ale stejně nakonec přijde toto:

Diplomatické odpovědi nejsou moje silná stránka...
Naštestí přišel i pozitivní feedback, to vás už dokáže namotivovat. Aplikaci jsem různě vylepšoval, odpovídal na maily a zjistil, že jí lidé používají místo platebního terminálu. Trochu jsem doufal, že jí někde zahlédnu v okolí, ale nestalo se. Jedním z důvodů, proč jsem to celé dělal je, že platba QR kódem mi přišla jako dobrá cesta pro podnikatele, kteří stále (bože proč?) neberou karty. Nebo aspoň stánky...fakt mě nebaví nosit hotovost.

Dokonce jsem od někoho dostal darem asi 200,- !
Nakonec jsem aplikaci předělal do nového .NET MAUI....a smazal jsem všem uložená data. Prostě špatná aktualizace. Jejda. Moje hodnocení se dlouho dostávalo zpět. Netušil jsem totiž, že aplikaci někdo bere zas tak vážně. Pozitivní feedback přichází pomalu nebo vůbec, ale ten negativní....Chvíli jsem myslel, že mě někdo venku zabodne. Kromě recenzí jsem dostával i výhružné maily. "Proč se mi smazal seznam bankovních účtů!"
Dostal jsem lekci o zpětné kompatibilitě a nutnosti kvalitního testování.
Další věc, co jsem musel řešit, byly požadavky od Googlu a Microsoftu. Microsoft mě neustále nutil do updatů .NET a Google zase do podpory nových Androidů. Pochopitelně.

Pak chcete udělat aktualizaci, ale Visual Studio vám napíše, že máte smůlu a musíte pro tenhle Android použít novější .NET a ten vám bude fungovat jenom v novějším studiu. A už to jede. Do aplikace se nedostane žádná nová funkce, ale 2 dny se jí snažíte alespoň zkompilovat.
Tak tady to máte: Malá aplikace, bez potenciálu, mě zaměstnala na několik let. Udělala ze mě lepšího programátora a rozšířila moje dovednosti. Kromě toho, to nevypadá úplně blbě na životopisu. Nedávno, jeden můj známý, doporučil aplikaci jednomu jeho zákazníkovi při výpadku platebních služeb. Aniž by tušil, že je moje. To taky potěší, prostě něco co jsem udělal, někomu někde pomůže. Je to trochu zvláštní, protože můj software používají stovky, možná i tisíce lidí v různých podnicích, kde jsem pracoval, ale tohle je tak nějak víc osobní. I když jde jenom o trapný QR kód.
Takže bych to doporučil každému. Prostě něco napsat, sebevětší zbytečnost a vypustit to mezi lidi.
A co dál? Google má zase požadavky na aktualizace a neustále mi vyhrožuje. Od mojí poslední aktualizace uběhla docela dlouhá doba a já se mezitím musel věnovat jiným věcem. Dost jsem se toho za posledních 5 let naučil a nejradši bych celou appku předělal do lepší architektury a dodal jí i pro iOS, ale popravdě na to nemám čas ani náladu. Byl by to taky už třetí předěl.
Uvidíme, mám ještě chvíli na rozmyšlenou než mě přijde Google popravit...
