Cross-Platform App: mi ez, Flutter, React Native és KMP összehasonlítása

Szerző: IT Sectr Megjelenés: 2026-02-14 Olvasási idő: 10 perc

Cross-Platform App — egy többplatformos mobilalkalmazás, amelyet Flutter, React Native vagy Kotlin Multiplatform (KMP) keretrendszerek használatával hoztak létre. Két külön csapat helyett iOS és Android számára, a többplatformos fejlesztés lehetővé teszi egy kód írását, amely mindkét platformon működik, 30–40%-kal csökkentve a költségeket és felgyorsítva a piacra jutást.

Főbb következtetések

  • Egységes kódbázis — a többplatformos alkalmazások 60–100%-ban osztják meg a kódot iOS és Android között, csökkentve a fejlesztési időt és költséget
  • Flutter — Google-keretrendszer Dart nyelven, saját megjelenítőmotorral (Skia/Impeller) és natívhoz közeli teljesítménnyel
  • React Native — Meta-keretrendszer JavaScript/React alapon natív komponensekkel és a legnagyobb csomagökoszisztémával
  • Kotlin Multiplatform — JetBrains-megoldás az üzleti logika megosztására teljesen natív UI-val az expect/actual mechanizmuson keresztül
  • Kompromisszumok — a teljesítmény, a natív API-okhoz való hozzáférés, a fejlesztés kényelme és a karbantartási költségek keretrendszertől függően eltérnek

Mi az a Cross-Platform App?

Cross-Platform App (többplatformos alkalmazás) — olyan szoftver, amelyet több mobil operációs rendszeren való működésre terveztek egyetlen kódbázisból. Ellentétben a natív fejlesztéssel, ahol iOS (Swift) és Android (Kotlin) számára két külön projektet vezetnek, a többplatformos fejlesztés egyesíti az üzleti logikát, a felhasználói felületet és az adatréteget egy projektben.

A többplatformos fejlesztés koncepciója 2009-ben jelent meg a PhoneGap-pel (később Apache Cordova), amely egy webalkalmazást natív WebView-ba csomagolt. A modern keretrendszerek messzire jutottak: a Flutter natív ARM-kódra fordít Dart-on keresztül, a React Native JavaScript-motort használ natív híddal, a Kotlin Multiplatform pedig a közös kódot platformspecifikus bináris fájlokra fordítja. 2026-ra az új mobilalkalmazások több mint 40%-a használ legalább egy többplatformos technológiát.

Fő mutatók az alkalmazásról: 30–50%-kal gyorsabb piacra jutás, 30–40%-os költségcsökkentés két natív csapathoz képest, egységes funkciókészlet támogatása mindkét platformon. A többplatformos alkalmazások azonban még mindig kihívásokkal néznek szembe — platformspecifikus UI-jellemzők, hozzáférés a hardver API-okhoz és teljesítménykritikus funkcionalitás, mint az animációk és játékok.

Flutter: architektúra és teljesítmény

Flutter — a Google nyílt forráskódú UI-keretrendszere Dart nyelven, saját Skia (4.x verzióban Impeller) megjelenítőmotorral. Ellentétben a platform natív komponenseit használó keretrendszerekkel, a Flutter önállóan jeleníti meg minden egyes képpontot, ami teljes ellenőrzést biztosít a felület felett. Ez a megközelítés kiküszöböli a platformok közötti különbségeket, de 5–15 MB-tal megnöveli az alkalmazás méretét.

dart
// Flutter — egyszerű számláló
import 'package:flutter/material.dart';

void main() { runApp(const CounterApp()); }

class CounterApp extends StatelessWidget {
  const CounterApp({super.key});

  Widget build(BuildContext context) {
    return const MaterialApp(home: CounterScreen());
  }
}

class CounterScreen extends StatefulWidget {
  /* ... */
}

