موبائل ایپلی کیشنز میں کراس پلیٹ فارم ڈویلپمنٹ: یہ کیا ہے، کون سے فریم ورک اور یہ کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-06-06 مطالعے کا وقت: 9 منٹ

کراس پلیٹ فارم ڈویلپمنٹ موبائل انجینئرنگ کے سب سے متحرک طور پر ترقی پذیر شعبوں میں سے ایک ہے۔ Statista (2025) کے مطابق، 42% موبائل ڈویلپر اپنے پروجیکٹس میں Flutter یا React Native استعمال کرتے ہیں۔ پلیٹ فارم چینلز، پل اور نیٹیو ماڈیولز کراس پلیٹ فارم آرکیٹیکچر کی بنیاد ہیں۔

اہم نکات

  • Flutter نیٹیو کوڈ سے بات چیت کے لیے Platform Channel (MethodChannel) استعمال کرتا ہے۔ پیغامات بائنری فارمیٹ میں سیریلائز ہوتے ہیں اور غیر متزامن طور پر منتقل ہوتے ہیں۔
  • React Native Bridge (پرانا آرکیٹیکچر) اور Fabric (نیا) استعمال کرتا ہے۔ Fabric ہم وقت نیٹیو فنکشن کالز کے لیے JSI استعمال کرتا ہے۔
  • Kotlin Multiplatform expect/actual — اعلان اور پلیٹ فارم نفاذ استعمال کرتا ہے۔ Kotlin/Native کوڈ براہ راست iOS بائنری میں کمپائل کرتا ہے۔
  • بلڈ ٹولز کراس پلیٹ فارم ڈویلپمنٹ کے لیے: Gradle KTS (Gradle کے لیے Kotlin DSL)، CocoaPods Plugin (iOS انحصار کا انتظام)، XCFramework (نیٹیو لائبریری کی تقسیم)۔
  • Skia (Flutter) اور Impeller — رینڈر انجن۔ Impeller نیا، تیز ہے اور پرانے آلات پر jank مسائل حل کرتا ہے۔

کراس پلیٹ فارم ڈویلپمنٹ: Flutter Platform Channel اور Method Channel

Flutter ایک ڈارٹ کوڈ بیس سے نیٹیو ایپلی کیشنز بنانے کے لیے Google کا فریم ورک ہے۔ پلیٹ فارم کوڈ (Kotlin, Swift) کے ساتھ بات چیت کرنے کے لیے، Flutter Platform Channel استعمال کرتا ہے۔ یہ ایک پل ہے جس کے ذریعے ڈارٹ کوڈ نیٹیو فنکشنز کو کال کرتا ہے اور نتیجہ حاصل کرتا ہے۔ Flutter کے ساتھ کراس پلیٹ فارم موبائل ایپ ڈویلپمنٹ 2025–2026 میں موبائل ڈویلپمنٹ کا سب سے تیزی سے بڑھنے والا سیگمنٹ ہے۔

Platform Channel (Method Channel)

Method Channel Flutter <-> نیٹیو کے درمیان مواصلات کا مرکزی چینل ہے۔ ڈارٹ کی طرف: MethodChannel('com.example/channel').invokeMethod('getBatteryLevel')۔ پیغام StandardMethodCodec (بائنری) میں انکوڈ ہوتا ہے۔ نیٹیو کی طرف ایک MethodChannel رجسٹر ہوتا ہے اور کال کو ہینڈل کرتا ہے۔ MethodChannel غیر متزامن ہے — نتیجہ Future کے ذریعے واپس آتا ہے۔ متبادل: EventChannel ایونٹ سٹریمز کے لیے۔

BasicMessageChannel "طریقہ-دلائل" ساخت کے بغیر سٹرنگ/بائٹ بھیجنے کے لیے نچلے درجے کا چینل ہے۔ کسٹم پروٹوکول کے لیے استعمال ہوتا ہے۔ تمام Platform Channel API Flutter Engine سے گزرتی ہے، جو پیغامات کو سیریلائز/ڈی سیریلائز کرتا ہے۔

FFI، Skia اور Impeller

