מערכת גיימיפיקציה לאפליקציות מובייל: מערכת משימות ומסעות
אנו מפתחים מערכות משימות ומסעות לגיימיפיקציה של אפליקציות מובייל. בניגוד להישגים פשוטים ("השלם 3 אימונים"), מסע מגדיר רצף שלבים עם נרטיב: "קח את מסלול המתחיל: אימון ראשון → 3 אימונים בשבוע → רצף של 7 ימים → שיא אישי ראשון." מכניקה זו מגדילה את שימור המשתמשים ב-30–50% לפי הנתונים שלנו, והמרת ההפעלה עולה ב-25%. יישמנו מערכות כאלה עבור 20+ אפליקציות עם קהלים הנעים בין 10 אלף למיליון משתמשים. המערכת מבוססת על ארכיטקטורה גמישה: אנו משתמשים ב-PostgreSQL עם JSONB לאחסון התקדמות, ב-SwiftUI/Kotlin Compose לצד הלקוח, וב-GraphQL להעברת נתונים. במאמר זה, אנו מפרקים סוגי מסעות, סכמת נתונים ודפוסי UX שמובילים לשימור גבוה. אנו מכסים גם מסעות התחלתיים בסיסיים וגם שרשראות סיפור מורכבות עם הסתעפויות. צור קשר כדי להעריך את הפרויקט שלך.
כיצד בנויה הארכיטקטורה של מערכת המסעות?
מסע מורכב משלבים (QuestStep) המבוצעים ברצף או במקביל. כל שלב הוא תנאי על אירועי משתמש. הארכיטקטורה מבוססת על סכמת נתונים מנורמלת:
סכמת נתונים של מערכת מסעות
Quest: id, title, description, icon
type: ENUM(linear, parallel, branching)
is_repeatable: BOOL -- ежедневные/еженедельные миссии
expires_at: nullable TIMESTAMP
xp_reward, badge_id
QuestStep:
id, quest_id, step_order
title, description
trigger_event: VARCHAR -- "workout_completed"
trigger_condition: JSON -- {"count": 3, "period": "week"}
is_optional: BOOL -- для branch-квестов
xp_partial_reward
UserQuestProgress:
user_id, quest_id, current_step
status: ENUM(not_started, in_progress, completed)
started_at, completed_at
step_progress: JSON -- {"step_1": {"completed": true}, "step_2": {"count": 2}}Quest: id, title, description, icon type: ENUM(linear, parallel, branching) is_repeatable: BOOL -- ежедневные/еженедельные миссии expires_at: nullable TIMESTAMP xp_reward, badge_id QuestStep: id, quest_id, step_order title, description trigger_event: VARCHAR -- "workout_completed" trigger_condition: JSON -- {"count": 3, "period": "week"} is_optional: BOOL -- для branch-квестов xp_partial_reward UserQuestProgress: user_id, quest_id, current_step, status: ENUM(not_started, in_progress, completed) started_at, completed_at step_progress: JSON -- {"step_1": {"completed": true}, "step_2": {"count": 2}} כ-JSON מאפשר אחסון התקדמות הטרוגנית לכל שלב ללא נורמליזציה. על Postgres JSONB עם אינדקס GIN, זה יעיל לחיפוש.
סוגי מסעות לתרחישים שונים
מסעות התחלתיים מדריכים משתמש חדש דרך שלבי מפתח במוצר: "הגדר פרופיל → הוסף רשומה ראשונה → הזמן חבר → הגדר מטרה." אלה מבוצעים פעם אחת. הם קריטיים לשיעור ההפעלה, ומגבירים אותו ב-25–40%.
משימות יומיות/שבועיות (is_repeatable = true) מספקות סיבה קבועה לחזור. כל יום שני, שלוש משימות חדשות לשבוע. רנדומיזציה ממאגר, אך תוך התחשבות בהתנהגות המשתמש: פשוטות יותר למתחילים, קשות יותר לוותיקים. דורש step_progress עם משקלים ולוגיקת בחירה.
מסעות סיפור הם שרשראות של 5–10 שלבים הנחשפים בהדרגה. השלב הבא נראה רק לאחר השלמת הנוכחי. זה יוצר מטרה ארוכת טווח ומגדיל את שימור יום 30 ב-15%.
מסעות עם הסתעפות מאפשרים למשתמשים לבחור נתיב בהתפצלות: "האם אתה מעדיף אירובי או כוח?" — הבחירה קובעת את השלבים הבאים. מיושם באמצעות mission_pool + לוגיקת בחירה ב-QuestStep.is_optional.
| סוג מסע | מטרה | ניתן לחזרה | מספר שלבים |
|---|---|---|---|
| התחלתי | הפעלה | לא | 4-6 |
| משימות יומיות | שימור | כן (יומי) | 1 (משימה) |
| סיפור | מוטיבציה ארוכת טווח | לא | 5-10 |
| הסתעפות | התאמה אישית | לא | 3-8 עם התפצלויות |
למה לבחור במערכת מסעות עם התקדמות?
מסעות יוצרים את אפקט זייגרניק הפסיכולוגי, שמניע משתמשים לחזור. השווה: רשימת הישגים פשוטה נותנת סיפוק חד-פעמי, בעוד רצף שלבים עם התקדמות נראית שומר על משתמשים פי 2 יותר זמן. הלקוחות שלנו רואים צמיחה ב-DAU של 20–30% לאחר היישום.
עדכון התקדמות
מונע-אירועים, סינכרוני עם שאר לוגיקת הגיימיפיקציה. בעת קבלת אירוע UserQuestProgress.step_progress:
- הענק XP למשתמש
- עדכן התקדמות הישגים
- עדכן התקדמות מסעות פעילים עם trigger_event תואם
- בדוק השלמת שלב ומסע
- החזר
workout_completedללקוח
הכל בעסקה אחת. הלקוח מקבל סט מוכן של אירועים לאנימציה.
UX של מסעות
כרטיס מסע: פס התקדמות עם שלבים, תיאור השלב הנוכחי, תגמול. עבור מסעות סיפור, אל תציג את כל השלבים בבת אחת — חשוף את השלב הבא רק כשהנוכחי הושלם (מסתורין מניע).
בהשלמת שלב — חגיגה מובנית: סימן ירוק עם אנימציה, משוב הפטי קצר, טוסט + XP. בהשלמת מסע — חלונית מלאה או תחתית עם אנימציה, תגמול, קריאה לפעולה "התחל מסע הבא".
רשימת המסעות מחולקת לטאבים: "פעילים", "זמינים", "הושלמו". מסעות שהושלמו נשארים גלויים — משתמשים צריכים לראות את המסע שלהם.
משימות יומיות כמכניקת שימור
שלוש משימות אקראיות בכל יום, שנוצרות בבוקר (משימת cron בשעה 00:00 לפי זמן מקומי של המשתמש). קלות, בינוניות וקשות. שיעור השלמה של שתי הראשונות גבוה (70–80%), השלישית היא מטרת מתיחה אך ניתנת להשגה (40–50%).
פוש בצד השרת בשעה 10:00 "משימות חדשות מוכנות" — תזכורת עדינה. לא כל יום, אלא כל יומיים אם המשתמש ביקר אתמול.
מה כלול בעבודה
בהזמנת מערכת מסעות סוהר, אנו מספקים:
- תיעוד ארכיטקטוני (סכמת נתונים, דיאגרמות זרימה)
- קוד מקור ללקוח (iOS/Android) ושרת (REST/GraphQL)
- אינטגרציה עם התראות push (APNs/FCM) ואנליטיקה
- הגדרת מאגר משימות, אלגוריתמי רנדומיזציה, כללי התקדמות
- הדרכה לצוות הלקוח (שעתיים אונליין) ומדריכים כתובים
- אחריות על קוד (3 חודשים תמיכה חינם בתקלות)
הערכות לוחות זמנים
| היקף | לקוח | שרת | סה"כ |
|---|---|---|---|
| מסעות התחלתיים בסיסיים + משימות יומיות | 3–5 ימים | 5–7 ימים | 1.5–2 שבועות |
| מערכת מלאה עם מסעות סיפור, הסתעפות, רנדומיזציה ואנליטיקה | 5–7 ימים | 7–10 ימים | 3–4 שבועות |
התמחור מחושב באופן אישי. לצוות שלנו ניסיון של 5+ שנים בפיתוח מובייל ויישם מעל 20 מערכות גיימיפיקציה לאפליקציות עם קהלים של עד מיליון משתמשים. צור קשר כדי להעריך את הפרויקט שלך.







