
Zvýš atraktivitu svojej aplikácie: Vstavané hry v mobilných aplikáciách (embedded games)

9. Feb 2022
AndroidČo je Android Custom View? Android ako platforma ponúka viacero vizuálnych komponentov (ďalej len Views), ktorých úlohou je na obrazovku správne a na správnom mieste vykresliť pixely, ktoré tento View reprezentujú.
Dobrý View dobre vyzerá, je ľahko štýlovateľný, zohľadňuje obmedzenia/odporúčania frameworku a poskytuje jednoduché rozhranie pre programátora. Táto séria nám má pomôcť postupne sa ponoriť do tajov takých Views, ktoré sú nad rámec platformy, teda Android ako taký ich priamo neposkytuje. Takýmto Views hovoríme Custom Views.
Ako príklady si vieme predstaviť rozličné grafy, ekvalizéry, či navigačné a pomocné prvky ako sú indikátory stránok a podobne.
Táto séria je určená pre programátorov natívnych Android aplikácií (Java/Kotlin), ktorý ovládajú aspoň širšie základy Androidu a túžia po vedomostiach z oblasti písania vlastných vizuálnych komponentov. Jetpack Compose nebude súčasťou tejto série a spomínaný bude len okrajovo.
Myšlienková mapa - terminológia
Custom View potrebujeme vytvárať len vtedy, ak žiaden z dostupných Views, nie je dostačujúci pre naše potreby. Teda:
Pre vytváranie custom views môžeme nasledovať takúto myšlienkovú mapu. Teda ak:
Za špeciálny prípad vieme tiež pokladať prácu s ViewBinding a Kotlinom, kedy nám často môžu stačiť extension functions. Taktiež nás vo veľmi blízkej budúcnosti bude veľmi zaujímať JetPack Compose.
Aby náš Custom View mal dostatočnú silu a prípadne aby mohol byť zdieľaný so svetom. Mal by poskytovať aj nasledujúce vlastnosti:
Zoznam vie byť obrovský a niektoré zo spomenutých bodov nie sú nevyhnutné. Jednoducho chceme vytvoriť čím kvalitnejší a čím širšie využiteľný View.
Postupne si teda prejdeme všetkými spomenutými alternatívami. Pozrieme si ako vytvárať Compound ViewGroup, Custom ViewGroup aj Custom View. Budeme sa držať Best-Practices a pokúsime sa zodpovedať najklasickejšie otázky, ktoré sa s vytváraním týchto komponentov spájajú. Stay Tuned and Buckle Up!!!