آیا ازهمگسیختگی سیستم عاملهای موبایل برای کارشناسان اندروید اهمیت دارد؟
اگر شما یکی از توسعهدهندگان اپلیکیشنهای موبایل هستید، حتما این سوال را از خود پرسیدهاید که: چند مدل گوشی و دستگاه مختلف میتوانند اپلیکیشن مرا اجرا کنند؟ جواب شما تا حد زیادی به کاربران هدف و دستگاههایی بستگی دارد که میخواهید از آنها پشتیبانی کنید، اما با توجه به 4000 دستگاه مختلفی که از سیستم عامل اندروید استفاده میکنند، باز هم تعداد دستگاههای باقیمانده بسیار زیاد است. در طرف مقابل اما یک توسعهدهنده با کمتر از 30 دستگاه اپلی روبروست که راحتی کار را برایش دو چندان میکند.
شکی نیست که دنیای اندروید شامل دستگاههای متنوع و گوناگونی است. این گستردگی برای خریداران انتخاب و آزادی بیشتری به ارمغان میآورد، اما برای توسعهدهندگان Fragmentation یا چندتکه بودن سیستم عاملها و سختافزارها آزاردهنده است. در این بین شرکتهای مختلف خدماتی ارائه میدهند تا توسعهدهندگان بتوانند اپلیکیشنهایشان را همزمان روی صدها دستگاه آزمایش کنند و حتی خود شرکت گوگل نیز با ارائه سرویس جدیدی بهنام Cloud Test Lab وارد این جریان شده است.
یکی از نویسندگان وبسایت Androidauthority در کنفرانس Google I/O امسال سراغ دو کارشناس اندروید رفت تا با آنها در مورد Fragmentation سیستم عاملهای موبایل صحبت کند. یکی از این توسعهدهندگان در شرکت نرمافزاری موبایل کار میکند و دیگری سمت بالایی در یک شرکت مخابراتی دارد. نفر اول نظرش را بهطور کلی اینگونه بیان کرد:
من خیلی به Fragmentation اهمیت نمیدهم، چون ما اپلیکیشنهایمان را مطابق مقیاس میسازیم. تنها مشکلی که در حال حاضر با آن روبروییم این است که به اندازه کافی فضا و حافظه آزاد (مثلا برای بارگذاری عکسهای بزرگ) در اختیار نداریم.
گوگل برای تطبیق نمایشگرهایی با اندازههای مختلف، پیکسلها را مستقل از تراکم اجرا کرده است. این یکی از مشکلهاست. مسئله دیگر به سطوح API مربوط میشود که گوگل با استفاده از appcompat سعی کرده به رفع آن کمک کند، البته چیزهای دیگری هم هست که میشود به جای آن استفاده کرد.
نظر شما در مورد تفاوت تولیدکنندگان تلفن همراه و تفاوت سختافزارهایشان چیست؟
اگر منظورتان مقایسه سامسونگ با الجی و چیزهایی مثل این است، باید بگویم بیشتر به سختافزار برمیگردد. مثلا گاهی یک مورد عجیب با GPU به وجود میآید و ما سعی میکنیم کدها را تغییر دهیم و اصلاح کنیم، اما گاهی به مشکلاتی برمیخوریم که نیاز است خود شرکت سازنده فریمور را برای رفع مشکل آپدیت نماید.
نظر شما بهعنوان کسی که در اپراتور مخابراتی کار میکند در مورد این مسئله چیست؟
اپراتورهای مخابراتی اکوسیستم را کنترل میکنند. ما سختافزارها، مشخصات، طراحی و حتی سیستم عامل را کنترل میکنیم. ما به گوگل و مایکروسافت (و گاهی اپل) میگوییم که چه نوع API باید وجود داشته باشد و آنها را مجبور به استانداردسازی میکنیم.
میدانم اپراتورهای خارج از امریکا روابط متفاوتی با مشتریان و دولت کشورشان دارند، اما این ادعا در مورد قدرت اپراتورهای امریکایی در مورد آنها نیز صادق است؟
این به بزرگی و قدرت اپراتور بستگی دارد. وقتی من به نشست بزرگ اپراتورهای مخابراتی میروم، هر کسی که در این صنعت نقش مهمی دارد آنجا خواهد بود؛ گوگل، مایکروسافت، اپل، موزیلا و... در نتیجه شرکتها میتوانند نظرها و درخواستهایشان را به یکدیگر منتقل کنند.
در حال حاضر، پس از گذشت 8 یا 9 سال از ورود اندروید، ما روی مشکل ازهمگسیختگی اندروید کار میکنیم، ولی دیگر با اندازه نمایشگر دستگاهها مشکلی نداریم. مشکل فعلی نوعی Fragmentation معکوس است. گوگل بسیاری از API ها را از دسترس خارج کرده است. بهطور مثال، شما نمیتوانید دسترسی مستقیم به NFC داشته باشید یا اگر اپلیکیشن SMS شما اپلیکیشن پیشفرض SMS نباشد، اجازه ارسال و دریافت پیام کوتاه را نخواهید داشت. در مورد سیستم پرداخت با موبایل هم قضیه به همین شکل است.
من بهتازگی اپلیکیشنی ساختهام که برای ارسال SMS تنها از دسترسی android.permission.SEND_SMS. استفاده میکند.
شما فعلا میتوانید با آن اساماس ارسال کنید، اما نمیتوانید ترافیک را زیر نظر بگیرید یا به لاگ تماسهایتان دسترسی داشته باشید.
خیلی از این دسترسیها بسته شدهاند. وقتی برنامههای ما قابلیتهای بهخصوصی دارند، اما بهدلیل بسته بودن سطح دسترسیها مجبور میشویم نسخههای جدید با ویژگیهای کمتری منتشر کنیم، ازهمگسیختگی ایجاد میشود. ما بههیچوجه دوست نداریم قابلیتهایی را از کاربران بگیریم که به آنها عادت کردهاند و برای دستگاهها مزیت به حساب میآیند.
در مورد ازهمگسیختگی iOS چطور؟
Fragmentation در iOS کاملا فرق دارد. گاهی اوقات لازم است برنامههای متعددی داشته باشید. از آنجا که اپل سختافزار را کنترل میکند، در تکامل ویژگیهای خاص تمایل چندانی به همکاری با شما نشان نمیدهد.
اپل خیلی دوست ندارد با اپراتورها و توسعهدهندگان بزرگی همکاری کند که بر اکوسیستم تاثیرگذارند. او شرکای موردعلاقهاش را انتخاب و با آنها همکاری میکند. افرادی که در شرکت اپل کار میکنند میدانند دنبال چه چیزیاند و چه میخواهند و تغییری در این وضعیت ایجاد نمیکنند. اگر دنبال چیز بیشتری باشید که آنها برنامهای برایش نداشته باشند یا نخواهند که آن کار انجام شود، این اتفاق هیچگاه رخ نخواهد داد.
نظرتان درباره سازگاری عقبرو (سازگاری با نسخههای پیشین) که ممکن است در کار همه توسعهدهندگان، چه اندروید و چه iOS، تاثیرگذار باشد چیست؟
ما کاری با سازگاری عقبرو نداریم. اندروید الگوها و فریمورکهایی دارد که به این موضوع رسیدگی میکنند و درون خود سیستم عامل وجود دارد.
اما iOS اپل معکوس است. در iOS ما با تنوع API مواجه نیستیم، زیرا 95 درصد کاربران در همان روز اول انتشار سیستم عامل جدید، دستگاهشان را به آن آپدیت میکنند. افرادی هم که از نسخههای قدیمی iOS استفاده میکنند در اقلیت قرار داند و حائز اهمیت نیستند.
مایکروسافت چطور؟
در حال حاضر مایکروسافت در رده سوم بازی است. مایکروسافت هر 1.5 سال کل اکوسیستم خودش را مجددا راهاندازی میکند. این شرکت ابتدا با Pocket PC شروع کرد و سپس به سمت ویندوز موبایل رفت و بعدا ویندوز 8 و 8.1 و 10 را برای موبایلها منتشر ساخت. خود ویندوز 8 نسخهای بهنام Windows RT داشت که حدود 60 درصد API دسکتاپها را روی موبایل را پوشش میداد و شروعی دوباره محسوب میشد.
برای اپراتورها هر یک از این تغییرات بهمعنی دوبارهکاری و فریمورک جدید است و مثل این است که هر بار سیستم عامل تولید کند. چند ماه پیش مایکروسافت پلتفرم اپلیکیشنهای یونیورسال را معرفی کرد که قرار است بعضی از این مشکلات را حل کند. دیگر لازم نیست توسعهدهندگان برای هر یک از دستگاهها اپلیکیشن جداگانه بنویسند، بلکه با نوشتن یک اپلیکیشن روی این پلتفرم جدید میتوان آنها را در همه دستگاههایی اجرا کرد که از ویندوز 10 استفاده میکنند، مثل ایکس باکس، تبلتها، دسکتاپها و گوشیهای تلفن همراه.
تا چه اندازه تلفنهای ویندوزی در برنامهریزی شرکت شما نقش دارد؟
بهعنوان اپراتور مخابراتی، ما نمیخواهیم در این عرصه فقط دو بازیکن وجود داشته باشد. ما بازیکنان زیادی میخواهیم تا اکوسیستمی بسیار غنی داشته باشیم، چون در غیر این صورت راهی یکطرفه به وجود میآید که همه به آن سمت میروند و این ممکن است مخرب باشد.
آیا حرف پایانی دارید؟
وقتی شما یک اپراتور مخابراتی را انتخاب میکنی،د میخواهید تجربهای یکسان از آن اپراتور با دستگاههای مختلف داشته باشید. میخواهید مخاطبان شما روی ویندوز، اپل، اندروید، سیمبین، فایرفاکس، تایزن و سایر تلفنهای همراه کار کنند. اگر گوشی جدیدی میخرید، میخواهید به اکانت خود همانگونه دسترسی داشته باشید که به شماره تلفنهایتان دسترسی دارید. هدف اپراتور فراهم کردن این تجربه برای مشتری است که البته بهآسانی هم به دست نمیآید و نیاز به تلاش بسیار دارد.
شما چه فکر میکنید؟
آیا پاسخهای این دو کارشناس اندروید را، که در صنعت تلفنهای همراه فعالیت میکنند، درست میدانید؟ آیا فکر میکنید اپراتورهای مخابراتی با قدرت زیادشان در این زمینه دخالت میکنند؟ در مورد ازهمگسیختگی سیستم عاملها چه نظری دارید؟ نظر خودتان را در کامنتها با ما در میان بگذارید.
منبع: androidauthority