Jak jsme vyvíjeli aplikaci pro Android
Podle posledních odhadů se počet inteligentních telefonů do roku 2020 více než zdvojnásobí a mělo by je využívat až 70 % populace. Drtivá většina lidí si postupně zvyká na řešení každodenních problémů prostřednictvím telefonu. A tak jsme si řekli, že která firma pro svůj produkt nemá mobilní aplikaci, jako by nebyla.
Rozhodli jsme se tedy pro jeden z našich produktů, kterým je CLUBSPIRE (rezervační systém pro sportovní a relaxační centra), takovou aplikaci vyvinout. Každá firma chce přeci svým zákazníkům poskytnout kvalitní služby a aplikace, prostřednictvím které si klient může kdykoliv a odkudkoliv zarezervovat nebo naopak zrušit svou lekci, k tomu neodmyslitelně patří. Vytvořili jsme tedy nativní mobilní aplikaci pro platformu Android, která komunikuje s CLUBSPIRE napojením na jeho komunikační rozhraní. Jaké technologie jsme použili a jak nám to šlo? Stručný popis si můžete přečíst na následujících řádcích. Ten detailní by totiž vystačil na desítky stran.
Náš klient, náš pán
Nápad, že nakódujeme aplikaci, nevznikl jen tak z nudy. Podněty týkající se jejího potenciálního využití přicházely od klientů stále častěji, a tak jsme se do toho pořádně obuli. Jako naši výhodu jsme viděli také to, že konkurence podobnou aplikaci zatím nemá, a tak můžeme zase v něčem hrát první housle.
Rozhodli jsme se pro operační systém Android, který má otevřený zdrojový kód a operační systém založený na linuxovém jádře, které zajišťuje zabezpečení systému jako celku, správu paměti, procesů, přístup k síti a ovladačům veškerých vnitřních senzorů a komponent. Dalším důvodem bylo také to, že Android je mezi platformami pro mobilní telefony nejrozšířenější.
V prvním kroku bylo potřebné definovat, co by měla naše aplikace umět. Vycházeli jsme přitom z toho, jaké funkce má webový klient CLUBSPIRE. Funkčních požadavků nakonec vypadlo tolik, že jsme se rozhodli vývoj rozdělit na dvě etapy.
Návrh softwaru je složitý proces, kde má každé rozhodnutí vliv na konečnou kvalitu a výkon aplikace. Je proto nutné architekturu aplikace dobře promyslet do nejmenších detailů, aby vznikl most mezi technickými a obchodními požadavky, který povede k bezchybné implementaci v softwaru. Zároveň musí vývojář myslet do budoucna. Systém musí být schopný přizpůsobovat se budoucím změnám, a to ať už z naší strany nebo i z hlediska požadavků klienta. Využili jsme Clean architekturu, jejíž nejsilnější stránkou je, že produkuje systém, jehož obchodní logika je nezávislá na implementačních detailech. Díky tomu je tato logika testovatelná bez použití telefonu.
Použité technologie
Vývoj zaměstnal na téměř 400 hodin dva naše vývojáře. A na čem že jsme celkem 29 910 řádků kódu postavili?
Jak mnozí jistě vědí, architektura operačního systému Android obsahuje celkem pět vrstev, které pracují jak samostatně, tak i mezi sebou. Pro vývojáře je pak nejdůležitější vrstva Application Framework, která umožňuje přístup k velkému počtu služeb, a které mohou například zpřístupňovat data v jiných aplikacích, prvky graficko-uživatelského rozhraní, používat hardware, nastavovat alarmy nebo spouštět aplikace na pozadí.
Jádro aplikace tvoří komunikace se serverem CLUBSPIRE, který jí nabízí data. Z hlediska jednoduchosti použití a výkonu jsme ke komunikaci s API serverem využili knihovnu Retrofit a implementaci knihovny ReactiveX – RxJavu. V době, kdy jsme s touto technologií začali pracovat, byla RxJava ještě celkem novinka a nebyly k dispozici zrovna kvanta dokumentace. Hodně věcí jsme se tedy učili za pochodu, ale žádné větší problémy naštěstí nenastaly.
Ve chvíli, kdy nějaká část systému potřebuje data a čeká, až se k ní dostanou, je dobré pracovat s DI frameworky, které zpřehledňují kód a dělají jeho obsah čitelnější, což je v případě velkých projektů vcelku dost potřeba. Když se totiž po čase ke kódu vrátíte nebo se budete snažit zasvětit do něj někoho jiného, je dobré si práci usnadnit právě tím, že nebudete muset znovu luštit, co ten kód vlastně dělá. Pro tento účel jsme využili Dagger 2.
Důvěřuj, ale prověřuj
Je moc hezké si něco promyslet a potom doufat, že to poběží podle plánu. Jistější ale je průběh práce testovat. A tak proběhly tři druhy testování. Prvním z nich byly unit testy, které jsme si sami napsali a testovali na nich business logiku. Následovaly instrumentální testy neboli testy uživatelského rozhraní za pomoci proxy serveru ApiAry, který jsme využili k vytvoření Mockserveru. A posledním krokem je právě probíhající akceptační testování u samotných klientů. Zároveň s pomocí ApiAry do budoucna plánujeme testovat i samotné Clubspire API, abychom si mohli být jistí, že je dokumentace aktuální a nevznikají chyby.
Aplikace, která není jen na okrasu
Jste psychicky vyčerpaní a potřebujete do žil nalít trochu endorfinů? Na to není nic lepšího, než poctivá lekce ve vašem oblíbeném fitku nebo odpočinek ve wellness centru. Máme upřímnou radost, že se nám podařilo z pouhého myšlenkového konceptu vytvořit něco reálného. Aplikaci, která klientům vybraných center usnadní správu jejich účtů a rezervací bez potřeby sedět u notebooku nebo počítače. Tak šup na to!