Mobilní aplikace Betsys: Vítejte v řemeslné dílně 

K mobilnímu vývoji přistupujeme trochu jinak než většina softwarových firem na trhu. Máme na něj čas a dáváme si na něm záležet – a to stejné se dá říct o výběru nových členů do našich mobilních týmů. Pokud vás zajímají informace o produktu, u kterého kvalita dostane vždycky přednost před kvantitou, čtěte dál. 

Naše mobilní začátky 

Už je to skoro deset let, co jsme jako mladá firma ještě pod názvem Greep začali vyvíjet sázkovou mobilní aplikaci. Od začátku nám bylo jasné, že nepůjde jenom o appku typu IDOS nebo kalkulačka, do které člověk chodí kvůli jedné nebo dvěma hlavním funkcím. Sportovní sázení je oblast stejně dynamická jako sporty, o které v ní jde, a je jen logické, že zákazníci budou nároční na funkcionalitu – přeci jen jde o jejich peníze. 

Mobilní aplikaci má Betsys v portfoliu už od roku 2013. Ve svých začátcích byla jen doplňkem dalších služeb naší softwarové platformy, ale v roce 2018 nastal zlom, po kterém popularita mobilních aplikací začala prudce růst, a tak se i sázky postupně přesunuly z kanceláří do online prostředí. Dnes probíhá 65 % sázek právě přes mobilní aplikace. 

Naším cílem je, aby Betsys aplikace byla schopna pokrýt všechny online i offline požadavky sázkových kanceláří. Aby bylo snadné nastavovat kurzové sázky i live sázky, streamovat video přenosy a bleskově vyhodnocovat výhry. Aby si klient mohl podle potřeby přidávat marketingové moduly pro vtažení zákazníka do hry nebo zavést chat s možností vkládání tiketů. Aby šlo s pomocí smartphonu skenovat tikety a generovat čárové kódy pro offline sázení. A funkcí neustále přibývá. 

Aplikace z pohledu klienta 

Klient, tedy sázková kancelář, od nás potřebuje hlavně možnost spravovat si ty části aplikace, které na denní bázi operativně mění. Bude si chtít konfigurovat zobrazení a pořadí položek v uživatelském menu, ovlivňovat zobrazení nabízených sportů nebo posílat marketingová sdělení a rozdílné push notifikace pro nepřihlášené a přihlášené hráče. 

Oproti tomu, co je standard, se u naší aplikace dá přizpůsobit vzhled uživatelům na míru. Náš klient může téměř okamžitě zobrazit preferované události a doručit relevantní obsah cílovým skupinám uživatelů, které si sám definuje. Dává mu to mimořádný manévrovací prostor, co se týče marketingu a personalizované komunikace. 

Jak to vidí uživatel 

Při vývoji klademe důraz na jednoduché ovládání a maximální komfort pro hráče. Snažíme se o plně intuitivní prostředí, kde má uživatel všechno hezky po ruce, což je vzhledem k objemu informací nesmírně složitý úkol. UX designeři našich partnerů se svým grafický týmem ladí vizuální stránku aplikace, aby byl průchod pro uživatele co nejhladší. Na nás je potom dodat technické řešení. 

Co chce od aplikace samotný uživatel? Některé základní funkce už zazněly – příprava a tvorba elektronických tiketů, pre-match i live sázky (tedy sázení před zápasem či závodem a v jeho průběhu), scoreboard pro kontrolu, co se zrovna děje v zápase, napojení na platební bránu, seznam provedených transakcí i Maxikombi sázky, kde si může rozložit svůj peněžní vklad mezi různé tipy. 

Během let jsme ale taky napsali velké množství funkcí, které pomáhají hráče do hry ještě více vtáhnout. Zabudovali jsme videopřenosy a trackery – jednoduché animace, které znázorňují průběh hry v reálném čase. Hráči taky můžou dostávat okamžité oznámení o změnách a výsledcích zápasů a případně využít možnost nechat si předběžně vyplatit výhru (tzv. cashout), tedy poníženou částku ještě před vyhodnocením sázky. 

Vedle samotného sázení aplikace nabízí i další možnosti zábavy, jako je sázení na e-sporty, virtuální sporty a BetGames. Zároveň máme na paměti i bezpečnost aplikace a ochranu samotného hráče, takže kromě toho, že chráníme přístup 

PIN kódem (potažmo face ID nebo fingerprint ID), jsme do aplikace přidali i možnost nastavit si svoje hráčské limity pro prevenci závislosti.

Výkon při vysoké zátěži 

