היכולת לקבל הודעות בצורה מהימנה היא התכונה הכי חשובה בכל חוויית שימוש באפליקציית הודעות ב-Android. חשוב גם להטמיע את ההודעות תוך התחשבות בתקינות המערכת ובחיי הסוללה. במסמך הזה מפורטות אסטרטגיות וכלים מרכזיים שיעזרו לכם לוודא שהאפליקציה שלכם ל-Android מקבלת הודעות באופן עקבי, יעיל ואמין.
מנגנונים למסירת הודעות
הגישה הטובה ביותר להעברת הודעות אמינה תלויה בדרישות הספציפיות של האפליקציה. כדאי להביא בחשבון גורמים כמו:
- הצרכים הנוכחיים בזמן אמת
- תדירות ההודעות
- מגבלות הסוללה
הודעות בזמן אמת בחזית
כשהאפליקציה פועלת בחזית, המשתמשים מצפים בדרך כלל לקבל כמות גדולה יחסית של מידע, ורוצים לדעת פרטים כמו:
- האם האדם שאליו שולחים הודעה נמצא ליד המכשיר שלו?
- הם מקלידים?
- האם הם קראו את ההודעה?
הדרך הרגילה לתמוך בהחלפת נתונים בזמן אמת היא באמצעות פרוטוקול של לקוח-שרת, כמו WebSockets. פרוטוקול WebSockets מאפשר תקשורת קבועה ודו-כיוונית בין האפליקציה לבין השרת. ספריית OKHTTP כוללת הטמעה של פרוטוקול WebSocket שאפשר להשתמש בו בלקוח Android.
מסד הנתונים בזמן אמת ב-Firebase מספק קצה עורפי מוכן מראש וקצה חזיתי של לקוח שיכולים לטפל בסוג כזה של תקשורת בשמכם. הוא משתמש ב-WebSockets באופן פנימי כדי לאפשר תקשורת בזמן אמת בין הלקוח לבין השרת.
הודעות בזמן אמת ברקע
כשהאפליקציה לא פועלת יותר בחזית, חשוב להימנע מפעולות שמשפיעות לרעה על תקינות המערכת ועל חיי הסוללה. עדיין חשוב להעביר את ההתראות על הודעות בצורה מהימנה, ולכן מומלץ להשתמש בשירות העברת ההודעות בענן ב-Firebase (FCM).
FCM הוא פתרון להעברת הודעות בין פלטפורמות ששולח ביעילות התראות והודעות נתונים למכשירי Android (ולמכשירים אחרים). היא משתמשת בשכבת התעבורה של Android (ATL) במכשירים עם שירותי Google, כדי שהאפליקציה תוכל לקבל הודעה על שינויים כשהיא כבר לא פועלת. המהירות שבה ההודעה מועברת תלויה במצב המכשיר, בעדיפות של ההודעה ובשאלה אם האפליקציה כפופה להגבלות בגלל מצב שינה או מצב המתנה של האפליקציה.
שיפור המהימנות של מסירת ההודעות
כדי לשפר עוד יותר את מסירת ההודעות, כדאי לנסות את השיטות הבאות:
- אפשר להשתמש ב-
WorkManagerכדי להוציא את האפליקציה ממצב שינה מדי פעם כדי לבדוק אם יש הודעות חדשות כשהמכשיר מחובר לרשת, ועדיף גם כשהמכשיר מחובר למטען. - אפשר לקבל תובנות לגבי המסירה של FCM באמצעות כלים כמו מסוף Firebase ומדדי המסירה של Android SDK מ-FCM Data API.
- כדי לעקוב אחרי בעיות במסירת הודעות ולפתור אותן, אפשר להשתמש במנגנוני רישום ביומן ובכלים כמו Firebase Crashlytics.