dart:ffi (Foreign Function Interface) — پلیٹ فارم چینلز کے بغیر ڈارٹ سے C فنکشنز کا براہ راست کال۔ FFI Method Channel سے تیز ہے (0 سیریلائزیشن اوور ہیڈ)۔ کارکردگی پر مبنی آپریشنز کے لیے استعمال ہوتا ہے: آڈیو پروسیسنگ، کرپٹوگرافی، گرافکس انجن۔ Skia Flutter کا رینڈر انجن ہے (2D گرافکس)۔ Impeller Flutter کا نیا رینڈر انجن ہے جو Skia کی جگہ لے رہا ہے۔ Impeller شیڈرز کو پہلے سے کمپائل کرتا ہے، جو پہلے لانچ پر jank (فریم رکنے) کو ختم کرتا ہے۔ IT Sectr میں ہم نے 2025 میں Impeller میں سوئچ کیا — اینیمیشن کی ہمواری میں فرق فوراً نظر آتا ہے۔

React Native کے ساتھ کراس پلیٹ فارم ڈویلپمنٹ: Bridge, Fabric, Hermes, JSI

React Native JavaScript/TypeScript میں کراس پلیٹ فارم موبائل ایپ ڈویلپمنٹ کے لیے Meta کا فریم ورک ہے۔ React Native اجزاء کو نیٹیو UI عناصر میں رینڈر کرتا ہے۔ آرکیٹیکچر تیار ہوا ہے: پرانا Bridge → JSI کے ساتھ نیا Fabric۔

Fabric بمقابلہ Bridge

Bridge پرانا React Native آرکیٹیکچر ہے۔ JS تھریڈ پیغامات کو JSON میں سیریلائز کرتا ہے اور غیر متزامن قطار کے ذریعے نیٹیو تھریڈ کو بھیجتا ہے۔ اس سے تاخیر ہوتی ہے (پل راؤنڈ ٹرپ ~1 ms)۔ Fabric نیا آرکیٹیکچر ہے جہاں JS اور نیٹیو UI تھریڈ JSI (JavaScript Interface) کے ذریعے ہم وقت بات چیت کرتے ہیں۔ Fabric بغیر پل کے براہ راست نیٹیو ویوز انجیکٹ کرتا ہے۔ Fabric کراس پلیٹ فارم ڈویلپمنٹ میں ایک اہم سنگ میل ہے، رینڈرنگ کو 2x تک تیز کرتا ہے۔

JSI (JavaScript Interface) ایک C++ API ہے جو JavaScript کو براہ راست نیٹیو فنکشنز کال کرنے اور میموری شیئر کرنے کی اجازت دیتا ہے۔ JSI نے Bridge کی JSON سیریلائزیشن کو تبدیل کر دیا۔ JSI پر مبنی نیا آرکیٹیکچر کراس پلیٹ فارم ڈویلپمنٹ میں ایک اہم کامیابی ہے، موبائل ایپ کی کارکردگی کا تعین کرتا ہے۔ Turbo Module React Native کے لیے نیٹیو ماڈیول لکھنے کا ایک نیا طریقہ ہے۔ پرانے Native Modules کے برعکس، Turbo Module سست لوڈ ہوتا ہے اور JSI استعمال کرتا ہے۔

Hermes اور Codegen

Hermes Meta کا JavaScript انجن ہے، React Native کے لیے بہتر بنایا گیا۔ Hermes بلڈ وقت پر JS کوڈ کو بائٹ کوڈ میں کمپائل کرتا ہے، موبائل ایپ اسٹارٹ اپ کو تیز کرتا ہے اور کراس پلیٹ فارم ڈویلپمنٹ میں میموری کی کھپت کو کم کرتا ہے۔ Codegen TypeScript اقسام پر مبنی نیٹیو کوڈ جنریٹر ہے۔ Codegen خود بخود نیٹیو ماڈیولز اور JSI بائنڈنگز بناتا ہے، دستی کام کو کم کرتا ہے۔

پیرامیٹر Flutter React Native KMP
زبانDartJavaScript/TypeScriptKotlin
آرکیٹیکچرSkia/Impeller (کسٹم رینڈر)Fabric + JSI (نیٹیو UI)نیٹیو SDK (ہر ماڈیول)
نیٹیو پلMethodChannel (Dart ↔ نیٹیو)JSI (JS ↔ C++ ↔ نیٹیو)expect/actual (Kotlin ↔ نیٹیو)
UIکسٹم (Skia/Impeller)نیٹیو اجزاء (UIKit/Android Views)نیٹیو UI (Jetpack Compose, SwiftUI)
رینڈر انجنSkia یا Impellerنیٹیو (UIView/View)نیٹیو

