Dwa różne pomysły na wspólny kod
Flutter rozwija Google. Całą aplikację, razem z interfejsem, pisze się w języku Dart, a Flutter sam rysuje każdy piksel na ekranie. Dzięki temu aplikacja wygląda tak samo na iPhonie i Androidzie. Kotlin Multiplatform, w skrócie KMP, rozwija JetBrains, twórca języka Kotlin. Współdzieli się w nim przede wszystkim logikę: komunikację z serwerem, zapis danych i reguły biznesowe. Interfejs może zostać natywny, czyli SwiftUI na iPhonie i Jetpack Compose na Androidzie, albo powstać raz w Compose Multiplatform. Flutter to więc gotowy pomysł na całą aplikację, a KMP to zestaw klocków, które można dobierać.
Stan na 2026 rok: co jest stabilne
- Kotlin Multiplatform został ogłoszony jako stabilny 1 listopada 2023 roku.
- Google od maja 2024 roku oficjalnie wspiera KMP na Androidzie do współdzielenia logiki biznesowej.
- Compose Multiplatform 1.8.0 z 6 maja 2025 roku uczynił wspólny interfejs na iOS stabilnym.
- Według dokumentacji Kotlina rdzeń KMP jest stabilny na Androidzie, iOS, komputerach i serwerze. Wersja przeglądarkowa na Kotlin/Wasm oraz watchOS i tvOS mają status Beta.
- Compose Multiplatform jest stabilny na Androidzie, iOS i komputerach, a w przeglądarce ma status Beta.
- Flutter obsługuje Androida, iOS, przeglądarkę, Windows, macOS i Linuxa, a od wersji 3.27 jego nowy silnik graficzny Impeller jest domyślny na iOS i na Androidzie od API 29.
Porównanie w praktyce
| Kryterium | Flutter | Kotlin Multiplatform |
|---|---|---|
| Język | Dart, używany głównie we Flutterze. | Kotlin, który zna każdy programista Androida. |
| Interfejs | Wspólny, rysowany przez Fluttera. | Natywny na każdej platformie albo wspólny w Compose Multiplatform. |
| Co współdzielisz | Zwykle prawie całą aplikację. | Tyle, ile zdecydujesz: od samej logiki po całość. |
| Wygląd na iPhonie | Elementy iOS są naśladowane, nie pochodzą z systemu. | Przy natywnym interfejsie w pełni zgodny z systemem. |
| Istniejąca aplikacja | Można dodać Fluttera do aplikacji natywnej, ale to dwa światy w jednym projekcie. | Łatwo wprowadzać stopniowo, moduł po module, szczególnie w aplikacji na Androida. |
| Dojrzałość | Duży ekosystem bibliotek i wiele aplikacji w sklepach. | Logika dojrzała, wspólny interfejs na iOS stabilny dopiero od 2025 roku. |
| Zespół | Jeden zespół Fluttera wystarczy. | Przy natywnym interfejsie potrzebne są też osoby znające iOS. |
Kiedy wybrać Fluttera
- Budujesz nową aplikację od zera i chcesz jednym zespołem wydać ją na obie platformy.
- Aplikacja ma mocno markowy wygląd, który ma być identyczny na każdym telefonie.
- Zależy Ci na sprawdzonym ekosystemie i dużej liczbie gotowych bibliotek.
- Ta sama aplikacja ma działać także na komputerach.
Kiedy wybrać Kotlin Multiplatform
- Masz już aplikację na Androida w Kotlinie i chcesz przenieść logikę na iOS bez przepisywania wszystkiego.
- Interfejs na iPhonie ma być w pełni natywny, a współdzielić chcesz głównie logikę i dane.
- Masz zespoły iOS i Android, które chcą przestać pisać tę samą logikę dwa razy.
- Ta sama logika ma działać też na serwerze w Kotlinie.
Ryzyka, o których mało się mówi
- Flutter
- Dart rzadko przydaje się poza Flutterem, więc programistów jest mniej niż na przykład w świecie JavaScriptu. Wygląd elementów iOS jest naśladowany, więc po dużych zmianach wyglądu systemu trzeba czekać, aż Flutter je dogoni, albo dopracować je samemu.
- Kotlin Multiplatform
- Wspólny interfejs na iOS ma krótszą historię produkcyjną niż Flutter. Programiści iOS muszą pracować z narzędziami ze świata Kotlina, co bywa źródłem tarcia w zespole. Przy natywnym interfejsie oszczędność jest mniejsza, bo ekrany nadal powstają dwa razy.
- Oba
- Wersja na iOS wymaga komputera Mac i Xcode do budowania i publikacji. Oba ekosystemy szybko się zmieniają, więc aktualizacje bibliotek to stały koszt utrzymania.
Zespół i koszty w praktyce
Przy Flutterze jeden zespół buduje całą aplikację, a programista iOS potrzebny jest głównie do publikacji, podpisywania aplikacji i fragmentów natywnych, takich jak widżety. Przy Kotlin Multiplatform z natywnym interfejsem potrzebujesz osób znających Kotlina oraz osób znających SwiftUI, więc zespół jest większy, ale każda część aplikacji wygląda dokładnie tak, jak oczekuje system. Przy Compose Multiplatform zespół może być podobny jak przy Flutterze, tyle że pisze w Kotlinie. Koszt budowy zależy przede wszystkim od zakresu, a nie od technologii. Technologia wpływa za to na to, kogo łatwo zatrudnić za dwa lata, gdy aplikacja będzie się rozwijać. Warto o to zapytać wykonawcę wprost.
A gdzie w tym React Native?
React Native to trzecia popularna droga do aplikacji z jednego kodu, szczególnie gdy firma ma już stronę albo zespół w React. Szczegółowe porównanie z Flutterem opisujemy we wpisie React Native czy Flutter. Jeśli jeszcze nie wiesz, czy w ogóle iść w jeden wspólny kod, zacznij od tekstu aplikacja natywna czy cross-platform.
Nasze zdanie
Na co dzień budujemy aplikacje w React Native i Flutterze, więc o Kotlin Multiplatform piszemy z perspektywy zespołu, który pracuje w innych narzędziach. Uczciwie: KMP to dziś poważna, stabilna technologia, a nie eksperyment, i dla firmy z istniejącą aplikacją na Androida bywa najrozsądniejszym wyborem. Dla nowego produktu, który ma szybko trafić do obu sklepów, częściej polecamy Fluttera albo React Native. Technologię uzasadniamy w wycenie, a cały proces opisujemy na stronie aplikacje dedykowane. Aplikacje mobilne zaczynają się u nas od 11 900 zł netto.
Źródła
- JetBrains: Kotlin Multiplatform Is Stable and Production-Ready (1.11.2023)
- JetBrains: Compose Multiplatform 1.8.0, iOS stabilny (6.05.2025)
- Kotlin: stabilność obsługiwanych platform
- Android Developers Blog: wsparcie Kotlin Multiplatform (14.05.2024)
- Flutter: obsługiwane platformy
- Flutter: silnik Impeller
- Flutter: dodawanie Fluttera do istniejącej aplikacji
Autor: Marcin Tyc, założyciel Tycode · opublikowano 21 października 2026 · aktualizacja 21 października 2026
