Mobil tətbiqlərdə platformalararası inkişaf: bu nədir, hansı freymvorklar və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-06-06 Oxuma vaxtı: 9 dəq

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 yerli kodla ünsiyyət üçün Platform Channel (MethodChannel) istifadə edir. Mesajlar ikili formata seriyalaşdırılır və asinxron ötürülür.
  • React Native Bridge (köhnə memarlıq) və Fabric (yeni) istifadə edir. Fabric sinxron yerli funksiya çağırışları üçün JSI istifadə edir.
  • Kotlin Multiplatform expect/actual — bəyannamə və platforma tətbiqi istifadə edir. Kotlin/Native kodu birbaşa iOS ikili faylına kompilyasiya edir.
  • Quraşdırma alətləri platformalararası inkişaf üçün: Gradle KTS (Gradle üçün Kotlin DSL), CocoaPods Plugin (iOS asılılıqlarının idarə edilməsi), XCFramework (yerli kitabxanaların paylanması).
  • Skia (Flutter) və Impeller — render mühərrikləri. Impeller daha yeni, daha sürətlidir və köhnə cihazlarda jank problemlərini həll edir.

Platformalararası inkişaf: Flutter Platform Channel və Method Channel

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.

Platform Channel (Method Channel)

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.

FFI, Skia və Impeller

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 ilə platformalararası inkişaf: Bridge, Fabric, Hermes, JSI

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.

Fabric vs Bridge

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 və Codegen

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
DilDartJavaScript/TypeScriptKotlin
MemarlıqSkia/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)
UIXüsusi (Skia/Impeller)Yerli komponentlər (UIKit/Android Views)Yerli UI (Jetpack Compose, SwiftUI)
Render mühərrikiSkia və ya ImpellerYerli (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 ilə platformalararası inkişaf: expect/actual, Kotlin/Native

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/actual

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/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ı.

Quraşdırma alətləri: Gradle KTS, CocoaPods Plugin, XCFramework

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

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 və XCFramework

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

2026-cı ildə nə seçməli: Flutter yoxsa React Native?

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 Platform Channel vasitəsilə yerli kodla necə ünsiyyət qurur?

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.

Kotlin Multiplatform-da expect/actual nədir?

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.

React Native-də Fabric və Bridge arasında fərq nədir?

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 nədir və React Native-in ona niyə ehtiyacı var?

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ə

  • Flutter yerli kodla ünsiyyət üçün Platform Channel (MethodChannel) istifadə edir. FFI — yük olmadan birbaşa C funksiya çağırışları üçün.
  • React Native Bridge-dən Fabric + JSI-ya keçdi. JSI sinxron yerli funksiya çağırışlarına imkan verir, körpü gecikmələrini aradan qaldırır.
  • Kotlin Multiplatform platforma kodu üçün expect/actual istifadə edir. Kotlin/Native ümumi kodu yerli iOS freymvorkuna kompilyasiya edir.
  • Platformalararası mobil tətbiq inkişafı Flutter ilə Skia/Impeller, React Native ilə — JSI/Fabric, KMP ilə — yerli kod üçün expect/actual istifadə edir.
  • Hermes — React Native üçün JS mühərriki. İşə salmanı sürətləndirir və yaddaş istehlakını azaldır.
  • Gradle KTS — Gradle üçün Kotlin DSL. CocoaPods Plugin və XCFramework — platformalararası inkişafda iOS ikili fayllarını paylamaq üçün.
  • Freymvork seçimi: Vahid UI üçün Flutter, JS ilə yerli UI üçün React Native, yerli UI ilə biznes məntiqini paylaşmaq üçün KMP.
  • Platformalararası mobil tətbiq inkişaf texnologiyası seçərkən performans tələblərini və komanda ölçüsünü nəzərə alın.

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.

Layihəni müzakirə et