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

18.03.2011

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

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

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

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

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

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

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

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