class _CounterScreenState extends State<CounterScreen> {
  int _count = 0;

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Többplatformos számláló')),
      body: Center(
        child: Column(
          children: [
            const Text('Ennyiszer nyomta meg a gombot:'),
            Text('$_count',
              style: const TextStyle(fontSize: 48)),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () { setState(() { _count++; }); },
        child: const Icon(Icons.add),
      ),
    );
  }
}

A Flutter alapja a widget-architektúra: minden — a térközöktől és igazítástól kezdve az elrendezési korlátokig — egy widget. Ez a deklaratív modell, amelyet a React-től örökölt, kiszámíthatóvá teszi a UI-t. A Dart AOT-fordításának köszönhetően a Flutter-alkalmazások kevesebb mint 2 másodperc alatt indulnak el, és még középkategóriás eszközökön is 60 FPS-t tartanak. Az Impeller — az új megjelenítőmotor — kiküszöbölte a shader-fordításnál jelentkező akadozást, ami a Skia fő problémája volt.

React Native: JavaScript-híd és ökoszisztéma

React Native — a Meta többplatformos keretrendszere mobilalkalmazások készítéséhez JavaScript/TypeScript és React segítségével. Ellentétben a Flutter-rel, a React Native a platform natív UI-komponenseit használja (UIView iOS-en, View Androidon) egy JavaScript-hídon keresztül. Az üzleti logika a JavaScript-motorban (Hermes vagy JSC) fut, aszinkron módon kommunikálva a natív modulokkal.

jsx
// React Native — komponens platformkóddal
import React, { useState } from 'react';
import {
  View, Text, TouchableOpacity, Platform
} from 'react-native';

const App = () => {
  const [count, setCount] = useState(0);

  const greeting = Platform.select({
    ios: 'Üdvözlet iOS-en',
    android: 'Üdvözlet Androidon',
    default: 'Üdvözlet',
  });

  return (
    <View>
      <Text>{greeting}</Text>
      <Text>{count}</Text>
      <TouchableOpacity
        onPress={() => setCount(c => c + 1)}>
        <Text>+1</Text>
      </TouchableOpacity>
    </View>
  );
};

A React Native legnagyobb előnye az ökoszisztéma. Az npm több mint 2 millió csomagot számlál, a React Navigation, Expo és Reanimated könyvtárak pedig kész megoldásokat kínálnak navigációhoz, gesztusokhoz és animációkhoz. Az Expo — egy felügyelt munkafolyamat — leegyszerűsíti az építést és közzétételt OTA-frissítésekkel és több mint 50 beépített natív modullal. Az Instagram, a Shopify és a Discord, összesen több mint 500 millió havi felhasználóval, React Native-on fut.

Kotlin Multiplatform: közös logika natív UI-val

Kotlin Multiplatform (KMP) — a JetBrains technológiája, amely a közös Kotlin-kódot platformspecifikus bináris fájlokra fordítja. Ellentétben a Flutter-rel és a React Native-val, a KMP nem biztosít UI-keretrendszert — feladata az üzleti logika, adatréteg, hálózati kérések és érvényesítés újrafelhasználása, miközben a felületet teljesen natívan hagyja. A Netflix, a McDonald's és a VMware KMP-t használ élesben.

kotlin
// Kotlin Multiplatform — közös repository commonMain-ben
class UserRepository(
    private val api: KtorClient,
    private val db: Database
) {
    suspend fun getUsers(): Result<List<User>> {
        return try {
            val users = api.fetch<List<UserDto>>("/users")
            db.save(users.map { it.toDomain() })
            Result.success(db.getAll())
        } catch (e: Exception) {
            Result.failure(e)
        }
    }
}

// expect/actual — dátum formázása platformhoz
expect fun formatDate(timestamp: Long): String

A KMP kulcsmintája az expect/actual mechanizmus. A közös modulban (commonMain) deklarálásra kerül egy expect-függvény vagy -osztály, és minden egyes platformforráskészletben (androidMain, iosMain) biztosításra kerül az actual-megvalósítás. Ez lehetővé teszi a natív API-ok — SharedPreferences, NSUserDefaults, kamera, biometria — használatát az egységes publikus interfész megtartása mellett a közös kódban. A Compose Multiplatform — a KMP UI-rétege — 2025-ben elérte a stabilitást Android és Desktop esetén, az iOS-verzió béta tesztelés alatt marad.

