شاپیفای ریاکت نیتیو رو کنار گذاشت
خلاصهٔ کاملتر
شاپیفای تو یک پست مهندسی اعلام کرده که از این به بعد نیتیو آیندهٔ موبایل این شرکته و ریاکت نیتیو رو کنار میگذاره. نویسنده میگه این خبر تو جامعهٔ موبایل همونقدر سروصدا کرد که خبر مهاجرت شاپیفای به ریاکت نیتیو شش سال پیش کرده بود. نکتهٔ عجیبترش اینه که فقط یک سال پیش همین تیم یک مقالهٔ کامل نوشته بود دربارهٔ اینکه چقدر از این انتخاب راضیه.
ماجرا از ۲۰۲۰ شروع شد. تو سهماههٔ سوم ۲۰۱۹، ۷۱ درصد خریدارهای شاپیفای از موبایل خرید کرده بودن و ساختن نسخهٔ اندروید اپها خیلی طول میکشید. ریاکت نیتیو سریعترین راه بود تا یک تیم با یک کدبیس هر دو پلتفرم رو بده بیرون؛ اپ Shop بعد از بازنویسی ۹۵ درصد کدش رو بین iOS و اندروید مشترک کرد. نویسنده مثال Clubhouse رو هم میآره که ۱۴ ماه نسخهٔ اندروید نداشت و تا وقتی اندرویدش اومد، موج رشدش تموم شده بود.
تا پارسال همهچیز خوب پیش رفته بود: شش اپ موبایل شاپیفای به ریاکت نیتیو منتقل شدن، لود صفحهها زیر ۵۰۰ میلیثانیه (P75) بود و بیشتر از ۹۹.۹ درصد سشنها بدون کرش. دردهاش هم مشخص بود، مثل دیباگ لرزون و وابستگی بیشتر به کتابخونههای شخص سوم.
پس چی عوض شد؟ به گفتهٔ Mustafa Ali، هد موبایل شاپیفای، مدلهای کدنویسی اونقدر بهتر شدن که نوشتن دوبارهٔ یک قابلیت، یکی با Swift و یکی با Kotlin، دیگه اون هزینهٔ سابق رو نداره. هزینهش از بین نرفته، ولی ایجنتها اونقدر از کار پیادهسازی و ترجمهٔ کد و تست و ریویو رو برمیدارن که دیگه فاکتور تعیینکننده نیست. در عوض نیتیو تیم رو به قابلیتهای خود پلتفرم و ابزار رسمیش نزدیکتر نگه میداره و لایهٔ انتزاع کمتری بین کد و پلتفرم میمونه.
یک نکتهٔ جالب اینه که مهاجرت به New Architecture (معماری جدید ریاکت نیتیو که لایهٔ ارتباط با کد نیتیو رو بازنویسی کرده) خیلی به دادشون نرسید: به گفتهٔ Ali استارت اپ روی اندروید حدود ۱۰ درصد و روی iOS ۳ درصد سریعتر شد و بعضی صفحههای پیچیده تا وقتی تیونشون نکردن حتی کندتر شدن. برای مشکل نگهداری دو کدبیس هم یک تستسوئیت مشترک ساختن که منطق بیزنسی رو هم روی Swift و هم روی Kotlin چک میکنه و تا هر دو همون تستها رو پاس نکنن، فیچر منتشر نمیشه. این تستها هدلس روی دسکتاپ اجرا میشن تا ایجنتها فیدبک سریع بگیرن.
نکات کلیدی:
- اپ Shop در فقط ۱۲ هفته بهصورت کامل نیتیو بازنویسی و منتشر شد
- مهاجرت به New Architecture فقط ۱۰ درصد استارت سریعتر روی اندروید و ۳ درصد روی iOS داد
- اپهای ریاکت نیتیو شاپیفای لود زیر ۵۰۰ میلیثانیه (P75) و بالای ۹۹.۹ درصد سشن بدون کرش داشتن
- تستسوئیت مشترک، منطق بیزنسی Swift و Kotlin رو با تستهای یکسان اعتبارسنجی میکنه
- Airbnb هم در ۲۰۱۶ ریاکت نیتیو رو گرفت و ۲۰۱۸ به خاطر پرفورمنس برگشت سمت نیتیو




