Kotlin Multiplatform برای اپلیکیشنهای موبایل
۱۲ خرداد ۱۴۰۵ · تیم XSofts · 6 دقیقه
چرا تیمهای محصول سراغ KMP میروند؟
دو اپ جدا برای iOS و Android یعنی دو بار نوشتن مدل، شبکه، اعتبارسنجی و همگامسازی. باگ در یکی درست میشود و در دیگری میماند. Kotlin Multiplatform لایهٔ دامنه را مشترک میکند و UI را بومی یا Compose Multiplatform میگذارد. هزینهٔ نگهداری پایین میآید، بدون اینکه مجبور شوید همه چیز را به یک وبویو بسپارید.
این انتخاب برای محصولی که منطق کسبوکار سنگینی دارد — نوبت، کیف پول، آموزش، انبار — بیشتر میصرفد تا برای یک اپ ویترینی. مسیر اجرایی را در صفحهٔ توسعه اپلیکیشن موبایل هم توضیح دادهایم.
معماری که دو پلتفرم را از هم عصبانی نکند
لایهٔ shared برای use-case، repository و مدلها باشد. لایهٔ platform برای UI، اعلان، خرید درونبرنامهای و سرویس سیستم بماند. قرارداد بین این دو را صریح بنویسید: چه چیزی suspend است، خطا چطور به UI میرسد، و وضعیت آفلاین مال کیست.
اگر UI را هم مشترک کنید، Compose Multiplatform یک گزینه است؛ اما برای تیم کوچک معمولاً بهتر است اول شبکه و دامنه را مشترک کنید و صفحه را بومی نگه دارید. اشتراک ۱۰۰ درصد از روز اول، ریسک ابزار و زمان انتشار را بالا میبرد.
از کجا شروع کنیم که پروژه گیر نکند؟
ماژول شبکه و مدل DTO امنترین شروع است. بعد لایهٔ ذخیرهٔ محلی و سپس use-caseهای اصلی. وقتی این سه پایدار شد، تیم iOS و Android روی UI رقابت سالم دارند، نه روی تفسیر دوبارهٔ API.
برای دیباگ iOS همچنان به Xcode نیاز دارید. این را در برآورد زمان و مهارت تیم حساب کنید. اگر کسی در تیم Cocoa نمیشناسد، KMP جادو نمیکند؛ فقط مرز کد مشترک را روشنتر میکند.
انتشار در بازار ایران و خارج
پایپلاین Android و iOS را جدا نگه دارید. نسخه را با semver پیش ببرید تا هر استور بداند کدام باینری با کدام API حرف میزند. قبل از انتشار، روی دستگاه میانردهٔ واقعی تست کنید؛ شبیهساز پرچمدار حافظه و شبکهٔ ایران را نشان نمیدهد.
اگر مخاطب داخل کشور است، مسیر کافهبازار و مایکت را از روز اول در ساخت حساب کنید: بستهبندی، درگاه، و سیاست بهروزرسانی با گوگلپلی یکی نیست. اگر مخاطب بینالمللی هم دارید، قابلیتهای وابسته به گوگل را پشت یک رابط بگذارید تا جایگزینی ممکن باشد.
چه زمانی KMP انتخاب درستی نیست؟
اگر اپ فقط چند صفحهٔ ایستا است، یا یکی از پلتفرمها در نقشهٔ راه نیست، اشتراک زودرس هزینهٔ اضافه است. اگر تیم فقط Swift میداند و قصد استخدام Kotlin ندارد، نگهداری shared سخت میشود. ابزار را با مهارت واقعی تیم بسنجید، نه با مقالهٔ روند سال.
جمعبندی
KMP وقتی میدرخشد که منطق دامنه تکرار میشود و UI باید حس بومی بدهد. شروع کوچک، قرارداد شفاف، و تست روی دستگاه واقعی مسیر کمریسک است. برای برآورد اشتراک کد در محصول خودتان، با تیم موبایل XSofts صحبت کنید.