Platformalararası inkişaf mobil mühəndisliyin ən dinamik inkişaf edən sahələrindən biridir. Statista (2025) məlumatına görə, mobil tərtibatçıların 42%-i layihələrində Flutter və ya React Native istifadə edir. Platforma kanalları, körpülər və yerli modullar platformalararası memarlığın əsasını təşkil edir.
Əsas məqamlar
Flutter tək Dart kod bazasından yerli tətbiqlər yaratmaq üçün Google-un freymvorkudur. Platforma kodu (Kotlin, Swift) ilə qarşılıqlı əlaqə üçün Flutter Platform Channel istifadə edir. Bu, Dart kodunun yerli funksiyaları çağırdığı və nəticə aldığı bir körpüdür. Flutter ilə platformalararası mobil tətbiq inkişafı 2025–2026-cı illərdə mobil inkişafın ən sürətlə böyüyən seqmentidir.
Method Channel Flutter <-> Yerli arasında əsas ünsiyyət kanalıdır. Dart tərəfində: MethodChannel('com.example/channel').invokeMethod('getBatteryLevel'). Mesaj StandardMethodCodec (ikili) ilə kodlanır. Yerli tərəfdə MethodChannel qeydiyyatdan keçir və çağırışı idarə edir. MethodChannel asinxrondur — nəticə Future vasitəsilə qaytarılır. Alternativ: EventChannel hadisə axınları üçün.
BasicMessageChannel "metod-arqument" strukturu olmadan sətir/bayt göndərmək üçün aşağı səviyyəli kanaldır. Xüsusi protokollar üçün istifadə olunur. Bütün Platform Channel API-si mesajları seriyalaşdıran/deseriyalaşdıran Flutter Engine-dən keçir.
dart:ffi (Foreign Function Interface) — platforma kanalları olmadan Dart-dan C funksiyalarının birbaşa çağırışı. FFI Method Channel-dan daha sürətlidir (0 seriyalaşdırma yükü). Performans tələb edən əməliyyatlar üçün istifadə olunur: səs emalı, kriptoqrafiya, qrafik mühərrikləri. Skia Flutter-ın render mühərrikidir (2D qrafika). Impeller Skia-nı əvəz edən Flutter-ın yeni render mühərrikidir. Impeller şeyderləri əvvəlcədən kompilyasiya edir, ilk işə salmalarda jank (çərçivə donması) problemlərini aradan qaldırır. IT Sectr-də 2025-ci ildə Impeller-ə keçdik — animasiya hamarlığındakı fərq dərhal nəzərə çarpır.
React Native JavaScript/TypeScript ilə platformalararası mobil tətbiq inkişafı üçün Meta-nın freymvorkudur. React Native komponentləri yerli UI elementlərinə render edir. Memarlıq təkamül keçirmişdir: köhnə Bridge → JSI ilə yeni Fabric.
Bridge köhnə React Native memarlığıdır. JS ipi mesajları JSON-a seriyalaşdırır və asinxron növbə vasitəsilə yerli ipə göndərir. Bu gecikmələr yaradır (körpü dövriyyəsi ~1 ms). Fabric JS və yerli UI iplərinin JSI (JavaScript Interface) vasitəsilə sinxron ünsiyyət qurduğu yeni memarlıqdır. Fabric körpü olmadan birbaşa yerli görünüşləri inject edir. Fabric platformalararası inkişafda əsas mərhələdir, renderingi 2x dəfəyə qədər sürətləndirir.
JSI (JavaScript Interface) JavaScript-ə birbaşa yerli funksiyaları çağırmağa və yaddaşı paylaşmağa imkan verən C++ API-dir. JSI Bridge-in JSON seriyalaşdırmasını əvəz etdi. JSI əsaslı yeni memarlıq platformalararası inkişafda mühüm nailiyyətdir, mobil tətbiq performansını müəyyən edir. Turbo Module React Native üçün yerli modullar yazmağın yeni üsuludur. Köhnə Native Modules-dən fərqli olaraq, Turbo Module tənbəl yüklənir və JSI istifadə edir.
Hermes React Native üçün optimallaşdırılmış Meta-dan JavaScript mühərrikidir. Hermes JS kodunu qurma vaxtında bayt koduna kompilyasiya edir, mobil tətbiq işə salınmasını sürətləndirir və platformalararası inkişafda yaddaş istehlakını azaldır. Codegen TypeScript tiplərinə əsaslanan yerli kod generatorudur. Codegen avtomatik olaraq yerli modullar və JSI bağlamaları yaradır, əl işini azaldır.
| Parametr | Flutter | React Native | KMP |
|---|---|---|---|
| Dil | Dart | JavaScript/TypeScript | Kotlin |
| Memarlıq | Skia/Impeller (xüsusi render) | Fabric + JSI (yerli UI) | Yerli SDK (hər modul) |
| Yerli körpü | MethodChannel (Dart ↔ Yerli) | JSI (JS ↔ C++ ↔ Yerli) | expect/actual (Kotlin ↔ Yerli) |
| UI | Xüsusi (Skia/Impeller) | Yerli komponentlər (UIKit/Android Views) | Yerli UI (Jetpack Compose, SwiftUI) |
| Render mühərriki | Skia və ya Impeller | Yerli (UIView/View) | Yerli |
Flutter Skia/Impeller vasitəsilə hər şeyi özü render edir — bu hər iki platformada vahid UI verir. React Native yerli UI komponentlərindən istifadə edir — yerli tətbiq kimi görünür. KMP UI ilə məşğul olmur — yalnız biznes məntiqini paylaşır, UI yerli qalır. Seçim prioritetdən asılıdır: vahid UI (Flutter) və ya maksimum yerlilik (React Native/KMP).
Kotlin Multiplatform (KMP) Android və iOS arasında paylaşılan kod üçün JetBrains texnologiyasıdır. Flutter və React Native-dən fərqli olaraq, KMP platformalararası inkişafa alternativ yanaşmadır: UI-nı əvəz etmir, biznes məntiqini, şəbəkə sorğularını, məlumat modellərini və depozitoriyaları paylaşır. UI yerli qalır: Android üçün Jetpack Compose, iOS üçün SwiftUI.
expect — platforma tətbiqi olan ümumi modulda (commonMain) funksiya və ya sinif bəyannaməsi. KMP ilə platformalararası inkişaf expect/actual istifadə edir: actual hər platforma (androidMain, iosMain) üçün konkret tətbiqdir. Nümunə: expect fun getDeviceId(): String — Android-də actual Settings.Secure istifadə edir, iOS-da — UIDevice.current.identifierForVendor.
Kotlin/Native — Kotlin-i yerli ikili fayla (iOS freymvorku) kompilyasiya edən kompilyator. JVM olmadan iOS-da Kotlin kodunu işə salmağa imkan verir. Kotlin/Native kompilyasiya üçün LLVM istifadə edir, Swift-ə yaxın performans təmin edir. Kotlin/JS — web və React Native layihələri üçün Kotlin-in JavaScript-ə kompilyasiyası.
Platformalararası mobil tətbiq inkişafının quraşdırma alətləri — kod və son ikili fayl arasında körpüdür. Gradle KTS Android hissəsini idarə edir, CocoaPods Plugin KMP iOS asılılıqlarını idarə edir, XCFramework yerli kitabxana paylanmasını idarə edir.
Gradle KTS — Groovy əvəzinə Kotlin DSL istifadə edərək Gradle konfiqurasiyası. KTS Android Studio-da avtomatik tamamlama, tip yoxlaması və refaktorinq təhlükəsizliyini dəstəkləyir. Nümunə: apply plugin: 'com.android.application' əvəzinə plugins { id("com.android.application") }. Bütün yeni layihələr üçün tövsiyə olunur.
CocoaPods Plugin — paylaşılan modulu CocoaPods pod kimi nəşr edən KMP üçün Gradle plaginidir. iOS tərtibatçısı onu Podfile vasitəsilə əlavə edir. XCFramework — Apple-ın ikili kitabxana paylanma formatıdır. XCFramework çoxlu arxitekturalar (arm64, x86_64) və platformalar (iOS, macOS, watchOS) üçün ikili fayllar ehtiva edir. KMP-də paylaşılan modul iOS üçün XCFramework kimi ixrac edilir.
Tez-tez verilən suallar
Flutter daha yaxşı performans (Skia/Impeller), vahid UI kod bazası və platformalararası inkişafda yüksək sabitlik təklif edir. React Native — böyük icma, veb inkişafdan asan keçid və JSI vasitəsilə elastiklik. IT Sectr UI mərkəzli layihələr üçün Flutter-ı, tez-tez yerli kod tələb edən layihələr üçün React Native-i tövsiyə edir.
Flutter Dart tərəfində MethodChannel vasitəsilə mesaj göndərir. Mesaj ikili formata kodlanır və yerli tərəfə (Kotlin/Swift) ötürülür, orada işlənir və nəticəni qaytarır. Mobil tətbiq inkişafında bütün ünsiyyət asinxrondur.
expect platforma tətbiqi olan ümumi koddakı funksiya və ya sinif bəyannaməsidir. actual hər platforma (Android/iOS) üçün konkret tətbiqdir. Bu, ön prosessor olmadan şərti kompilyasiya üçün KMP-nin mexanizmidir.
Bridge mesajların JSON-a seriyalaşdırıldığı və növbə vasitəsilə asinxron ötürüldüyü köhnə memarlıqdır. Fabric JSI vasitəsilə sinxron yerli funksiya çağırışları olan yeni memarlıqdır, gecikmələri aradan qaldırır və mobil tətbiq performansını yaxşılaşdırır.
Hermes React Native üçün optimallaşdırılmış Meta-dan JavaScript mühərrikidir. Qurma vaxtında JS-ni bayt koduna kompilyasiya edir, tətbiq işə salınmasını 2–3 dəfə sürətləndirir və yaddaş istehlakını azaldır.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.