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

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
פיתוח מחשבון לנייד: דיוק, פרסור וארכיטקטורה
פשוט
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

למה מחשבון מותאם אישית באפליקציית מובייל משקר

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

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

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

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

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

מה נותן ליבת חישוב שנבנתה למשימה

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

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

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

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

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

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

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

דרכים למימוש לוגיקת חישוב במוצר

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

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

איך בוחרים אפשרות

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

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

שלבי פיתוח מודול חישוב

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

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

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

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

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

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

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

מה צוות הלקוח מקבל בסיום העבודה

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

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

תרגול: חישוב מחדש של אומדנים בשירות בנייה

מה היה

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

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

מה שינינו

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

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

לאחר ההטמעה חישוב לאתר אורך 8–10 דקות במקום 40–60, וחישוב ידני מחדש כשלב נפרד הוסר. במדגם בקרה של אתרים אין פערים בתוצאות בין הטיוטה לאומדן הסופי — אפס, ושיעור הפניות לתמיכה בנושא חישובים ירד מתחת ל-2%.

במה שונה חישוב במכשיר מחישוב בשרת

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

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

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

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

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

ספקות טכניים לפני תחילת העבודה

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

עד כמה החישוב יהיה מדויק?

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

מה יקרה כשהנוסחאות ישתנו?

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

יש לנו כבר לוגיקת חישוב משלנו — מה לעשות?

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

איך לבדוק את אי־השתנות התוצאות הקודמות?

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

נדון במשימה ונחזור עם הערכה ותוכנית

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

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

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