مطالعات موردی
چگونه FotMob از قابلیت کشف بین دستگاهی برای ثبت رکورد پذیرش Wear OS استفاده کرد؟
۳ دقیقه مطالعه

FotMob اخیراً بزرگترین افزایش یک روزه استفاده از Wear OS را در بین مخاطبان نصب شده خود در 5 سال گذشته تجربه کرده است، که 2 تا 3 برابر میانگین روزانه است. راز این افزایش چیست؟ یک فرآیند نصب ساده بین دستگاهی که به کاربران کمک میکند تا برنامه Wear OS خود را مستقیماً از طریق تلفن خود کشف کنند.
FotMob یکی از محبوبترین پلتفرمهای فوتبال (بعضیها آن را ساکر مینامند!) در جهان است که به خاطر اپلیکیشن موبایلش که نتایج زنده، تحلیلهای آماری و اخبار را ارائه میدهد، شناخته میشود.

علاوه بر اپلیکیشن موبایل، FotMob برای Wear OS نیز موجود است و به کاربران این امکان را میدهد که مستقیماً از روی مچ دست خود از آخرین امتیازات و نتایج مطلع شوند.
روی سولبرگ، سرپرست بخش اندروید در FotMob، میگوید : «بسیاری از کاربران FotMob مسابقات را به صورت زنده دنبال میکنند و این اغلب زمانی اتفاق میافتد که به طور فعال از تلفن خود استفاده نمیکنند. Wear OS به طرفداران این امکان را میدهد که به سرعت نتایج، رویدادهای مسابقه و بهروزرسانیها را مستقیماً از روی مچ دست خود مشاهده کنند، بنابراین ما آن را به عنوان یک افزونه طبیعی برای تجربه FotMob دیدیم.»
با ارائه یک تجربه روان در دستگاههای مختلف، FotMob تضمین میکند که کاربرانش میتوانند به راحتترین شکل ممکن از پلتفرم خود نهایت استفاده را ببرند. این شامل همگامسازی تنظیمات و ترجیحات - مانند تیمهای مورد علاقه - در بین دستگاهها نیز میشود.
شکاف اکتشافی
با وجود اینکه بسیاری از کاربران FotMob دستگاهی با سیستم عامل Wear OS دارند، FotMob متوجه شد که ممکن است برخی از کاربران از وجود برنامه Wear OS بیاطلاع باشند. این موضوع باعث شد تا تیم توسعهدهنده گزینههای فنی را برای آموزش کاربران در مورد نصب مستقیم برنامه Wear OS از داخل برنامه اصلی گوشی در نظر بگیرد.
خوشبختانه، کتابخانه Wearable در اندروید و Wear OS دقیقاً همان بلوکهای سازندهای را که FotMob برای ایجاد یک تجربه درونبرنامهای که به کاربرانش اجازه انجام چنین کاری را میدهد، نیاز داشت، فراهم میکند.
تشخیص دستگاههای واجد شرایط Wear OS
در داخل برنامه تلفن FotMob، تیم از NodeClient برای شناسایی دستگاههای متصل Wear OS - نامزدهای برنامه Wear OS - استفاده کرد:
val connectedNodes = nodeClient.connectedNodes.await()
علاوه بر این، تیم قابلیتی را در برنامه Wear OS تعریف کرد که نشان میدهد FotMob روی دستگاه نصب شده است. این قابلیت به عنوان یک منبع XML در بسته Wear OS تعریف شده و سپس در برنامه تلفن مورد جستجو قرار میگیرد:
val nodesWithApp = capabilityClient .getCapability(CAPABILITY_WEAR_APP, CapabilityClient.FILTER_REACHABLE) .await() .nodes
با جستجوی تنها گرههای بدون این قابلیت، تیم تحقیقاتی اطمینان حاصل کرد که برنامه تلفن FotMob فقط دستگاههای Wear OS بدون برنامه را فهرست میکند.
شروع جریان نصب
تیم FotMob یک صفحه راهنمای آموزشی نیم صفحهای طراحی کرد که به سرعت کاربر را از فرصت آگاه میکند و به او اجازه میدهد یا روند نصب را شروع کند یا آن را رد کند. این صفحه شامل یک اسکرینشات برجسته از تجربه Wear OS بود که به کاربر اجازه میداد بلافاصله ببیند که برنامه روی ساعتش چگونه به نظر میرسد.

