/
یادداشتهای مهندسی
فراگیر بودن کروم معمولاً ما رو گمراه میکنه. فکر میکنیم کاربرامون همهشون از کروم استفاده میکنن. ولی واقعاً قضیه همیشه اینه؟
اگه بخواین مرورگرهایی که کاربرای اپلیکیشنتون ازشون استفاده میکنن رو رتبهبندی کنین، لیستتون چه شکلی میشه؟ کروم مطمئناً اول میاد. شاید حتی فکر کنین سافاری دومه، چون هر روز کلی کاربر آیفون اطرافتون میبینین. ولی بقیهی لیست چی؟
همهگیری کروم معمولاً ما رو گمراه میکنه. فکر میکنیم اکثر کاربرها روی کروم هستن و اج هم که بر پایهی کرومیومه و سافاری هم کاربرای اپل رو پوشش میده و از این حرفا. اینجوری خودمون رو قانع میکنیم که تست کردن روی کروم و سافاری کافیه. اما در واقعیت، این استراتژی ممکنه توی بعضی سناریوها غافلگیرمون کنه.
قبل از اینکه بریم سراغ اینکه کدوم مرورگرها لایق توجه بیشترن، بد نیست یه سؤال دیگه بپرسیم: آیا تفاوت مرورگرها هنوزم مهمه؟
احتمالاً دربارهی ناسازگاریهای مرورگرها توی سالهای اول توسعهی وب شنیدین، که خوشبختانه خیلیهاشون با توسعه استانداردهای مدرن وب حل شدن. توسعهدهندهها قبلاً مجبور بودن همون استایلها و حتی بخشهایی از جاوااسکریپتشون رو چندباره بنویسن تا سایتها روی مرورگرهای مختلف یکسان رفتار کنن.
ولی الان چی؟ مگه الان مرورگرها استاندارد نشدن؟ خب، هنوزم چند تا جا هست که مرورگرها ممکنه رفتارهای متفاوتی داشته باشن:
position: sticky رو با هم قاطی کنید ببینید چی میشه)پس بله، تفاوت مرورگرها هنوزم مهمه.
ولی چرا باید برامون مهم باشه که برای همهی کاربرها تجربه کاربری (UX) یکسان فراهم کنیم؟ چون UX بهتر برای همه، یعنی سودآوری بیشتر برای کسبوکار. پوشش دادن ۹۰ درصد کاربرا با تست کردن فقط مرورگرهای اصلی، شروع خوبیه. ولی اگه با چند تا تغییر کوچیک بشه این عدد رو به ۹۵ درصد رسوند چی؟
شاید بگین: «وب اپلیکیشنم روی کروم، فایرفاکس و سافاری درست کار میکنه، پس جام امنه.» ولی آیا کروم، فایرفاکس و سافاری همیشه سه مرورگر پراستفادهای هستن که مخاطب هدفتون ازشون استفاده میکنه؟ توی عکس زیر میتونین آمار سهم بازار جهانی مرورگرها رو ببینین که از gs.statcounter.com برداشتم.

و همچنین سهم بازار برای ایران.

میبینین که مرورگر سامسونگ اینترنت جایگاه چهارم رو داره. شرط میبندم خیلی از توسعهدهندهها (از جمله خودم قبل از دیدن این آمار) وب اپلیکیشنشون رو روی این مرورگر تست نکردن، چون از دید همهمون دور مونده.
با اینکه سامسونگ اینترنت بر پایهی پروژهی متنبازِ کرومیومه، ولی فیچرهای مختص خودش و گاهی رفتارهای متفاوتی هم داره. فرض کردن اینکه دقیقاً مثل کروم رفتار میکنه میتونه باگهای عجیبوغریبی ایجاد کنه.
این آمار برای هر کشور، منطقه، و حتی هر حوزهی کسبوکاری فرق میکنه. پس بسته به دامنهی اپلیکیشنتون باید ببینید از کدوم مرورگرها باید کامل پشتیبانی کنین. توی مورد من، برای اپلیکیشنی که برای کاربرای داخلیه، کروم، سامسونگ اینترنت، فایرفاکس، و سافاری رو تست میکنم اگه زمان زیادی رو از من نگیره. باید بسته به شرایط خودتون تصمیم بگیرین.
بعضی اپلیکیشنها مثل اینستاگرام، تلگرام، یا فیسبوک لینکها رو با یه مرورگر داخلی (مثل Android WebView یا iOS WKWebView) باز میکنن. با اینکه اینها بر پایهی همون رندرینگاینجینهای کروم یا سافاریان، ممکنه رفتار متفاوتی داشته باشن.
اگه یه اکانت شبکهی اجتماعی دارین که ترافیک مستقیم زیادی به وب اپلیکیشنتون میفرسته، باید این مرورگرها رو هم پشتیبانی کنین. قطعاً مورد رضایتتون نیست که کاربرها از تجربهی راحت و دلپذیر اپلیکیشن مبدأ بیان بیرون و برسن به وب اپلیکیشن نصفهونیمه و پرباگ شما. کاربرها بهسادگی علاقهشون رو از دست میدن و وب اپلیکیشن رو ترک میکنن. پس باید این سناریوها رو هم تست کنین.
هر پروژهای کاربرای مخصوص خودش رو داره. بعضیها ممکنه کاربرایی داشته باشن که عمدتاً از کروم استفاده میکنن (مثل یه ERP داخلی که سازمان همه رو مجبور میکنه از یه مرورگر خاص استفاده کنن)، و بعضی اپلیکیشنها ممکنه دامنهی جهانی داشته باشن که توش کاربراشون از انواع مرورگرها استفاده میکنن.
پشتیبانی از مرورگر به معنی «پشتیبانی از مرورگرهای اصلی که بیشترین سهم بازار جهانی رو دارن» نیست بلکه به این معنیه که کاربران رو بشناسیم و از مرورگرهایی پشتیبانی کنیم که کاربرها واقعاً ازشون استفاده میکنن.