SDK (Software Development Kit) je sada nástrojů a knihoven pro vývoj aplikací pro konkrétní platformu. Podle Stack Overflow (2025) může správný výběr SDK a frameworků pro mobilní vývoj zkrátit dobu vývoje o 40–60 %. IT Sectr s 10 lety zkušeností vyzkoušel desítky SDK a sdílí praktické zkušenosti s výběrem optimálního stacku.
Hlavní body
UI frameworky určují vzhled a chování uživatelského rozhraní. UIKit je hlavní framework pro iOS, používaný od roku 2008 a podporující všechny verze iOS. SwiftUI je modernější deklarativní framework představený v roce 2019. Výběr UI frameworku je prvním rozhodnutím při zahájení mobilního vývoje.
SwiftUI používá deklarativní přístup: popíšete, jak má rozhraní vypadat, a framework spravuje aktualizace. SwiftUI snižuje množství kódu pro jednoduché obrazovky 2–3krát ve srovnání s UIKit a automaticky podporuje tmavý režim, Dynamic Type a přístupnost.
UIKit je imperativní framework s jemnějším ovládáním. UIKit zůstává volbou pro složitá vlastní rozhraní a aplikace podporující iOS 12 a starší. Mnoho produkčních aplikací používá hybridní přístup: UIKit pro složité obrazovky, SwiftUI pro nové funkce.
Jetpack Compose je deklarativní UI framework od Google pro Android, podobný SwiftUI. Compose používá kód Kotlin místo XML, což urychluje vývoj a snižuje počet chyb. Je kompatibilní se stávajícími aplikacemi založenými na View prostřednictvím AndroidView a ComposeView.
Jetpack je sada knihoven Android zahrnující Jetpack Compose, Navigation, Room, WorkManager a další. Jetpack řeší běžné úkoly vývoje Android — od navigace po úlohy na pozadí — prostřednictvím jednotného API se zpětnou kompatibilitou.
Příklad jednoduché obrazovky v Jetpack Compose:
@Composable
fun Greeting(name: String) {
Column(
modifier = Modifier.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Hello, $name!",
style = MaterialTheme.typography.h4
)
Button(onClick = { /* handle click */ }) {
Text("Click me")
}
}
}
Multiplatformní SDK pro mobilní vývoj umožňují psát jednu kódovou základnu pro iOS a Android. Výběr multiplatformního SDK může ušetřit 30–50 % rozpočtu na vývoj, ale vyžaduje kompromisy ve výkonu a přístupu k nativním API.
| Vlastnost | Flutter (Dart) | React Native (JavaScript/TypeScript) | Xamarin (.NET) |
|---|---|---|---|
| Vykreslování | Vlastní engine (Skia) | Nativní komponenty (Bridge) | Nativní komponenty |
| Výkon | Vysoký (60–120 FPS) | Střední (závisí na Bridge) | Vysoký (nativní kompilace) |
| Hot Reload | + (méně než 1 s) | + (s Fast Refresh) | + (omezený) |
| Platformy | iOS, Android, Web, Desktop | iOS, Android, Web, Desktop (Electron) | iOS, Android, Windows, macOS |
| UI komponenty | Material + Cupertino | Nativní + knihovny třetích stran | XAML + Nativní |
| Popularita | Vysoká (rostoucí) | Velmi vysoká | Střední (klesající) |
| Nejlepší použití | MVP, startupy, designové systémy | Aplikace s jednoduchým UI, JS týmy | Enterprise, ekosystém Microsoft |
Flutter od Google poskytuje lepší výkon díky vlastnímu vykreslovacímu enginu Skia. Flutter je ideální pro projekty s bohatými animacemi a vlastním designem. React Native je vhodnější pro týmy se zkušenostmi s JavaScriptem a pro aplikace s jednoduchým rozhraním.
Kotlin Multiplatform Mobile (KMM) je alternativní přístup, kde se sdílený kód píše v Kotlin, zatímco UI je nativní. KMM umožňuje sdílení obchodní logiky, sítě a modelů mezi iOS a Android, přičemž zachovává nativní UX každé platformy. Je to volba IT Sectr pro enterprise projekty.
Ionic a Apache Cordova používají WebView pro vykreslování. Přístup WebView poskytuje horší výkon a UI, ale umožňuje webovým vývojářům používat JS/HTML/CSS. Vhodné pro jednoduché obalové aplikace nad webovými stránkami.
Vkládání závislostí (DI) je vzor, kde jsou závislosti předávány objektu zvenčí. V mobilním vývoji DI frameworky automatizují vytváření a vkládání závislostí, díky čemuž je kód lépe testovatelný a udržovatelný.
Dagger je nejoblíbenější DI framework pro Android, který používá generování kódu. Dagger/Hilt je oficiální DI knihovna Google pro Android, postavená na Dagger. Hilt zjednodušuje nastavení Dagger a automaticky se integruje s komponentami Jetpack.
Koin je DI framework pro Kotlin bez generování kódu. Koin se snadněji nastavuje, ale při inicializaci běží pomaleji kvůli chybějícím kontrolám v době kompilace. Vhodný pro malé projekty, kde je rychlost nastavení důležitější než výkon.
Příklad nastavení modulu v Koin:
val appModule = module {
single { ApiService() }
factory { Repository(get()) }
viewModel { MainViewModel(get()) }
}
fun main() {
startKoin {
modules(appModule)
}
}
Swinject je DI framework pro Swift s jednoduchým API. Swinject podporuje vkládání přes konstruktor, vkládání přes vlastnost a vkládání přes metodu prostřednictvím Service Container. Integruje se s UIKit a SwiftUI přes SwinjectStoryboard a SwinjectAutoregistration.
Výběr DI frameworku závisí na platformě a velikosti projektu. Pro Android projekty IT Sectr doporučuje Hilt, pro iOS — Swinject, pro Kotlin Multiplatform — Koin kvůli minimální režii konfigurace.
Síťové knihovny pro mobilní vývoj zjednodušují práci s HTTP požadavky a REST API. Retrofit (Android/Kotlin) je nejoblíbenější HTTP klient pro JVM s typovanými rozhraními. Automaticky serializuje/deserializuje JSON přes OkHttp a převodníky (Gson, Moshi, Kotlinx Serialization).
Alamofire je standardní HTTP klient pro iOS/macOS ve Swift. Alamofire poskytuje řetězitelné API, automatickou správu relací, validaci odpovědí a zpracování chyb. Základní HTTP požadavek v Alamofire vypadá jako jeden řádek kódu.
Ktor Client je multiplatformní HTTP klient od JetBrains. Ktor běží na JVM, iOS, macOS, Windows, Linux a JavaScript s jednotným API. Skvělý pro KMM projekty, kde sdílený kód musí fungovat na obou platformách.
RxSwift a RxJava jsou knihovny pro reaktivní programování. Rx knihovny se používají pro složité asynchronní operace — kombinování síťových požadavků, debounce, throttle, slučování datových toků. Combine je moderní alternativa od Apple pro Swift.
Knihovny pro načítání obrázků v mobilním vývoji řeší tři úkoly: asynchronní načítání, ukládání do mezipaměti a zobrazení. Glide je standard pro Android, používaný v milionech aplikací. Podporuje GIF, video snímky, animace, automatické ukládání do mezipaměti v paměti a na disku.
Coil (Coroutine Image Loader) je moderní alternativa Glide pro Kotlin. Coil je při prvním načtení o 30 % rychlejší než Glide a pracuje s coroutines (suspend functions, Flow). Používá OkHttp pro síť a podporuje SVG, GIF ihned po vybalení.
Kingfisher je přední knihovna pro iOS vytvořená jedním vývojářem. Kingfisher podporuje ukládání do mezipaměti, zástupné symboly, indikátory průběhu, zpracování chyb a přechodové animace. SDWebImage je starší, ale stále populární alternativa s velkou komunitou.
Lottie je knihovna pro vykreslování animací After Effects v reálném čase. Lottie přehrává vektorové animace ze souborů JSON bez ztráty kvality a s minimální velikostí souboru. Podporuje přepínání barev, rychlost, průběh a opakování.
Pro vývoj mobilních her se používají specializované SDK a enginy. Unity je nejoblíbenější herní engine pro mobilní platformy, na kterém běží více než 50 % všech mobilních her. Používá C# a podporuje iOS, Android, WebGL a desktop.
Unreal Engine se zaměřuje na fotorealistickou grafiku. Unreal Engine 5 používá Nanite (virtuální geometrie) a Lumen (dynamické osvětlení), poskytující konzolovou kvalitu na mobilních zařízeních. Vyžaduje výkonnější hardware a zkušenosti s C++.
SpriteKit a SceneKit jsou nativní 2D a 3D enginy od Apple pro iOS/macOS. SpriteKit je optimalizován pro 2D hry s minimální spotřebou baterie a je ideální pro příležitostné hry. SceneKit zpracovává 3D scény s fyzikou, osvětlením a animací.
Metal (Apple) a Vulkan (multiplatformní) jsou nízkoúrovňová grafická API. Metal poskytuje maximální výkon na zařízeních Apple, Vulkan na Androidu a desktopu (podobné DirectX 12 pro Windows). OpenGL ES je zastaralý, ale stále se používá pro starší zařízení.
Často kladené otázky
Začněte s UIKit, protože je to základ vývoje iOS. UIKit se používá v 90 % stávajících iOS aplikací a jeho znalost je nezbytná pro údržbu staršího kódu. Po UIKit se učte SwiftUI — postupně se stává standardem pro nové projekty.
Flutter poskytuje lepší výkon a jednotné UI na obou platformách. React Native vítězí díky obrovskému ekosystému JavaScript. Pokud má tým zkušenosti s JS — zvolte React Native. Pokud začínáte od nuly — zvolte Flutter. Pro enterprise projekty s nativním UI — zvolte KMM.
Pro projekty do 5 obrazovek je DI framework zbytečný — můžete použít Service Locator nebo ruční vkládání. Když projekt naroste na 10+ obrazovek, DI se stává nutností — zjednodušuje testování a zabraňuje zamotaným závislostem.
Pro Android: Glide (univerzální) nebo Coil (pokud projekt používá Kotlin Coroutines). Pro iOS: Kingfisher (moderní) nebo SDWebImage (prověřená). Pro multiplatformní projekty: Coil (podporuje Android + iOS přes KMM).
Pro 2D hry a příležitostný segment — Unity (lepší výkon na slabších zařízeních). Pro AAA grafiku na špičkových zařízeních — Unreal Engine 5. Unity se snadněji učí, Unreal vyžaduje zkušenosti s C++ a silnější tým.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.