פיתוח אפליקציית מובייל למוניות לנוסעים
שדה הזנת הכתובת הוא הנפוץ ביותר בשימוש באפליקציה. אם השלמה אוטומטית עובדת לאט יותר מ-150 אלפיות השנייה, המשתמש עוזב. המפה בזמן אמת עם מכוניות נעות היא נקודת כאב נוספת: אייקונים קופצים גורמים לביקורות שליליות. תשלומים הם המכשול השלישי: שגיאות לא קריאות או עיבוד ארוך מאבדים נאמנות. בכל פרויקט, אנו נתקלים בצווארי בקבוק אלה ויודעים כיצד לעקוף אותם. צברנו ניסיון על 30+ פרויקטים ויודעים כיצד להימנע מבעיות אלה.
כיצד להבטיח השלמה אוטומטית של כתובת תוך 150 אלפיות השנייה?
Google Places Autocomplete API נותן תוצאות איכותיות, אך עם נפח שאילתות גבוה הוא יקר. Mapbox Search API זול פי 2-3 עם איכות דומה. עבור מדינות חבר העמים, 2GIS Suggest API יעיל. השתמשו ב-sessionToken ב-Google Places API: טוקן אחד משלב סדרה של השלמות אוטומטיות ובקשה אחת של Place Details לסשן חיוב אחד. ללא טוקן, כל תו הוא שאילתה נפרדת במחיר מלא. החיסכון יכול להגיע ל-500 דולר לחודש ב-10,000 נסיעות ביום. חלופה היא Mapbox, שמפחיתה עלויות ב-60-70%.
| API | מהירות | עלות לכל 10,000 בקשות | אזור |
|---|---|---|---|
| Google Places Autocomplete | 150-200 אלפיות השנייה | ~2.83$ (ללא sessionToken) | עולמי |
| Mapbox Search API | 100-150 אלפיות השנייה | ~1.00$ (עם חבילה) | עולמי |
| 2GIS Suggest API | 100-200 אלפיות השנייה | חינם עד 100,000 בקשות ביום | מדינות חבר העמים |
קביעת המיקום הנוכחי כנקודת האיסוף: CLLocationManager / FusedLocationProviderClient עם בקשה חד-פעמית (requestLocation() ב-iOS), ולאחר מכן גיאוקודינג הפוך כדי לקבל כתובת קריאה. דיוק חשוב: אם גיאוקודינג הפוך מחזיר "רחוב N" במקום "רחוב N, 15" — המשתמש לא ידע לאן המכונית תגיע.
מדוע אינטרפולציה של מכוניות קריטית לחוויית המשתמש?
תנועת מכוניות בזמן אמת על המפה היא אנימציה של סמנים בהתבסס על קואורדינטות שהתקבלו. יישום נאיבי: קיבלנו קואורדינטה חדשה → הזזנו סמן. תוצאה: אייקוני מכוניות קופצים.
היישום הנכון הוא אינטרפולציה בין נקודות. ב-iOS: CADisplayLink עם חישוב של מיקומי ביניים, GMSMarker.position משתנה בצורה חלקה דרך CABasicAnimation. באנדרואיד: ValueAnimator עם LatLngInterpolator — הנפשת ה-LatLng של הסמן בין המיקום הקודם לחדש על פני מרווח העדכון (בדרך כלל 3-5 שניות). אייקון המכונית חייב גם להסתובב לפי כיוון הנסיעה: הזווית מחושבת דרך Math.atan2 משתי נקודות עוקבות.
WebSocket או MQTT — לקבלת קואורדינטות נהג בזמן אמת. בכניסה לרקע, iOS מנתקת WebSocket. כשהמשתמש חוזר לאפליקציה, יש צורך בחיבור מחדש ובבקשת REST למיקומים נוכחיים, אחרת סמן הנהג נשאר במיקום הישן. הניסיון מראה שבלי אינטרפולציה, מספר התלונות על מכוניות "קפואות" גדל פי 4.
כיצד לפתור עיכוב בהודעות?
הודעות Push: נהג קיבל → נהג בדרך → נהג הגיע → נסיעה החלה → נסיעה הסתיימה. לכל מצב יש טקסט וצליל משלו. ב-iOS, קבצי צליל מותאמים אישית מתווספים ל-bundle ומצוינים ב-payload של APNs aps.sound. באנדרואיד — NotificationChannel עם צליל מוגדר דרך AudioAttributes.
הודעת "הנהג הגיע" קריטית במיוחד — המשתמש חייב לצאת תוך 2-3 דקות. אם ה-push מתעכב בגלל מצב Doze, המשתמש מאחר, הנהג עוזב, ומגיעה ביקורת רעה. עבור הודעה זו, השתמשו ב-push בעדיפות גבוהה (APNs apns-priority: 10, FCM priority: high) ושכפלו דרך אירוע WebSocket בתוך האפליקציה. זה מפחית את אחוז האיחורים ב-30%.
| ערוץ הודעות | עיכוב (אופייני) | תלות במצבי חיסכון בחשמל |
|---|---|---|
| APNs בעדיפות גבוהה | 1-3 שניות | נמוכה |
| FCM בעדיפות גבוהה | 1-5 שניות | בינונית (Doze) |
| WebSocket בתוך האפליקציה | < 1 שנייה | אין (רק במצב פעיל) |
תשלומים ללא כאב ראש
Stripe SDK (iOS, Android) הוא הסטנדרט לפרויקטים בינלאומיים. PaymentSheet — ממשק משתמש מוכן עם תמיכה ב-Apple Pay, Google Pay, כרטיסים. האינטגרציה אורכת 1-2 ימים. עבור רוסיה/מדינות חבר העמים — YooKassa (Yandex.Kassa) או CloudPayments SDK.
Apple Pay דורש entitlement נפרד (com.apple.developer.in-app-payments) ומזהה סוחר רשום בפורטל Apple Developer. Google Pay — הצהרה ב-AndroidManifest.xml ומעבר סקירת גישה לייצור מגוגל.
שגיאות תשלום חייבות לתת טקסט מובן, לא קוד כמו card_declined_insufficient_funds. Stripe מחזיר decline_code — אנו ממפים אותו להודעות קריאות בכל שפות האפליקציה. אנו מבטיחים שהמשתמש לעולם לא יראה קוד שגיאה טכני.
שלבים ולוח זמנים
- סקירת דרישות — 1-2 ימים
- עיצוב זרימת נוסעים — 3-5 ימים
- אינטגרציית מפה וגיאוקודינג — 5-7 ימים
- מעקב בזמן אמת — 7-10 ימים
- מודול תשלומים — 3-5 ימים
- הודעות Push — 2-3 ימים
- בדיקות (כולל מקרי קצה) — 5-7 ימים
- פרסום ב-App Store וב-Google Play — 3-5 ימים
לוח זמנים: 8 עד 14 שבועות. העלות מחושבת באופן אישי לאחר ניתוח דרישות.
מה כלול?
- קוד מקור של האפליקציה ב-Swift/Kotlin/Flutter עם מצב קפדני מלא
- תיעוד אינטגרציית API (מפות, תשלומים, הודעות)
- הוראות פריסה ופרסום בחנות
- ייעוץ לעמידה בהנחיות App Store Review ו-Google Play Policy
- תמיכת אחריות ל-30 יום לאחר ההשקה (תיקוני באגים, ייעוץ)
קבלו ייעוץ — צרו קשר כדי לדון בפרויקט שלכם. הזמינו פיתוח אפליקציית מובייל למוניות עוד היום.







