Převodník jednotek   –   verze 3.x.x

Asi rok jsem se Převodníku jednotek vůbec nevěnoval. Po vydání poslední dvojkové verze jsme s Oksim dále pracovali na projektu doEngine a řádném plnění studijních povinností…

Když už byl engine ve stavu praktické použitelnosti, přišlo na řadu jej řádně otestovat. Engine byl tvořen v duchu absolutního primitivismu, což mi umožnilo v něm během pár dní čistého času vytvořit mou první hru – Tap to Jump – většinu času zabralo vyplodit grafiku. Hra dokonce čistou náhodou vyšla na mé narozeniny. 🎉

Státnice se rychlým tempem blížily a engine se stal předmětem mé bakalářské práce. Nicméně, potřeboval jsem si před státnicemi trochu oddychnout, Převodník nabral za dobu své existence přes dva tisíce stažení, a tak jsem si řekl, že by nebylo na škodu ho po nově nabraných zkušenostech trošku zvelebit.

A tak jsem se pustil do díla a dne 27. 3. 2016 spatřila světlo světa verze 3.0.0. V té době již Androidům nevládl Holo Design, nýbrž Material Design, který jsem samozřejmě do nové verze zahrnul a aplikace se rozhraním přiblížila zase o nějaký kus dnešní verzi.

obr. 1   |   3.0.0
hlavní nabídka

S Material Designem přišlo nejen obarvení notifikační lišty a akčního panelu dozelena, ale také se objevil nový prvek – CardView. Ten jsem použil pro seznam kategorií v hlavním menu.

Podle mě se tento prvek prosadil hlavně díky Chytrým kartám Google a (nejen) Google ho momentálně používá téměř všude. Ani se tomu nedivím, jelikož vypadá opravdu pěkně a aplikacím dodává šmrnc.

V mezičase jsem se seznámil ještě s reklamním systémem AdMob, díky kterému jsem mohl do aplikace integrovat všemi lidmi milované reklamy. Asi nikoho nepřekvapí, že i mě reklamy lezou na nervy – kort ty vtíravé, které vyskakují při každé interakci s aplikací, případně ty, které zabírají 20 % plochy displeje a ještě jsou čistou náhodou umístěny v těsném okolí tam, kde má uživatel největší potřebu dotýkat se svého miláška… Na druhou stranu chápu důležitost reklam jakožto pro většinu vývojářů jediný přísun financí.

Nebudu nikomu nalhávat, že v době těsně před ukončením školy, pro mě nebyla lákavá představa toho, že by mi aplikace mohla sem tam vydělat nějakou tu kačku. Přesto jsem se ale nemohl smířit s tím, že by v aplikaci měly reklamy překážet, v horším případě někoho otravovat.

Zde se zrodila idea, že reklama bude v aplikaci ve formě notifikace. Z toho vyplynula idea další – a to, že uživatel bude moci všechny notifikace vypnout. Tento způsob reklamy už mi přišel fér. I s vědomím toho, že reklamu rozkliknou pouze skuteční podpořitelé.

Pro nastavení jazyka a zobrazení notifikací (O aplikaci, Vyzkoušej!Podpoř!) jsem využil tzv. dialogů – prvek, který se díky efektu ztmavení pozadí zobrazí jakoby nad aplikací (obrázek 2).

obr. 2   |   3.1.0
dialog Vyzkoušej!

Další úpravy se dotkly samozřejmě převodního rozhraní. Po stránce designové přibyla mimo jiné zelená rozdělovací linka, po stránce funkční nastala změna v převodu jednotek. Uživatel již nemusel mezi každým převodem klikat na tlačítko, jelikož se převod prováděl automaticky.

obr. 3   |   3.0.0
převodní rozhraní

V této verzi bylo ještě možné zadávat hodnoty do obou textových polí, přičemž aplikace převáděla hodnoty z právě vybraného pole. V další verzi jsem tuto možnost z jistých důvodů zakázal, takže nyní lze zadávat hodnoty pouze do horního pole.

Tlačítkem PROHOĎ se prohazují hodnoty i s vybranými jednotkami z horního do spodního pole a naopak.

Další novou funkcí, která Převodník obohatila, byla možnost nastavit zaokrouhlení převedených výsledků na určitý počet desetinných míst (od 1 do 30). Tím jsem se také zbavil exponenciálního zápisu čísel.

Den po vydání verze 3.0.0 vyšla verze 3.0.1, která opravovala některé drobné chyby. Pár dní na to jsem vydal verzi 3.1.0 s novými kategoriemi. Přibyly tak kategorie sílavýkon. Aplikace byla aktualizována a já se mohl dále věnovat psaní bakalářky a státnicím.

Třetí verze se ohřála v obchodě něco malinko přes rok. Před vydáním verze čtvrté jí mělo nainstalováno cca 10.689 uživatelů. Na to, že jsem aplikaci aktivně nikdě nešířil, znamenalo to pro mě veliký úspěch!

Odborněji…


Jelikož mi státnice z oboru informatiky ť ukaly na dveře, byla by ostuda, kdyby aplikace nesplňovala alespoň základní požadavky objektového programování. Takže tato verze už řešila například problém zbytečného přepočítávání převáděné hodnoty do všech jednotek v aplikaci.

Když jsem s vývojem pro platformu Android začínal, tak bylo vývojářské prostředí Android Studio teprve v plenkách. Do té doby bylo nativním nástrojem pro tvorbu Android aplikací vývojářské prostředí Eclipse, které jsem do této verze Převodníku používal. Prostředí to bylo celkem fajn, ale některé věci se v něm nedělaly tak snadno jako dnes v Android Studiu. Například integrace reklamního systému, obfuskace kódu anebo optimalizace bajtkódu pomocí nástroje ProGuard. Možná jsem ale jen ještě neměl patřičné znalosti…

Nicméně, pár uživatelů si stežovalo na přílišnou velikost aplikace – není se čemu divit, instalační balíček verze 3.1.0 měl úctyhodných 4,66 MB a na mém testovacím zařízení se starším Androidem byla velikost aplikace po nainstalování zhruba 20 MB! Mohla za to knihovna Google Play Services. Tato knihovna slouží jako hlavní API pro využívání většiny (ne-li všech) služeb Googlu. Jedna z nich je právě zmíněný reklamní systém. No a jelikož jsem nevyužíval nástroje ProGuard, který mimochodem umí i osekávat nevyužívaný kód, tak jsem měl v aplikaci integrovanou celou knihovnu Google Play Services a ne pouze její část zprostředkovávající reklamy.

Vyzpovídat se musím ještě z jednoho hříchu – v celé třetí verzi aplikace se přednačítaly reklamy ihned po spuštění aplikace, jak statické, tak i videoreklamy. 🐷 A vůbec nehrálo roli to, zda uživatel v notifikaci zaškrtl možnost Nezobrazovat. A už vůbec nehrálo roli to, zda byl uživatel připojen na Wi-Fi či mobilních datech. Když jsem si toho při vývoji čtvrté verze všiml, otestoval jsem, kolik MB „stojí“ načtení reklam. V průměru mě to vycházelo asi na 0,25 MB na jedno spuštění aplikace. Naprosto zbytečně! Divím se, že si toho za celý rok nikdo nevšiml, případně se o toto tajemstvíčko nepodělil.