קיבלתם החלטה שאתם הולכים לפתח אפליקציית מובייל, התחלתם לעשות מחקר בגוגל על איך להתחיל, אולי התייעצתם עם חברה לפיתוח אפליקציות, בכל מקרה אתם שומעים שוב ושוב שאתם צריכים שרת ואתם שואלים את עצמכם למה אנחנו צריכים שרת עבור אפליקציית מובייל? בואו ננסה להבהיר את התמונה.
מהו שרת?
שרת הוא מחשב שמריץ תוכניות שרת והתפקיד העיקרי שלו הוא לספק שירות עבור מחשבים אחרים. שאתם נכנסים לאתר כלשהו לדוגמא,האתר שלנו, GRapps – חברת פיתוח אפליקציות, המחשב שלכם בעצם מדבר ומקבל מידע מהשרתים שלנו. עכשיו בואו ננסה להבין איך זה עובד בהקשר של שרת עבור אפליקציית מובייל.
מהו שרת עבור אפליקציית מובייל?
בעיקרון, שרת עבור אפליקציה הוא שרת בדיוק כמו כל שרת אחר, ההבדל היחידי הוא שהייעוד של שרת זה הוא לדבר ספציפית עם אפליקציה מסוימת ולתת לה שירות (למעשה, השרת מתקשר עם מכשיר המובייל של המשתמש על בסיס אינטראקציה עם האפליקציה).
אוקיי, אבל איך בונים שרת עבור אפליקציית מובייל?
בטח שמעתם מושגים כמו: פרוטוקולים, HTTP Requests, responses, JSON, Database, OAuth, API, REST API וכו׳. למעשה יש קונספט אחד שחשוב להבין, כאשר בונים שרת עבור אפליקציית מובייל, מה שבפועל בונים זה שפה בין אפליקציית המובייל והשרת, שפה ששניהם מבינים ושעוזרת להם לבצע אימות בין אחד לשני, העברת מידע מאחד לשני ותקשורת באופן כללי.
האם צריך שרת עבור האפליקציה שלכם?
ככלל אצבע, כן, צריך שרת עבור האפליקציה שלכם. רוב אפליקציות המובייל צריכות ״BackEnd״, שרת, לתקשר איתו ולקבל שירות ממנו, לדוגמא: שמירת נתונים, עדכון נתונים, מעקב אחר מידע מהמשתמשים, ניתוח מידע, תיזמון אירועים ושליחת אירועים לאפליקציה.
יש מעט מאוד מקרים בהם אפליקציה לא צריכה שרת כלל על מנת לעבוד בצורה מלאה, לדוגמא: אפליקציה של משחק פשוט, או כלי פשוט כמו אפליקציית פנס.
אך ברגע שיש צורך לשלוט, לערוך ולקבל בצורה דינמית תוכן מהאפליקציה, או לעקוב אחרי מידע מהאפליקציה, יש צורך בשרת עבור האפליקציה, שרת חזק שיידע לתת מענה הולם לכל צורך תפקודי של אפליקציית המובייל.
למה לא להשתמש בפתרון של שירות צד שלישי?
ובכן, כן, אפשר להשתמש בשירות צד שלישי כפתרון לצד השרת של האפליקציה, אך יש להבין, שאתם בעצם מסתמכים על מישהו אחר שידאג לכך שהאפליקציה שלכם תמשיך לעבוד. מה קורה במידה והשירות צד שלישי מחליט להכפיל מחיר? מה קורה במידה והחברה הנותנת את שירות זה מחליטה לסגור את השירות (דוגמא טובה לכך היא Parse). האם זהו סיכון שאתם מוכנים לקחת?
שלא תבינו אותנו לא נכון, אנחנו כלל לא נגד שירות צד שלישי, אנחנו לגמרי בעד. אפשר (ורצוי) להשתמש בפתרונות של שירות צד שלישי איכותי שנבנה על ידי אנשים מוכשרים שפיתחו את פתרון זה בצורה אידאלית לבעייה ספציפית, זה מעולה ומומלץ להשתמש בכך, דוגמאות טובות לכך: שירותי דיוור (כגון: SendInBlue), שירותי SMS (כגון: Twilio), שירותי סליקה (כגון PayPal) ועוד רבים וטובים.
אך לכל הדוגמאות הנ״ל יש מכנה משותף, הן פתרונות צד שלישי לבעיה ספציפית, הן פתרונות שמוסיפים לאפליקציה שלכם פיצ׳ר מסוים (או עוזרים לבצע פעולה מסוימת). אתם לא מבססים את כל האפליקציה שלכם על שירות צד שלישי. ובמידה ומחר אחד מהם יסגור את השירות או יכפיל מחירים, כל מה שיהיה עליכם לעשות זה לשכתב קטע קוד נקודתי ולהתאימו לשירות אחר.
דבר אחד נוסף שיש לקחת בחשבון והוא גמישות. שאתם קובעים את החוקים והשרת שמשרת את האפליקציה הוא שלכם, השרת יעבוד בדיוק בצורה שאתם צריכים שהוא יעבוד, אתם יכולים לגרום לו לעשות כל דבר בדיוק איך שאתם צריכים שהוא יעשה. בתמורה לכך תקבלו את השרת היעיל והנכון ביותר עבור האפליקציה שלכם בכל מובן.