برای شروع نصب، برنامه از API مربوط به RemoteActivityHelper برای اجرای Play Store روی ساعت استفاده میکند:
val remoteActivityHelper = RemoteActivityHelper(context) remoteActivityHelper.startRemoteActivity( Intent(Intent.ACTION_VIEW) .setData("market://details?id=${context.packageName}".toUri()) .addCategory(Intent.CATEGORY_BROWSABLE), nodeId ).await()
نتایج
روی میگوید: «رابطهای برنامهنویسی کاربردی پوشیدنی، پیادهسازی را ساده کردند . توانایی تشخیص دستگاههای متصل و قابلیتهای پرسوجو به این معنی بود که میتوانستیم به سرعت تشخیص دهیم که آیا برنامه ساعت از قبل نصب شده است یا خیر. از آنجا به بعد، بیشتر طراحی یک اعلان بود که برای کاربران مفید به نظر برسد تا اینکه مزاحم باشد.»
عرضه قابلیت نصب بین دستگاهی، بزرگترین افزایش روزانه در تعداد مخاطبان نصبشده FotMob در Wear OS را در ۵ سال گذشته نشان داد، ۲ تا ۳ برابر بیشتر از نرخ نصب معمولی. ظرف ۴۸ ساعت پس از عرضه که به ۱۰۰٪ رسید، این برنامه ساعت بیش از ۱۵۰۰ نصب جدید داشت¹.
روی میگوید: «در عرض ۱۰ روز اول، شاهد افزایش قابل توجهی در نصبهای جدید Wear OS بودیم. این اپلیکیشن ساعت سالهاست که وجود دارد، اما این موضوع تأیید کرد که بسیاری از کاربران دارای دستگاههای سازگار، از وجود آن بیاطلاع بودهاند.»
نصبهای بین دستگاهیِ در حال تکامل
علاوه بر راهکاری که توسط FotMob به کار گرفته شده است، اکنون کتابخانهای راهاندازی کردهایم تا پیادهسازی این مراحل نصب بین دستگاهی را از طریق کتابخانه In-App Install Prompts آسانتر کند.
مثال زیر نحوهی اضافه کردن اعلان نصب در نقطهی مناسب از برنامهی شما را نشان میدهد:
val crossDevicePromptManager = CrossDevicePromptManagerFactory.create(activity) val request = CrossDevicePromptInstallationRequest.create() try { val info = crossDevicePromptManager.requestInstallationPromptFlow(request).await() crossDevicePromptManager.launchPromptFlow(activity, info).await() } catch (e: CrossDevicePromptException) { Log.e(TAG, "Cross-device prompt failed with error: ${e.errorCode}", e) }
مراحل بعدی: همین امروز سفر چند دستگاهی خودتان را بسازید
برای کسب اطلاعات بیشتر در مورد نحوه افزودن قابلیت نصب بین دستگاهی به برنامه خود، به نمونه DataLayer مراجعه کنید و کتابخانه جدید In-App Install Prompts را بررسی کنید که گزینههایی را برای نحوه کمک به کاربرانتان در دستیابی به نصب بین دستگاهی در اختیار شما قرار میدهد.
[1]. نصب داده از کنسول توسعهدهندگان پلی
ادامه مطلب

مطالعات موردی
اپلیکیشن ذهن آگاهی سپاسگزاری (Gratitude) از طریق یادداشتهای روزانهی کوچک، جملات تاکیدی و تابلوهای آرزوها، ثبات قدم را تشویق میکند. این اپلیکیشن بیش از ۶ میلیون دانلود، ۱۵۰ هزار امتیاز ۵ ستاره و ۱۰۰ میلیون ورودی در دفترچه خاطرات خود ثبت کرده است.
Amrit Sanjeev , Ash Nohe • ۳ دقیقه مطالعه

مطالعات موردی
کاروت یک اپلیکیشن بازار همتا به همتای فرامحلی و مبتنی بر جامعه است که به کاربران امکان خرید، فروش و تجارت اقلام با سایر کاربران تأیید شده را میدهد. این پلتفرم از زمان راهاندازی در کره جنوبی در سال ۲۰۱۵، به بازارهای جهانی گسترش یافته و بیش از ۴۳ میلیون کاربر ثبتنامشده را به خود جذب کرده است.
Thomas Ezan , Tracy Agyemang • 2 دقیقه خواندن

مطالعات موردی
مونزو یک بانک دیجیتال بریتانیایی با ۱۵ میلیون مشتری و در حال رشد است. با گسترش اپلیکیشن، تیم مهندسی زمان راهاندازی اپلیکیشن را به عنوان یک حوزه حیاتی برای بهبود شناسایی کرد، اما نگران بود که این امر نیاز به تغییرات قابل توجهی در کدبیس آنها داشته باشد.
Ben Weiss , Tracy Agyemang • ۲ دقیقه مطالعه
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.






