← לכל המאמרים

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

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

ההבדל פשוט: אתר רץ בדפדפן, והדפדפן עושה מאמץ אדיר לא לשבור אתרים ישנים. אפליקציה רצה על מערכת הפעלה שמתעדכנת כל שנה, נארזת בכלי בנייה שמתיישנים, ומופצת דרך חנות שמשנה את תנאי הקבלה שלה מתי שבא לה. אפליקציה שלא נגעו בה שנתיים לא "נשארה כמו שהיא" — היא נשחקה, בשקט, בזמן שאף אחד לא הסתכל.

מחזור הגרסאות השנתי הוא לוח הזמנים האמיתי שלכם

אפל ו-Google משחררות גרסה מרכזית של מערכת ההפעלה כל שנה, בסתיו. כל גרסה כזו מביאה איתה שלושה דברים: התנהגויות חדשות שמשנות איך הממשק שלכם נראה, הרשאות שהתהדקו, ובהמשך — דרישה שהבילד ייבנה מול ה-SDK החדש כדי שאפל או Google יקבלו אותו בכלל.

הנקודה שתופסת עסקים לא מוכנים היא האחרונה. אפל דורשת מדי שנה שהעלאות חדשות ייבנו מול גרסת SDK מינימלית, ו-Google Play מחייבת רמת API יעד מינימלית לעדכונים — ולאפליקציות שלא עומדות בה, החשיפה בחנות מוגבלת. המשמעות המעשית: גם אם אתם לא מתכננים שום פיצ'ר חדש, מגיע רגע שבו אתם חייבים לשחרר גרסה רק כדי להישאר במקום. אם אין מי שיעשה את זה, מגלים את זה בדיוק כשצריך להוציא תיקון דחוף — ואז מתברר שהפרויקט בכלל לא נבנה יותר.

מה נשחק כשלא נוגעים

הדעיכה לא מגיעה במכה אחת. היא מצטברת בארבעה מקומות במקביל:

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

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

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

כללי החנות. מדיניות הפרטיות, הצהרות איסוף הנתונים, דרישות הנגישות ותוויות ה-Privacy — כולן מתעדכנות. סירוב בחנות בגלל שדה שלא מולא הוא סיפור של שבוע איבוד, לא של שעה.

המקרה שחוזר אצלנו הכי הרבה: אפליקציה בעברית שנשברת בשקט

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

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

המספר שכדאי להכיר

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

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

מה ריטיינר תחזוקה באמת כולל

"תחזוקה" היא מילה שמשמעותה משתנה בין ספקים, אז שווה להיות מדויקים. אצלנו זה אומר ארבעה דברים:

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

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

שחרור גרסאות. בנייה, חתימה, העלאה, מעקב אחרי הביקורת בחנות והתמודדות עם סירובים. זה נשמע טכני עד שנתקעים בו.

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

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

מה לעשות עכשיו, גם בלי לחתום על כלום

שלוש בדיקות שאפשר לעשות השבוע, בלי ספק חיצוני. ראשית, פתחו את האפליקציה במכשיר עם מערכת ההפעלה החדשה ביותר ועברו על שלושת המסלולים החשובים ביותר — הרשמה, פעולה מרכזית, תשלום אם יש. שנית, בדקו מתי הבילד האחרון עלה לחנות; אם עברה יותר משנה, אתם כבר בסיכון לדרישת SDK. שלישית, ודאו שמישהו יודע היכן מאוחסנים חשבון המפתח, התעודות והמפתחות — יותר מדי חברות מגלות שהגישה נשארה אצל ספק קודם דווקא כשהן צריכות לשחרר עדכון דחוף.

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

רוצים לדעת איפה האפליקציה שלכם עומדת? אפשר לקרוא עוד על שירותי הפיתוח שלנו, על עיצוב חוויית משתמש — או פשוט ליצור קשר ונסתכל יחד.

← לכל המאמרים