Flutter Skia/Impeller کے ذریعے خود سب کچھ رینڈر کرتا ہے — یہ دونوں پلیٹ فارمز پر یکساں UI دیتا ہے۔ React Native نیٹیو UI اجزاء استعمال کرتا ہے — یہ نیٹیو ایپ کی طرح لگتا ہے۔ KMP UI کو نہیں سنبھالتا — یہ صرف کاروباری منطق شیئر کرتا ہے، UI نیٹیو رہتا ہے۔ انتخاب ترجیح پر منحصر ہے: یکساں UI (Flutter) یا زیادہ سے زیادہ نیٹیویٹی (React Native/KMP)۔

Kotlin Multiplatform کے ساتھ کراس پلیٹ فارم ڈویلپمنٹ: expect/actual, Kotlin/Native

Kotlin Multiplatform (KMP) Android اور iOS کے درمیان مشترکہ کوڈ کے لیے JetBrains ٹیکنالوجی ہے۔ Flutter اور React Native کے برعکس، KMP کراس پلیٹ فارم ڈویلپمنٹ کا ایک متبادل طریقہ ہے: یہ UI کو تبدیل نہیں کرتا بلکہ کاروباری منطق، نیٹ ورک کی درخواستیں، ڈیٹا ماڈلز اور ریپوزٹریز شیئر کرتا ہے۔ UI نیٹیو رہتا ہے: Android کے لیے Jetpack Compose، iOS کے لیے SwiftUI۔

expect/actual

expect — مشترکہ ماڈیول (commonMain) میں فنکشن یا کلاس کا اعلان جس کا پلیٹ فارم نفاذ ہے۔ KMP کے ساتھ کراس پلیٹ فارم ڈویلپمنٹ expect/actual استعمال کرتی ہے: actual ہر پلیٹ فارم (androidMain, iosMain) کے لیے ٹھوس نفاذ ہے۔ مثال: expect fun getDeviceId(): String — Android پر actual Settings.Secure استعمال کرتا ہے، iOS پر — UIDevice.current.identifierForVendor۔

Kotlin/Native

Kotlin/Native — ایک Kotlin کمپائلر نیٹیو بائنری (iOS فریم ورک) میں۔ یہ JVM کے بغیر iOS پر Kotlin کوڈ چلانے کی اجازت دیتا ہے۔ Kotlin/Native کمپائلیشن کے لیے LLVM استعمال کرتا ہے، جو Swift کے قریب کارکردگی دیتا ہے۔ Kotlin/JS — ویب اور React Native پروجیکٹس کے لیے Kotlin کا JavaScript میں کمپائلیشن۔

بلڈ ٹولز: Gradle KTS, CocoaPods Plugin, XCFramework

کراس پلیٹ فارم موبائل ایپ ڈویلپمنٹ کے بلڈ ٹولز — کوڈ اور حتمی بائنری کے درمیان پل۔ Gradle KTS Android حصہ کا انتظام کرتا ہے، CocoaPods Plugin KMP iOS انحصار کا انتظام کرتا ہے، XCFramework نیٹیو لائبریری کی تقسیم کا انتظام کرتا ہے۔

Gradle KTS

Gradle KTS — Groovy کی بجائے Kotlin DSL استعمال کرتے ہوئے Gradle کنفیگریشن۔ KTS Android Studio میں آٹوکمپلیٹ، ٹائپ چیکنگ اور ریفیکٹرنگ سیفٹی کو سپورٹ کرتا ہے۔ مثال: apply plugin: 'com.android.application' کی بجائے plugins { id("com.android.application") }۔ تمام نئے پروجیکٹس کے لیے تجویز کردہ۔

CocoaPods Plugin اور XCFramework

CocoaPods Plugin — KMP کے لیے Gradle پلگ ان جو مشترکہ ماڈیول کو CocoaPods pod کے طور پر شائع کرتا ہے۔ iOS ڈویلپر اسے Podfile کے ذریعے شامل کرتا ہے۔ XCFramework — Apple کا بائنری لائبریری تقسیم کا فارمیٹ۔ XCFramework میں متعدد آرکیٹیکچرز (arm64, x86_64) اور پلیٹ فارمز (iOS, macOS, watchOS) کے لیے بائنریز ہیں۔ KMP میں مشترکہ ماڈیول iOS کے لیے XCFramework کے طور پر ایکسپورٹ ہوتا ہے۔

اکثر پوچھے گئے سوالات

2026 میں کیا منتخب کریں: Flutter یا React Native؟

