קבלת הודעות באופן מהימן

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

מנגנונים למסירת הודעות

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

  • צרכים נוכחיים בזמן אמת
  • תדירות ההודעות
  • מגבלות הסוללה

העברת הודעות בזמן אמת בחזית

כשהאפליקציה פועלת בחזית, המשתמש בדרך כלל מצפה לקבל כמות מידע גדולה יחסית, ורוצה לדעת דברים כמו:

  • האם האדם שאליו נשלחת ההודעה נמצא במכשיר שלו?
  • הם מקלידים?
  • האם הם קראו את ההודעה?

הדרך הרגילה לתמוך בהעברת נתונים כזו בזמן אמת היא להשתמש בפרוטוקול לקוח-שרת, כמו WebSockets. פרוטוקול WebSockets מאפשר תקשורת קבועה ודו-כיוונית (full-duplex) בין האפליקציה לשרת. ספריית OKHTTP כוללת הטמעה של פרוטוקול WebSocket שאפשר להשתמש בה בלקוח Android.

מסד הנתונים בזמן אמת ב-Firebase מספק קצה עורפי מובנה וקצה קדמי של לקוח שיכולים לטפל בתקשורת מהסוג הזה בשבילכם. הוא משתמש ב-WebSockets באופן פנימי לתקשורת בזמן אמת בין הלקוח לשרת.

העברת הודעות בזמן אמת ברקע

כשהאפליקציה כבר לא פועלת בחזית, חשוב להימנע מפעולות שמשפיעות לרעה על תקינות המערכת ועל חיי הסוללה. עדיין חשוב להעביר התראות על הודעות בצורה מהימנה, ולכן מומלץ להשתמש בהעברת הודעות בענן ב-Firebase‏ (FCM).

‫FCM הוא פתרון להעברת הודעות בפלטפורמות שונות, שמאפשר לשלוח ביעילות התראות והודעות נתונים למכשירי Android (ולמכשירים אחרים). הוא משתמש ב-Android Transport Layer‏ (ATL) במכשירים עם שירותי Google, כדי שהאפליקציה תוכל לקבל התראות על שינויים כשהיא כבר לא פועלת. הזמן שלוקח להודעה להגיע תלוי במצב המכשיר, בעדיפות של ההודעה ובשאלה אם האפליקציה כפופה להגבלות בגלל מצב חיסכון בסוללה או אפליקציה במצב המתנה.

שיפור האמינות של מסירת ההודעות

כדי לשפר את מסירת ההודעות, כדאי לנסות את השיטות הבאות: