שאלה על בחירת app framework

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

מצאתי שיש כמה אפשרויות לעשות את זה בפייתון
בינהם: BeeWare או KIVY
אבל לפי מה שהבנתי הן מאוד חדשות ופחות מפותחות.

רציתי לשאול אם כדאי לעבוד עם הכלים האלו או ללמוד שפה חדשה כמו c# (שיצא לי לגעת בה, אבל לא כמו בפייתון)

או שאולי למישהו כן יצא לעבוד עם פייתון לאותה מטרה ויכול להעיד על הכלים האלו או על כלים אחרים…

או שמישהו יכול להמליץ על framework אחר, שדורש שפה אחרת אפילו, שיצא לו לעבוד איתו.

בכל זאת אשמח לחוות דעתכם :slightly_smiling_face:

לייק 1

הן לא חדשות כ"כ, אבל הן כן לא לגמרי בשלות. לא הייתי מפתח אפליקציה עם Kivy/Beeware.

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

  1. האם הפעולות מתבצעות רק בצד לקוח, או שצריך שיהיה גם צד שרת שעושה חישובים/שומר מידע/מטפל בחשבונות?
  2. אם יש גם צד שרת, מה יהיה העומס על השרתים? אולי צריך יותר משרת אחד? איך מבזרים?
  3. אילו טכנולוגיות יהיו ב־frontend? (כדי לצייר את המסך אצל הלקוח, לדוגמה)
  4. אילו טכנולוגיות יהיו ב־backend? (כדי לקבל ולהחזיר בקשות)
  5. עם איזה סוג data אנחנו עובדים? כמות הדאטא עשויה לשנות את הטכנולוגיות שבהן אתה משתמש.

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


כרגע הטכנולוגיה החמה לפיתוח אפליקציות היא Flutter (לא קשורה לפייתון). אפשר לתכנת בה את ה־frontend ולחבר אותה לפייתון :slight_smile:
אבל שוב – חשוב להבין את הצרכים ולתכנן היטב בהתאם.

7 לייקים

תודה רבה על כל הפירוט!!
זה אכן ידרוש גם צד שרת
קשה לי לומר מה יהיה העומס שלו ברגע זה…

ה-PWA נראה כמו אפשרות טובה, אני אחקור על זה לעומק

לייק 1

היי אני מתכנת React Native, זה Cross Platform Framework, זאת אומרת לאפשר לפתח אפליקציות לios וandroid בקוד ופרוייקט אחד.
מוזמן ליצור איתי קשר :slight_smile:

2 לייקים

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

אני ממליץ על הספר הזה בהקשר של בניית api

https://www.amazon.com/dp/B07VKD85SW/ref=cm_sw_r_cp_apa_OtNQFbPX7P5J5

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

אם תרצה עזרה בפרונט , אשמח לעזור.

2 לייקים

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

לייק 1

בתרגילים בשבוע שעבר היה למעשה להתחבר לapi קיים - למשל הapi של הסרטים , או של ירקות או של אנליודע מה.
הapi שהתחברנו אליו זה למעשה באק אנד.
הוא שולח את הדאטא בצורת json או מקבל דאטא בצורת json ביחד עם פעולה כלשהיא (HTTP VERB) - get , post , put , delete ועוד , והוא שולח מידע , או מעדכן מידע.
כשאתה בונה api נניח api של פוקימונים , אז אתה בונה למשל אפשרות להוסיף פוקימון , לעדכן פוקימון , למחוק פוקימון , לקבל רשימת פוקימונים , לקבל פרטי פוקימון ספציפי וכו’.
אתה כמובן צריך גם לחשוב על אבטחה - שלא לכל אחד תהיה גישה לכל הפעולות הללו. גם זה נכנס לתוך הapi - למשל ליצור token , לקבל , לוודא שהוא תקף וכו’.
כמובן גם לחבר את הכל לדאטא בייס.

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

כאן יש דוגמה לapi שמאפשר לך לקבל דמויות ממלחמת הכוכבים :

5 לייקים

יש לי הרבה על מה לקרוא.
ובכל מקרה מה שאתה אומר בעצם זה שאתה יוצר API מהנתונים שלך בעצם.
ואז אתה יכול לתת גישה כמו שעשינו בתרגיל.

כלומר אני מייצר API
אני מייצר נגיד BE ב flask
ואני יוצר פרונט אנד כלשהו שהבאק אנד שלו זה ה flask שלי אבל המידע הוא מAPI שיצרתי.
וממנו אני יכול לגשת מכמה פלטפורמות שונות.

סורי אם חפרתי אני מנסה להבין מרגיש לי שזה פינה לא סגורה אצלי :slight_smile:

3 לייקים

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

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

לייק 1