Többplatformos keretrendszerek összehasonlítása

JellemzőFlutterReact NativeKotlin Multiplatform
NyelvDartJavaScript / TypeScriptKotlin
MegjelenítésSaját (Skia / Impeller)Natív komponensekNatív (UI nem része)
Közös kódAkár 100%Akár 90%60–80% (csak logika)
TeljesítményNatívhoz közeli (60 FPS)Jó (Hermes)Natív (nincs többletterhelés)
Alkalmazás mérete+10–15 MB+6–10 MB+2–5 MB
iOS navigációEgyedi animációkReact NavigationSwiftUI / UIKit
Hot ReloadIgen (állapotmegőrzéssel)Igen (Fast Refresh)Platform szinten
Indítás dátuma201720152019
CégGoogleMetaJetBrains

Teljesítmény jelentősen eltér a forgatókönyvtől függően. A Flutter saját megjelenítője stabil 60 FPS-t biztosít az animációkhoz és átmenetekhez. A React Native híd-architektúrája 2–5 ms késleltetést ad hozzá minden natív híváshoz, bár az új JSI (JavaScript Interface) réteg csökkenti ezt a lemaradást. A KMP nulla többletterheléssel rendelkezik a megosztott kódon, mivel közvetlenül a platform bináris fájljaiba fordít. Az UI-intenzív, összetett animációjú alkalmazások esetén a választás a Flutter és a natív fejlesztés között van.

Hogyan válasszuk ki a megfelelő keretrendszert

A választás Flutter, React Native és KMP között a projekt prioritásai határozzák meg. Ha pixel-perfect UI-ra és teljes animáció-vezérlésre van szükség — a Flutter nyújtja a legkonzisztensebb többplatformos élményt. Ha a csapat ismeri a JavaScript/React-et és értékeli a legnagyobb harmadik fél könyvtárökoszisztémát — a React Native a pragmatikus választás. Ha már léteznek natív alkalmazások, és meg kell osztani az üzleti logikát — a KMP lehetővé teszi a közös kód modulonkénti bevezetését a UI kompromisszumok nélkül.

MVP-k és startupok számára a Flutter vagy a React Native adja a legrövidebb utat a piachoz 80–100% közös kóddal. Vállalati alkalmazásokhoz meglévő natív bázissal a KMP lehetővé teszi a modulok fokozatos migrálását. Játékok és médiaalkalmazások egyedi megjelenítéssel a Flutter-ből vagy a teljesen natív megközelítésből profitálnak. Minden egyes keretrendszer bizonyította érettségét — az Instagram (React Native), a Google Pay (Flutter) és a Netflix (KMP) többplatformos technológiákon fut.

Trendek: A Flutter egységes kódbázissal terjeszkedik asztali és webes platformokra. A React Native az új architektúrával (Fabric + TurboModules) teljesen megszünteti a hidat. A KMP a Compose Multiplatform segítségével egységes UI-rétegre törekszik a natív teljesítmény megtartása mellett. 2027-re a többplatformos és natív fejlesztés közötti határ teljesen elmosódik — a keretrendszerek platformfordítási útvonalakra állnak át.

Gyakran ismételt kérdések

Mi a különbség a többplatformos és a hibrid alkalmazás között?

A többplatformos alkalmazások olyan keretrendszereket (Flutter, React Native) használnak, amelyek natív kódra fordulnak vagy natív komponensekkel működnek. A hibrid alkalmazások egy weboldalt natív WebView-ba csomagolnak (Cordova, Ionic). A többplatformos alkalmazások gyorsabbak és mélyebben integrálódnak a platformmal; a hibridek — egyszerűbb fejleszteni, de lassabbak és kevésbé 'natívak'.

Működhetnek a többplatformos alkalmazások kamerával és GPS-szel?

