TakéNative application, plně nativní aplikaceZákladní

Definice

Nativní aplikace je software vytvořený pro konkrétní operační systém nebo platformu, například iOS, Android, Windows či macOS. Používá jejich oficiální SDK, jazyky a rozhraní zařízení, takže může nabídnout vysoký výkon, přirozené ovládání a hlubokou integraci, ale často vyžaduje samostatný vývoj pro každou platformu.

Kategorie: Softwarový vývojAktualizováno

Co dělá aplikaci nativní

Nativní aplikace vzniká pro konkrétní běhové prostředí. Mobilní tým typicky píše iOS aplikaci ve Swiftu nebo Objective-C a Android aplikaci v Kotlinu nebo Javě; desktopový tým může mířit na Windows, macOS nebo Linux. Podstatné není jen programovací jazyk, ale vazba na platformní SDK, distribuční pravidla a očekávané chování rozhraní.

Nativní aplikace komunikuje přímo s funkcemi zařízení: kamerou, Bluetooth, notifikacemi, biometrikou, souborovým systémem nebo grafickým akcelerátorem. Vrstva prohlížeče nebo univerzálního runtime tu není hlavním prostředníkem. Díky tomu bývá snazší doladit odezvu, animace, práci na pozadí a chování při slabém připojení.

Cena za blízkost platformě

Nativní přístup přináší i organizační náklady. Dvě mobilní platformy často znamenají dvě codebase, dva releasové procesy a znalost dvou ekosystémů. Funkce musí působit stejně obchodně, ale technicky se implementuje podle pravidel dané platformy. Pro malý tým může být proto vhodnější webová aplikace, PWA nebo hybridní řešení.

Nativní aplikace také prochází obchodem s aplikacemi, podepisováním balíčku a schvalováním aktualizací. Uživatel získá ikonu, integraci do systému a často lepší důvěru, ale oprava chyby se nemusí dostat ke všem okamžitě. Rozhodnutí tedy není jen technické, ale i produktové: záleží na požadované kvalitě UX, rozpočtu, rychlosti změn a potřebě přístupu k zařízení.

Příklady z praxe

Přihlášení přes biometrii v bankovní aplikaci

Bankovní aplikace pro iOS využije systémové biometrické ověření místo vlastního rozpoznávání obličeje. Vývojář volá platformní API, systém zobrazí známý dialog a aplikace dostane jen výsledek ověření. Citlivá biometrická data zůstávají pod kontrolou operačního systému.

let context = LAContext()
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,
    localizedReason: "Přihlášení do aplikace") { success, error in
    print(success)
}

Skladový terminál se čtečkou čárových kódů

Logistická firma potřebuje rychle skenovat štítky, vibrovat při chybě a fungovat v hale se slabým signálem. Nativní Android aplikace může pracovat s hardwarovou čtečkou, lokální databází a synchronizací na pozadí. Výsledkem je méně přerušená práce skladníka než u formuláře otevřeného v běžném prohlížeči.

Nativní aplikace vedle webu a hybridu

Webová aplikace běží v prohlížeči a aktualizuje se na serveru. Hybridní aplikace balí webové rozhraní do instalovatelné aplikace a doplňuje přístup k některým nativním funkcím. PWA posouvá web blíž k aplikaci pomocí offline režimu, instalace a notifikací, ale rozsah možností závisí na prohlížeči a platformě.

Nativní aplikace dává největší smysl tam, kde je kritická odezva, grafika, dlouhodobá práce offline, bezpečná integrace s identitou nebo specifický hardware. Podrobnější praktické srovnání s Capacitor přístupem popisuje článek Nativní aplikace vs. Capacitor.