Flutter بہتر کارکردگی (Skia/Impeller)، ایک UI کوڈ بیس اور کراس پلیٹ فارم ڈویلپمنٹ میں اعلی استحکام پیش کرتا ہے۔ React Native — بڑی کمیونٹی، ویب ڈویلپمنٹ سے آسان منتقلی اور JSI کے ذریعے لچک۔ IT Sectr UI پر مرکوز پروجیکٹس کے لیے Flutter تجویز کرتا ہے، React Native اگر پروجیکٹ کو بار بار نیٹیو کوڈ کی ضرورت ہو۔

Flutter Platform Channel کے ذریعے نیٹیو کوڈ سے کیسے بات چیت کرتا ہے؟

Flutter ڈارٹ کی طرف MethodChannel کے ذریعے پیغام بھیجتا ہے۔ پیغام بائنری فارمیٹ میں انکوڈ ہو کر نیٹیو طرف (Kotlin/Swift) منتقل ہوتا ہے، جہاں اس پر کارروائی ہوتی ہے اور نتیجہ واپس کرتا ہے۔ موبائل ایپ ڈویلپمنٹ میں تمام مواصلات غیر متزامن ہیں۔

Kotlin Multiplatform میں expect/actual کیا ہے؟

expect مشترکہ کوڈ میں فنکشن یا کلاس کا اعلان ہے جس کا پلیٹ فارم نفاذ ہے۔ actual ہر پلیٹ فارم (Android/iOS) کے لیے ٹھوس نفاذ ہے۔ یہ بغیر پری پروسیسر کے مشروط کمپائلیشن کے لیے KMP کا میکانزم ہے۔

React Native میں Fabric اور Bridge میں کیا فرق ہے؟

Bridge پرانا آرکیٹیکچر ہے جہاں پیغامات JSON میں سیریلائز ہوتے ہیں اور قطار کے ذریعے غیر متزامن طور پر منتقل ہوتے ہیں۔ Fabric JSI کے ذریعے ہم وقت نیٹیو فنکشن کالز والا نیا آرکیٹیکچر ہے، تاخیر کو ختم کرتا ہے اور موبائل ایپ کی کارکردگی کو بہتر بناتا ہے۔

Hermes کیا ہے اور React Native کو اس کی ضرورت کیوں ہے؟

Hermes Meta کا JavaScript انجن ہے، React Native کے لیے بہتر بنایا گیا۔ یہ بلڈ وقت پر JS کو بائٹ کوڈ میں کمپائل کرتا ہے، ایپ اسٹارٹ اپ کو 2–3 گنا تیز کرتا ہے اور میموری کی کھپت کو کم کرتا ہے۔

خلاصہ

  • Flutter نیٹیو کوڈ کے ساتھ مواصلت کے لیے Platform Channel (MethodChannel) استعمال کرتا ہے۔ FFI — بغیر اوور ہیڈ کے براہ راست C فنکشن کالز کے لیے۔
  • React Native Bridge سے Fabric + JSI میں تبدیل ہو گیا۔ JSI ہم وقت نیٹیو فنکشن کالز کی اجازت دیتا ہے، پل کی تاخیر کو ختم کرتا ہے۔
  • Kotlin Multiplatform پلیٹ فارم کوڈ کے لیے expect/actual استعمال کرتا ہے۔ Kotlin/Native مشترکہ کوڈ کو نیٹیو iOS فریم ورک میں کمپائل کرتا ہے۔
  • کراس پلیٹ فارم موبائل ایپ ڈویلپمنٹ Flutter کے ساتھ Skia/Impeller، React Native کے ساتھ — JSI/Fabric، KMP کے ساتھ — نیٹیو کوڈ کے لیے expect/actual استعمال کرتی ہے۔
  • Hermes — React Native کے لیے JS انجن۔ اسٹارٹ اپ تیز کرتا ہے اور میموری کی کھپت کم کرتا ہے۔
  • Gradle KTS — Gradle کے لیے Kotlin DSL۔ CocoaPods Plugin اور XCFramework — کراس پلیٹ فارم ڈویلپمنٹ میں iOS بائنریز تقسیم کرنے کے لیے۔
  • فریم ورک کا انتخاب: یکساں UI کے لیے Flutter، JS کے ساتھ نیٹیو UI کے لیے React Native، نیٹیو UI کے ساتھ کاروباری منطق شیئر کرنے کے لیے KMP۔
  • کراس پلیٹ فارم موبائل ایپ ڈویلپمنٹ ٹیکنالوجی کا انتخاب کرتے وقت، کارکردگی کی ضروریات اور ٹیم کے سائز پر غور کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں