کاتلین مالتیپلتفرم

بحث چندپلتفرمی معمولاً دربارهٔ فریمورکهایی است که همهچیز را مشترک میکنند — یک کد، یک رابط کاربری، دو پلتفرم.
کاتلین مالتیپلتفرم رویکرد متفاوتی دارد و همین تفاوت است که ارزش دانستنش را میسازد: فقط منطق مشترک میشود، رابط کاربری هر پلتفرم نیتیو میماند.
تفکیک منطق از رابط
در هر اپلیکیشنی، دو بخش هست:
منطق: مدل داده، قواعد کسبوکار، اعتبارسنجی، ارتباط با سرور، ذخیرهسازی محلی، همگامسازی.
رابط کاربری: صفحات، پیمایش، انیمیشن، تعامل.
بخش اول در دو پلتفرم تقریباً یکسان است. قاعدهٔ محاسبهٔ تخفیف در اندروید و iOS فرقی ندارد.
بخش دوم واقعاً متفاوت است — و باید باشد، چون کاربر هر پلتفرم انتظار رفتار آشنای خودش را دارد.
کاتلین مالتیپلتفرم دقیقاً همین را میگوید: اولی را یک بار بنویسید، دومی را دو بار.
چه چیزی مشترک میشود
در عمل، معمولاً بین چهل تا هفتاد درصد کد:
- مدلهای داده
- قواعد کسبوکار و اعتبارسنجی
- لایهٔ ارتباط با سرور
- پایگاه دادهٔ محلی
- منطق همگامسازی و صف — همان الگویی که در همگامسازی آفلاین میآید
- مدیریت وضعیت
و رابط کاربری، پیمایش و دسترسی به سختافزار، نیتیو میمانند.
مزیتها
رابط کاربری واقعاً نیتیو. بدون لایهٔ واسط، بدون تفاوت محسوس در حس و کارایی.
قواعد کسبوکاری یک بار نوشته و یک بار تست میشوند. این بزرگترین مزیت واقعی است — چون باگ منطقی که در یک پلتفرم رفع شود و در دیگری بماند، شایعترین مشکل تیمهایی است که دو کد جدا دارند.
پذیرش تدریجی. میتوانید فقط یک ماژول را مشترک کنید و بقیه را دست نزنید. برای اپ موجود، این مهمترین ویژگی است — نیازی به بازنویسی نیست.
بدون قفل شدن. اگر تصمیم عوض شد، کد نیتیو سر جایش است.
هزینهها
نیاز به تخصص هر دو پلتفرم. برخلاف فریمورکهایی که وعده میدهند یک نفر همهچیز را بنویسد، اینجا همچنان به توسعهدهندهٔ اندروید و iOS نیاز دارید. اگر هدفتان کاهش تیم بود، این ابزار آن را نمیدهد.
رابط کاربری دو بار نوشته میشود — که معمولاً بخش بزرگی از کار است.
پیچیدگی ساخت. خط لولهٔ ساخت پیچیدهتر از پروژهٔ تکپلتفرمی است.
نیروی کمیاب در بازار ایران. توسعهدهندهای که با این ابزار کار کرده باشد، کم است. این معیار در انتخاب فناوری برای ما وزن بالایی دارد — همان چیزی که در انتخاب فناوری برای استارتاپ گفتیم.
مقایسه با گزینههای دیگر
| نیتیو جدا | کاتلین چندسکویی | فریمورک چندپلتفرمی | |
|---|---|---|---|
| اشتراک کد | صفر | منطق | منطق و رابط |
| حس نیتیو | کامل | کامل | نزدیک |
| نیاز به تخصص دو پلتفرم | بله | بله | کمتر |
| سرعت شروع | کند | متوسط | سریع |
| نیروی موجود در ایران | زیاد | کم | متوسط |
| پذیرش تدریجی در اپ موجود | — | آسان | سخت |
کِی انتخاب درستی است
اپ موجود نیتیو دارید و منطق تکراری آزارتان میدهد. بهترین حالت — بدون بازنویسی، ماژول به ماژول.
منطق کسبوکاریتان سنگین است. محاسبات مالی، قواعد پیچیده، همگامسازی آفلاین. هرچه منطق بیشتر، اشتراک بیشتر.
رابط کاربری برایتان مهم است و نمیخواهید مصالحه کنید.
تیم اندروید و iOS دارید که حاضرند همکاری کنند.
کِی نه
تیم کوچک یا یکنفره. اگر هدف این است که یک نفر هر دو پلتفرم را بسازد، فریمورکهای چندپلتفرمی مناسبترند — مقایسهشان در ریاکت نیتیو در برابر فلاتر.
اپ ساده و عمدتاً رابط کاربری. اگر منطق کمی دارید، چیزی برای اشتراک نیست.
نسخهٔ اول که باید سریع بیرون بیاید. پیچیدگی راهاندازی، سرعت شروع را کم میکند.
تیمی که تجربهٔ کاتلین ندارد.
و اگر هنوز مطمئن نیستید اپ لازم دارید، برگردید به اول اپ بسازیم یا سایت.
توصیهٔ عملی برای پروژهٔ موجود
اگر اپ نیتیو دارید و میخواهید امتحان کنید، مسیر کمریسک:
۱. یک ماژول کوچک و مستقل انتخاب کنید — مثلاً اعتبارسنجی یا مدلهای داده.
۲. همان را مشترک کنید و در هر دو اپ استفاده کنید.
۳. سه ماه کار کنید و ببینید تیم چه حسی دارد و خط لوله چقدر پیچیده شده.
۴. اگر جواب داد، ماژول بعدی.
مزیت این ترتیب این است که در هر مرحله میتوانید متوقف شوید و چیزی از دست ندادهاید.
و یک نکته دربارهٔ انتظار
هیچ راهکار چندپلتفرمیای دو برابر سریعتر نمیکند. رابط کاربری، تست، انتشار و پشتیبانی همچنان دو برابرند.
آنچه واقعاً به دست میآید، کاهش باگهای ناسازگاری بین دو پلتفرم است — جایی که اندروید و iOS رفتار متفاوتی نشان میدهند چون منطقشان جدا نوشته شده.
برای تیمهایی که این مشکل را دارند، همین یک مزیت کافی است. برای بقیه، احتمالاً نیست.