17. Jul 2023Android

Náš Android tech stack pro vývoj mobilních aplikací

V tomto článku se podíváme na některé technologie, které v GoodRequest denně používáme, aby byl náš vývoj pro Android efektivnější a alespoň o něco příjemnější.

Peter ŠulyAndroid developer

Technologický zásobník systému Android se neustále vyvíjí. Vývojáři používají k vytváření kvalitních aplikací celou řadu nástrojů a technologií od programovacích jazyků, jako je Kotlin, až po knihovny, jako je Jetpack Compose.

V GoodRequest přistupujeme k začleňování nových technologií do našeho vývojového procesu velmi selektivně. Chápeme, že nové technologie mohou být vzrušující, ale současně přinášejí určité výzvy. Raději se držíme technologií, o kterých víme, že odvedou dobrou práci. Tento přístup se nám v minulosti osvědčil a věříme, že se osvědčí i v budoucnu.
 

Programovací jazyk - Kotlin

Kotlin je výkonný programovací jazyk, který je plně kompatibilní s Javou a je oficiálně podporovaný společností Google pro vývoj v systému Android. Obzvláště se nám líbí jeho vylepšená syntax, stručnost, built-in null safety, funkce extension a data classes. Díky těmto vlastnostem je skvělou volbou pro vývojáře, kteří chtějí zlepšit čitelnost a udržitelnost svého kódu.

Kotlin vytvořil tým vývojářů ve společnosti JetBrains, která je známá tvorbou vývojových nástrojů, jako je IntelliJ IDEA. Krátce po prvním vydání jsme rozpoznali jeho kvalitu a začali ho používat. Aktuálně jsme organizátory jediné Kotlin User Group na Slovensku, kde se setkávají vývojáři, aby sdíleli své programátorské zkušenosti týkající se Kotlinu a jeho ekosystému.

Http klient – OkHttp

Téměř každá aplikace pro Android potřebuje odeslat nebo přijmout požadavek HTTP mezi mobilní appkou a backendem. Jednou z nejoblíbenějších knihoven mezi vývojáři, která tuto potřebu splňuje, je Retrofit. Retrofit je vysokoúrovňová abstrakce postavená na OkHttp, což znamená, že by se měl používat snáze. My jsme pozorovali přesný opak. Zejména kvůli nedostatečné flexibilitě (mapování mezi požadavkem a odpovědí) a použití anotací pro generování kódu jsme se rozhodli jít o úroveň níž a použít OkHttp s naším vlastním rozšířením parsing systémem JSON, který tyto nedostatky řeší. OkHttp má mnoho dalších užitečných funkcí (dekomprese gzip, ukládání do mezipaměti...) skrytých pod kapotou, takže se vývojář nemusí o vše starat ručně, pokud nechce. Tato knihovna je dlouhodobě podporovaná a její kvalita je léty prověřená, proto byla naší volbou číslo jedna.

UI Framework – Compose

Důležitým faktorem úspěchu mobilní aplikace je uživatelské rozhraní, které úzce souvisí s uživatelskou zkušeností. V současné době aktivně používáme na programování uživatelského rozhraní Jetpack Compose. Compose je moderní sada nástrojů UI, která nám umožňuje vytvářet aplikace pro Android pomocí reaktivního programování. Je to skvělá volba pro vývojáře, kteří chtějí pro své aplikace vytvářet moderní a poutavá uživatelská rozhraní. Compose jsme začali používat v jedné z jeho raných alfa verzí, kdy jsme si uvědomili, jak může zlepšit naši codebase a urychlit vývoj.

Jedním z hlavních důvodů našeho efektivnějšího vývoje pomocí Compose je přechod na model jedné aktivity s více composables. Logickým prvním krokem při přechodu z multi-activity modelu bylo použití nabízeného řešení –⁠ Jetpack Compose Navigation od Googlu. Během používání tohoto řešení jsme si uvědomili, že nám neposkytuje to, co jsme očekávali od moderní navigační knihovny (např. plnou kontrolu nad backstackem, předávání složitějších datových typů, jednoduchý deep-linking...). Přibližně ve stejné době jsme si všimli, že splnění těchto očekávání nemusí být složité, a tak jsme vytvořili vlastní navigační systém. V některých ohledech se podobá JCN, ale splňuje všechny naše požadavky mnohem jednodušeji. Kód má navíc ve srovnání s řešením od Googlu zlomek řádků.‍

Nástroje - Firebase

Firebase je balík mnoha užitečných funkcí, ale my používáme jen některé z nich, především Firebase Crashlytics a Firebase Cloud Messaging.

Firebase Crashlytics automaticky monitoruje, hlásí a poskytuje podrobné informace o selhání, včetně stack trace a stavu aplikace v době selhání. To nám může pomoct rychle identifikovat a opravit problémy v našich aplikacích. Bez něj bychom byli při analýze chyb zcela slepí. Firebase Crashlytics proto začleňujeme od začátku do každého projektu, abychom měli k dispozici potřebné poznatky pro zlepšení výkonu a stability aplikací.

Push notifikace umožňují aplikacím odesílat uživatelům upozornění, zprávy a další informace, i když aplikace není aktivně spuštěna, a zvýšit tak jejich angažovanost, případně se použijí v situacích, kdy je nutná časově omezená komunikace s klientem. Při vytváření efektivních oznámení push v našich aplikacích pro Android se spoléháme na službu Firebase Cloud Messaging.

Deployment – Bitrise

Bitrise je cloudová platforma continuous integration a continuous delivery (CI/CD), která pomáhá vývojářům automatizovat vytváření, testování a nasazování mobilních a webových aplikací. Díky uživatelsky přívětivému rozhraní a výkonným funkcím zefektivňuje Bitrise proces vývoje softwaru a pomáhá nám dodávat produkty rychleji. Kromě toho nabízí širokou škálu integrací s dalšími nástroji, jako jsou Bitbucket, GitLab a Slack, takže se dá snadno integrovat do stávajícího pracovního prostředí.

Ve společnosti GoodRequest jsme hrdí na to, že jsme schopni zvládnout širokou škálu projektů. Každý projekt je jedinečný a často vyžaduje jiný přístup k vývoji, proto máme zkušenost i s technologiemi Android Jetpack, byť je nepoužíváme každý den. Ať už pracujeme na jednoduché aplikaci, nebo na komplexním podnikovém řešení, máme zkušenosti a odborné znalosti potřebné k tomu, abychom díky výběru správného technologického balíčku dodali produkt nejvyšší kvality.

Zauijíma Vás náš iOS techstack pre vývoj aplikácií?

iOS

Náš iOS tech stack pro vývoj mobilních aplikací

Sebastian Mráz17 Jul 2023
Peter ŠulyAndroid developer