מקרים לדוגמה

איך FotMob השתמשה באיתור מכשירים מקושר למכשיר אחר כדי להשיג שיעור שימוש גבוה במיוחד ב-Wear OS

משך הקריאה: 3 דקות
Garan Jenkin
מהנדס יחסי מפתחים

לאחרונה, אפליקציית FotMob חוותה את העלייה הגדולה ביותר שלה ביום אחד ב-Wear OS בקרב הקהל שהתקין אותה ב-5 השנים האחרונות, פי 2-3 מהממוצע היומי. הסוד? תהליך התקנה פשוט מקושר למכשיר אחר שעוזר למשתמשים לגלות את האפליקציה שלהם ל-Wear OS ישירות מהטלפון.

FotMob היא אחת מהפלטפורמות הפופולריות בעולם לכדורגל (יש כאלה שקוראים לזה סוקר!). היא ידועה באפליקציה לנייד שלה, שבה אפשר לראות את התוצאות בזמן אמת, ניתוחים סטטיסטיים וחדשות.

fotmob-side-by-side.png

בנוסף לאפליקציה לנייד, אפליקציית FotMob זמינה ב-Wear OS, ומאפשרת למשתמשים להתעדכן בתוצאות ובציונים האחרונים ישירות מפרק כף היד.

"משתמשים רבים ב-FotMob עוקבים אחרי משחקים בשידור חי, ולרוב זה קורה כשהם לא משתמשים בטלפון באופן פעיל", אומר רוי סולברג, מנהל טכנולוגיות Android ב-FotMob. “Wear OS מאפשר לאוהדים לראות במהירות את התוצאות, את האירועים במשחק ואת העדכונים ישירות מהיד, ולכן ראינו בו כהרחבה טבעית של חוויית השימוש ב-FotMob”.

האפליקציה FotMob מספקת חוויה חלקה במגוון גורמי צורה, וכך מאפשרת למשתמשים להמשיך ליהנות מהפלטפורמה בצורה הנוחה ביותר. התהליך הזה כולל וידוא שההגדרות וההעדפות – כמו קבוצות מועדפות – מסונכרנות בין המכשירים.

הפער בין הנתונים לבין המציאות

למרות שלמשתמשי FotMob רבים יש מכשיר Wear OS, ב-FotMob הבינו שחלק מהמשתמשים לא מודעים לאפליקציה ל-Wear OS. לכן, הצוות שקל אפשרויות טכניות להסביר למשתמשים על האפליקציה ל-Wear OS, ובסופו של דבר להתקין אותה ישירות מתוך אפליקציית הטלפון העיקרית.

למזלם, ספריית Wearable ב-Android וב-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, כדי שהמשתמש יוכל לראות מיד איך האפליקציה תיראה בשעון שלו.

fotmob_wear_wrist.png

כדי להתחיל את ההתקנה, האפליקציה משתמשת בממשק RemoteActivityHelper API כדי להפעיל את חנות Play בשעון:

val remoteActivityHelper = RemoteActivityHelper(context)

remoteActivityHelper.startRemoteActivity(
    Intent(Intent.ACTION_VIEW)
        .setData("market://details?id=${context.packageName}".toUri())
        .addCategory(Intent.CATEGORY_BROWSABLE),
    nodeId
).await()

תוצאות

"ממשקי ה-API של Wearable הפכו את ההטמעה לפשוטה", אומר רוי. "היכולת לזהות מכשירים מחוברים ולשאול על היכולות שלהם אפשרה לנו לקבוע במהירות אם אפליקציית שעון חכם כבר מותקנת. משם, בעיקר התמקדנו בעיצוב הנחיה שתהיה מועילה למשתמשים ולא פולשנית". 

ההשקה של התכונה 'התקנה מקושרת למכשיר אחר' הביאה לעלייה הגדולה ביותר ביום אחד בקהל המתקינים של FotMob ב-Wear OS ב-5 שנים האחרונות, והייתה גבוהה פי 2-3 משיעור ההתקנות הרגיל. תוך 48 שעות מההשקה המלאה, התווספו לאפליקציית שעון חכם יותר מ-1,500 התקנות חדשות¹.

"ב-10 הימים הראשונים ראינו עלייה משמעותית במספר ההתקנות החדשות של Wear OS", אומר רוי. "אפליקציית השעון החכם קיימת כבר שנים, אבל הנתונים האלה אישרו שהרבה משתמשים עם מכשירים תואמים פשוט לא ידעו שהיא קיימת".

התקנות במכשירים שונים

בנוסף לפתרון שבו נעשה שימוש ב-FotMob, השקנו עכשיו ספרייה כדי להקל עוד יותר על הטמעת תהליכי ההתקנה האלה במכשירים שונים באמצעות הספרייה של בקשות להתקנה בתוך האפליקציה.

הדוגמה הבאה מראה איך להוסיף בקשה להתקנה בנקודה המתאימה באפליקציה:

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. בנוסף, אפשר לעיין בספרייה החדשה של הנחיות להתקנה בתוך האפליקציה, שכוללת אפשרויות שיעזרו למשתמשים להשיג התקנה מקושרת למכשיר אחר.

[1]. התקנת נתונים מ-Play Console

נכתב על ידי:

להמשך הקריאה