התיעצות בנוגע לפיתוח דטה בייס על מנת ליצור אפליקציה לאנדרואיד - גאדג'טים ומובייל - HWzone פורומים
עבור לתוכן
  • צור חשבון

התיעצות בנוגע לפיתוח דטה בייס על מנת ליצור אפליקציה לאנדרואיד


bdoron

Recommended Posts

קצת רקע, אני מתכנת asp.net במקור מעולם הwindows מה שאומר שאתרים שלי אני מאחסן מידע בשרת iis וגם על אותו hosting אני מאחסן sql server שמטפל לי בכל הנושא של הדטה בייס, אז השאלה שלי היא כזאת

אני התחלתי קצת לתכנת על ואני עושה חלון לוגין, ודף הרשמה.. השאלה שלי היא כזאת את המידע שאני רוצה לשמור בטבלה של אותו יוזר אני רגיל בעבר לשמור את זה בsql server ובזמן הלוגין אני מחפש בטבלה את האימל והסיסמה ... ואם כן אם יש ולידציה אני מעביר לחלון הבא.. השאלה שלי היא האם באנדרואיד זה אותו דבר? איפה אני מאחסן מידע ? ואני יודע שאני יכול לשמור על המכשיר עצמו אבל אני לא רוצה לעשות את זה .. אני רוצה לעשות אפליקציה שבעצם מכשיר שלי יוכל לקבל מידע ממכשירים אחרים לדוגמא chat ... הבנתי שאני יכול לעשות web service בשרת iis והסרויס הזה יתקשר מול הdatdbase ויחזיר נתונים בxml או בjson.. השאלה היא איפה מקובל לשמור... ובאיזה שרת.. האם מספיק שרת iis? זה מה שמקובל בתכנות אנדרואיד? אני רוצה ללמוד את הדברים שמקובלים.. שאם בהמשך אני ירצה לעבור לעבוד בתחום המובייל ואני אגיד להם שעשיתי מספר ושמרתי מידע על שרת iis שלא יגידו מה זה הוא מתכנת בצורה עקומה ולא בצורה שמקובלת... מה שאני מנסה להגיד זה האם זה כמו בwindows שיש שרת iis מיוחד לאתרי asp.net אז יש שרת מסויים שמתקשר עם אנדרואיד

או שזה לא כזה משנה וחברות עושות שימוש בשרתי iis לצורך שמירת מידע לאפליקציות אנדרואיד

אשמח אם מישהו יתן לי הכוונה מה ללמוד בדיוק..

קישור לתוכן
שתף באתרים אחרים

מה שאתה צריך זה בעצם שרת.

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

השאלה היא מה בדיוק אתה רוצה לעשות. מבחינת צד לקוח, אתה צריך תמיד לחשוב איך אתה מצמצם למינימום את הקריאות לשרת. אתה יכול ב-signup הראשוני לקבל מהשרת token מסויים בתור המפתח שלך לאימות מול השרת ולשמור אותו מקומית (למשל ב-SharedPreferences או עם sqlite שמובנה ב- sdk). בעליית האפליקציה אתה בודק - אם ה-token קיים, זאת אומרת שהמשתמש כבר ביצע login בזמן ה-signup ואולי זה מספיק טוב לך בשביל לעבור למסך הבא. אם token לא קיים, אתה פותח את מסך ההרשמה\התחברות (אם נניח המשתמש החליף מכשיר).

במקרה שזה לא מספיק טוב לך, אתה יכול לבצע sign in בכל עלייה של האפליקציה ולקבל token חדש.

מבחינת צד שרת - השיטה המועדפת היא לכתוב מה שנקרא restful api, אני ממליץ להשתמש ב-node.js עם express ובשביל database תבדוק את mogodb.

קישור לתוכן
שתף באתרים אחרים

...

מבחינת צד שרת - השיטה המועדפת היא לכתוב מה שנקרא restful api, אני ממליץ להשתמש ב-node.js עם express ובשביל database תבדוק את mogodb.

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

הפואנטה שלי היא שזה לא באמת משנה, בטח לא לקו"ח.

לפותח הדיון - יש הרבה אפליקציות שדורשות backend, שרת כלשהו (עם או בלי DB). האפליקציה שלך צריכה לדעת לתקשר עם השרת הזה.

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

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

בשלב הבא אתה מפתח את האפליקציה כך שהיא תדע לדבר ב-rest עם json מול השרת שלך - ברגע שזה המצב השרת יכול להיות כתוב גם באסמבלי וה-DB ממומש עם קבצי טקסט ידניים. לאפליקציה זה לא ישנה כלום. היא בסה"כ פונה בצורת rest לשרות login, וממש לא משנה לה מה יש שם בפנים. שים לב - האפליקציה פונה לשרותים האלה ולא ישירות ל-DB - לאפליקציה אין מושג, ולא צריך להיות מושג איזה DB יש, אם בכלל. יותר מזה, אותו שרת גם אמור לשרת אפליקצית web אולי, ואייפון ומי יודע מה עוד - כך שבכל מקרה אין שום צימוד בין הטכנולוגיה של השרת לטכנולוגיה של הקליינטים השונים שעובדים מולו.

אמ;לק:

לפחות מבחינת חיפוש עבודה כמפתח אפליקציות - זה לא משנה איך תרים DB ושרת. אתה רוצה ללמוד 'מה שנהוג' - תעשה שיודעת לדבר ב-rest כמו שצריך, באמצעות json. הרוב המכריע של האפליקציות עובדות ככה. מבחינת שרת שמספק את זה, תעשה מה שאתה רוצה - כל עוד הוא מדבר ב-rest בסוף.

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

נ.ב.

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

קישור לתוכן
שתף באתרים אחרים

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...