מה המשמעות של "מתחדש"
רוב משתמשי האייפון יודעים אינסטינקטיבית שמשיכה מטה על המסך מרעננת את התוכן בהרבה אפליקציות — זו תנועת המשיכה-להתחדשות הקלאסית, וזה בדיוק מה שאנחנו מתכוונים כשאומרים "מתחדש". גרסאות קודמות של Splync לא תמכו בתכונה זו. הדרך היחידה לרענן את המסך הייתה לסגור את האפליקציה ולפתוח אותה מחדש. זה לא היה כל כך בעייתי, משום שהאפליקציה שמרה על ההתחברות שלך מאז גרסה 1.3, אבל עדיין זה לא היה אידיאלי. מכיוון ש-Splync מיועדת להיות המעקב התקציבי המשותף הקל ביותר לשימוש, רענון המסך צריך להרגיש חסר מאמץ. זו הסיבה שהוספנו את המשיכה-להתחדשות בגרסה 1.10, מה שהופך את Splync למתחדש לחלוטין.
שתי דרכים שבהן Splync מרענן את הנתונים שלך (טעינה מלאה / עדכון תצוגה)
במסך הבית — שבו רואים את תמונת הפרופיל, רשימת החברים ורשימת הפרויקטים — משיכה-להתחדשות מבצעת טעינה מלאה. היא שולפת שוב את כל הנתונים הקשורים לחשבון, בדומה להתנתקות והתחברות מחדש. לכן, הרענון עשוי לקחת כשנייה בזמן שהודעת הטעינה מוצגת. במסך הפרויקט, שבו מופיעה רשימת ההוצאות שלך, אותה משיכה מטה מפעילה עדכון תצוגה קל יותר. רק הנתונים הספציפיים לפרויקט מתעדכנים, כגון שינויים בקטגוריות ועדכוני הוצאות. אין צורך לחכות שנייה שלמה רק כדי לראות אם מישהו הוסיף הוצאה חדשה. כמו כן, יש לציין: Splync לא שולפת אוטומטית נתוני פרויקטים מהשרת ברקע. האפליקציה בודקת עדכונים רק כשאתה מבצע שינויים, כשאתה פותח הוצאה כדי לראות את פרטיה, או כשאתה מרענן את דף הפרויקט ידנית.
למה לא סנכרון בזמן אמת
ישנם משתמשים שיכולים לצפות לעדכונים מיידיים בפרויקט כשחבר מוסיף הוצאה חדשה. סנכרון בזמן אמת נשמע נוח, אבל יש לו השלכות חשובות. עדכונים רציפים ברקע דורשים יותר סוללה, יותר נתונים סלולריים וחיבור שרת מורכב יותר שיכול להאט את האפליקציה עבור כולם. הגישה של Splync לפי דרישה שומרת על חוויה קלה ותגובה מהירה, ומונעת שינוי מסך פתאומי בזמן שאתה בודק את התקציב שלך. ישנן גם שיקולי אבטחה. שמירה על קשר קבוע עם השרת מגדילה את חלון החשיפה לגישה לא מורשית ודורשת לוגיקת אימות נוספת שפועלת ברקע. על ידי רענון רק כשאתה פועל, Splync מצמצמת את הפעילות הרשתית המיותרת ושומרת על גישה לנתונים יותר צפויה ומבוקרת.
מאחורי הקוד של .refreshable
בהתחלה, חשבתי שהעדכון הזה יהיה פשוט. ב-Swift, השפה המשמשת לפיתוח iOS, אפשר להפעיל משיכה-להתחדשות פשוט על ידי הוספת המודיפייר .refreshable ל-ScrollView או List. עם זאת, זה לא עבד כמו שציפיתי. אחרי שחקרתי את הבעיה, הבנתי את הסיבה האמיתית. רציתי להוסיף משיכה-להתחדשות לכל מסך העליון, שמכיל את רשימת החברים ורשימת הפרויקטים. אבל בעיצוב המקורי, שני הרכיבים הללו היו גם גלילים. כתוצאה מכך, .refreshable לא ידע לאיזו אזור גלילה הוא שייך, והתנועה לא זוהתה באופן עקבי. כדי לתקן זאת, בניתי מחדש את רשימת החברים ורשימת הפרויקטים כך שלא יהיו יותר גלילים בעצמם. זה בטוח כי התצוגה ברמה העליונה עצמה גולשת כשהתוכן עולה על גובה המסך. ברגע שפישטתי את המבנה והבטחתי שיש רק מיכל גלילה אחד, .refreshable סוף סוף התנהג בדיוק כפי שהתכוונתי. הוספתי גם כפתור רענון טיפוסי כך שהמשתמשים יוכלו פשוט ללחוץ כדי לרענן.
המשיכה לא עובדת עבורך? משוך קצת יותר
ברוב האפליקציות של iOS, משיכה-להתחדשות לא מופעלת ברגע שאתה מתחיל לגרור. ל-SwiftUI יש סף תנועה מובנה: המערכת מחכה עד שאתה מושך מטה מרחק מסוים לפני שמפעילה את הרענון. זה מונע עדכונים אקראיים כשאתה פשוט מתחיל לגלול מהחלק העליון של המסך. Splync פועלת בהתאם להתנהגות הסטנדרטית הזו. אולי תשימו לב שמשיכה קצרה לא מרעננת את התוכן, אבל משיכה מעט ארוכה יותר — מספיק כדי שמחוון הרענון יופיע — תפעיל את העדכון. העיצוב הזה שומר על אינטראקציות מכוונות. הוא נמנע מרענונים לא רצויים, במיוחד על מסכים שבהם משתמשים גוללים לעיתים קרובות דרך רשימות ארוכות של הוצאות או פרויקטים. ברגע שאתה קצת "מותח יתר" את הגבול העליון והמחוון מופיע, הרענון יתחיל ברגע שתשחרר את האצבע. זהו פרט קטן, אבל הוא תורם לחוויה חלקה וצפויה יותר. רק להבהרה: זה לא קשור למשיכה ארוכה יותר או ליישום לחץ חזק יותר. מה שחשוב זה למשוך מרחק ארוך יותר.
תכונה קטנה, עם תשומת לב לפרטים
משיכה-להתחדשות אולי נראית כאינטראקציה קטנה, אבל הבנייה שלה כללה בחירות עיצוביות, בנייה טכנית ומספר מפתיע של שיקולים מאחורי הקלעים. גרסה 1.10 של Splync הופכת את רענון הנתונים שלך לטבעי, מכוון וצפוי — בדיוק כמו שהוא צריך להיות באפליקציית המעקב התקציבי המשותף הקלה ביותר. אני מקווה שהעדכון הזה מעניק לך חוויה חלקה יותר והצצה לתשומת הלב המושקעת בכל פרט. תודה על השימוש ב-Splync.