Příklady z praxe

  1. Přihlášení přes biometrii v bankovní aplikaci

    Bankovní aplikace pro iOS využije systémové biometrické ověření místo vlastního rozpoznávání obličeje. Vývojář volá platformní API, systém zobrazí známý dialog a aplikace dostane jen výsledek ověření. Citlivá biometrická data zůstávají pod kontrolou operačního systému.

    let context = LAContext()
    context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,
        localizedReason: "Přihlášení do aplikace") { success, error in
        print(success)
    }
  2. Skladový terminál se čtečkou čárových kódů

    Logistická firma potřebuje rychle skenovat štítky, vibrovat při chybě a fungovat v hale se slabým signálem. Nativní Android aplikace může pracovat s hardwarovou čtečkou, lokální databází a synchronizací na pozadí. Výsledkem je méně přerušená práce skladníka než u formuláře otevřeného v běžném prohlížeči.

Časté omyly

MýtusKaždá aplikace z App Storu nebo Google Play je nativní.
Ve skutečnostiObchod s aplikacemi říká hlavně to, jak se aplikace distribuuje. Aplikace v obchodě může být plně nativní, hybridní, postavená nad webovým zobrazením nebo vytvořená multiplatformním frameworkem.
MýtusNativní aplikace je vždy nejlepší volba.
Ve skutečnostiNativní aplikace je silná volba pro výkon, hardware a špičkové UX, ale vývoj bývá dražší a pomalejší napříč platformami. U jednoduchých produktů může web nebo PWA přinést lepší poměr ceny a užitku.
MýtusNative znamená, že aplikace nepotřebuje internet.
Ve skutečnostiOffline režim není automatickou vlastností nativní aplikace. Nativní aplikace může bez sítě fungovat výborně, ale jen tehdy, když návrh počítá s lokálním ukládáním dat, konflikty a pozdější synchronizací.

Časté dotazy

Proč bývá nativní aplikace rychlejší než webová aplikace?
Nativní aplikace může být rychlejší, protože používá rozhraní a komponenty navržené přímo pro daný systém. Výkon ale není automatická vlastnost samotné nativnosti. Špatně napsaná nativní aplikace může být pomalá a dobře optimalizovaná webová aplikace může být pro mnoho úloh dostatečně rychlá. Rozdíl bývá nejviditelnější u grafiky, animací, práce se senzory, dlouhých offline scénářů a složitých operací na zařízení.
Kolik kódových základen obvykle potřebuje nativní aplikace pro iOS a Android?
Nativní aplikace pro iOS a Android často znamená dvě oddělené kódové základny: jednu pro iOS a jednu pro Android. Sdílet lze návrh API, datový model, backend, testovací scénáře a část produktové logiky, ale uživatelské rozhraní a integrace s platformou se obvykle píší zvlášť. Některé týmy používají sdílené knihovny, ale čistě nativní přístup stále vyžaduje znalost obou ekosystémů.
Hodí se nativní aplikace i pro jednoduchý katalog nebo interní formulář?
Nativní aplikace pro jednoduchý katalog nebo interní formulář často nedává ekonomický smysl, pokud není potřeba offline režim, integrace se zařízením nebo vysoká kvalita mobilního UX. Webová aplikace se nasazuje rychleji, aktualizuje se bez obchodu s aplikacemi a funguje napříč zařízeními. Nativní řešení se vyplatí hlavně tehdy, když instalace přináší uživateli jasnou hodnotu.
Co znamená nativní aplikace na desktopu?
Nativní desktopová aplikace je program vytvořený pro konkrétní desktopový systém, například Windows, macOS nebo Linux. Desktopová nativnost obvykle znamená použití systémových oken, menu, klávesových zkratek, práce se soubory a integračních bodů daného prostředí. Desktopová aplikace může být zároveň multiplatformní, pokud má samostatné nativní vrstvy nebo framework, který je pro jednotlivé systémy překládá.

Zdroje

  1. Native (computing)(otevře se v novém okně)Wikipedia
  2. Progressive web apps(otevře se v novém okně)MDN Web Docs
  3. Web Application Manifest(otevře se v novém okně)W3C
  4. What is .NET MAUI?(otevře se v novém okně)Microsoft Learn

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.