Igen. Az összes fő keretrendszer natív modulrendszert biztosít a kamera, GPS, Bluetooth, NFC, biometria és érzékelők eléréséhez. A Flutter platformcsatornákat (MethodChannel), a React Native — NativeModules, a KMP — expect/actual használ. A natív funkciók több mint 95%-a elérhető hivatalos vagy harmadik féltől származó bővítményeken keresztül.

Gyorsabb-e a Flutter, mint a React Native?

A tesztek szerint Flutter magasabb megjelenítési teljesítményt mutat (stabil 60 FPS) saját Skia/Impeller motorjának köszönhetően, míg a React Native natív hidat használ a UI frissítéséhez. A Hermes-szel és az új Fabric architektúrával azonban a különbség jelentősen csökken. Tipikus üzleti alkalmazásokhoz mindkét keretrendszer elfogadható teljesítményt nyújt; a különbség az intenzív animációjú és valós idejű projektekben észrevehető.

Olcsóbb-e a többplatformos fejlesztés, mint a natív?

Tipikus esetben a többplatformos fejlesztés 30–40%-kal csökkenti a költségeket két natív csapat fenntartásához képest. Egy csapat ír közös kódot mindkét platformra. Az összetett platformfunkciók — ARKit, CoreML, fejlett kameramunka — azonban natív kódot igényelhetnek, csökkentve a megtakarítást. A legtöbb szabványos UI-mintázatú üzleti alkalmazás esetén az árelőny jelentős.

Melyik a legjobb többplatformos keretrendszer 2026-ban?

Nincs egyetlen legjobb keretrendszer — minden a feladattól függ. Flutter vezet a UI-összetettség és animáció terén. React Native dominál az ökoszisztéma méretében és a JavaScript-fejlesztők elérhetőségében. KMP optimális a logikát megosztani kívánó native-first csapatok számára. Értékelje a csapat készségeit, a teljesítménykövetelményeket és a meglévő infrastruktúrát a választás előtt.

Mennyi időbe telik egy többplatformos alkalmazás fejlesztése?

A határidők a komplexitástól függenek. Egy egyszerű alkalmazás szabványos UI-val Flutter-ben vagy React Native-ban 2–4 hónap alatt kiadható. Közepes projekt egyedi dizájnnal, hitelesítéssel és integrációkkal — 4–8 hónap. Összetett alkalmazás animációkkal, offline móddal és natív modulokkal — 8 hónaptól. Átlagosan a többplatformos fejlesztés 30–50%-kal kevesebb időt vesz igénybe, mint a párhuzamos natív fejlesztés.

Alkalmas-e a KMP startupok számára?

Általában nem. A KMP Kotlin-szakértelmű csapatot és külön UI írását igényli minden platformhoz, ami meghosszabbítja a fejlesztési időt. Korlátozott erőforrású startupok számára Flutter vagy React Native több közös kódot (beleértve a UI-t) és gyorsabb prototípuskészítést biztosít. A KMP az érett, meglévő natív kódbázisú termékek választása.

Következtetés

  • A többplatformos alkalmazások (Cross-Platform Apps) egyetlen kódbázist használnak iOS és Android számára, 30–50%-kal csökkentve a fejlesztési időt és költséget
  • Flutter Dart nyelvvel és saját megjelenítőmotorral natívhoz közeli teljesítményt és teljes UI-vezérlést biztosít
  • React Native JavaScript/React alapon a platform natív komponenseit használja, és a legnagyobb könyvtárökoszisztémával rendelkezik
  • Kotlin Multiplatform (KMP) az expect/actual segítségével csak az üzleti logikát osztja meg, a UI-t teljesen natívan hagyva
  • A teljesítménykülönbség a többplatformos és natív alkalmazások között minden egyes keretrendszer-frissítéssel csökken
  • A keretrendszer kiválasztása a csapat készségeitől, a UI- és teljesítménykövetelményektől függ
  • 2026-ra az új mobilalkalmazások több mint 40%-a használ többplatformos technológiákat, és a piac folyamatosan növekszik

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is