Technologické výzvy, kterým čelíme, se týkají hlavně zpracování velkého množství dat v reálném čase. Aplikace musí umět uživatelům zobrazit všechna relevantní data okamžitě a správně. U live sázek je to ještě palčivější – bookmakeři mění kurz během zápasu a aktualizace se do koncového zařízení musí dostat do jedné vteřiny. 

Dříve, kdy probíhalo v jeden okamžik třeba 15 zápasů, to nepředstavovalo takový problém. Dnes jich ale probíhají stovky a aplikace musí zpracovat více než 24.000 updatů dat za minutu. Abychom přenos dat co nejvíce usnadnili, agregujeme je do skupin a v intervalech 0,3 sekundy je přes websockety posíláme do grafického zobrazení. Používáme k tomu knihovnu Socket.IO.

Jaké používáme technologie 

Náročné početní operace během procesu sázení (především u kombinovaných sázek) řešíme na úrovni aplikace, abychom omezili provolání backendových služeb. Sledujeme metriky volání v Grafaně a následně optimalizujeme počet provolávání API, případně navrhujeme i jejich optimalizace. 

Ve špičkách aplikace zasílají na backend velký objem requestů, které musí být řízené tak, aby nepřetěžovaly server. Jedná se zhruba o 55.000 requestů za minutu. Aplikaci na platformě iOS využívá více než 75.000 unikátních uživatelů měsíčně, 25.000 denně. U Androidu je to samozřejmě několikrát víc – 200.000 měsíčně a 70.000 denně.

Škálovatelnost a modernizace 

Protože musíme být schopni bezchybně odbavit tolik požadavků v maximální špičce, zajímá nás škálování výkonu a stabilita systému. Z toho důvodu nemůžeme provádět radikální změny úplně ze dne na den. Modernizace je pro nás ale taky zásadní. U iOS přecházíme z Objective C na Swift a něco podobného platí pro Android, kde se orientujeme na Kotlin. Cílem do budoucna je využít Kotlin/Native pro sdílení zdrojového kódu mezi platformami.

Původní funkcionalitu aplikace zachováváme a zároveň zvyšujeme její škálovatelnost. 

Na iOSu plánujeme implementaci knihovny SnapKit umožňující lepší správu layoutů a obecně celé grafiky. Dále přecházíme z vláken na coroutine, takže očekáváme zjednodušení práce s asynchronními funkcemi.

V neposlední řadě se taky stále více zaměřujeme na CI/CD procesy včetně automatizace testování. Naším cílem je pokrýt všechny důležité části aplikace automatickými testy, což nám umožní vydávat nové verze aplikace rychleji a s minimem chyb.

Srozumitelnost nade vše 

Není úplně běžné, aby mobilní vývojář mohl každou napsanou funkci ladit tak dlouho, dokud s ní není spokojený. Kdo někdy zažil práci na aplikaci, která musela být za měsíc napsaná, vyladěná a odbavená, aby na jejím místě hned přistál nový projekt, asi ví, o čem je řeč. 

Aplikaci už jsme věnovali víc než 100 tisíc hodin. Přitom se nedá říct, že by se z práce na ní stala monotónní rutina. Staví před nás stále nové výzvy a problémy – už jen proto, že technologie, na kterých je postavená, se stále hýbou dopředu. Přizpůsobujeme se, ale zároveň je pro nás zásadní, aby náš kód zůstal čitelný a srozumitelný, takže dbáme na code standardy pro obě platformy. Děláme to jak pro sebe, tak pro nově příchozí developery, kteří se pak snáz v kódu zorientují. 

Jak nejlépe shrnout mobilní vývoj v Betsysu? Každý sprint vám ukrojí část práce, kterou můžete s úlevou považovat za hotovou, ale taky budete mít prostor pro kontinuální změnu, zdokonalování a modernizaci. Dáváme aplikaci čas, který si zaslouží. 

Zní vám to jako něco, co byste chtěli zkusit?

Autor článku: Dita Fejlová (LinkedIn)

Sdílet:

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on linkedin
LinkedIn

Mohlo by se Vám líbit

Pokořili jsme Sázavu

Počasí nám v srpnu opravdu přálo a dlouho plánovaná vodácká akce na Sázavě dopadla na výbornou.  V pátek jsme se utábořili v Týnci nad Sázavou,

Betsys trends 2021

Betsys a trendy ve sportovním sázení

Sázení je mezi mnohými fanoušky sportu populární způsob, jak si zpestřit zážitek ze hry – a právě sportovní sázky tvoří drtivou většinu nabídky klientů Betsysu,

Betsys & Recruitment Academy Awards 2021

V rámci Recruitment Academy Awards 2021, oceňující nejlepší společnosti na českém trhu, které mění trendy v oblasti HR marketingu, se BETSYS podařilo, v tvrdé konkurenci,