בקשת מידע | אני בונה אפליקציה לאנדרואיד עם פייתון
-
@rearmostpant23 אם יש לך [כך נראה לי] רעיון לאפליקציה ואין לך דרך להוציא אותו לפועל - חוסר ידע וכדו', תוכל להיעזר במקצוענים כאן [אל תדאג לא ניקח לך קרדיט]
.
אם אתה לא רוצה גם את זה,אז בעידן הai תוכל בעזרתו לעשות את האפליקציה. -
@rearmostpant23 אם יש לך [כך נראה לי] רעיון לאפליקציה ואין לך דרך להוציא אותו לפועל - חוסר ידע וכדו', תוכל להיעזר במקצוענים כאן [אל תדאג לא ניקח לך קרדיט]
.
אם אתה לא רוצה גם את זה,אז בעידן הai תוכל בעזרתו לעשות את האפליקציה.@המלאך אני בונה את האפליקציה משתי סיבות
- כדי לתרגל את המיומנויות שלי בפייתון וכן הלוגיקה של תכנות בכללי, פייתון זה רק התחלה
- זה אפליקציה בשביל אמא שלי ולא להפצה
אז הייתי שמח אם מישהו היה מוכן לעשות לי את האפליקציה שאני צריך, רק אני לא רוצה לשגע אף אחד כי היה לי הרבה בקשות תיקונים וניואנסים משלי ולא חשבתי שמישהו היה זמן וכח בשבילי, אם באמת יש לך או למישהו סבלנות בשבילי אני מאוד אשמח
כבר יש לי כמה פונקציות עיקריות שאני כבר כתבתי.אז בהתחשב בסיבה הראשונה את מה היה הכי שימושי ללמוד?
-
@המלאך אני בונה את האפליקציה משתי סיבות
- כדי לתרגל את המיומנויות שלי בפייתון וכן הלוגיקה של תכנות בכללי, פייתון זה רק התחלה
- זה אפליקציה בשביל אמא שלי ולא להפצה
אז הייתי שמח אם מישהו היה מוכן לעשות לי את האפליקציה שאני צריך, רק אני לא רוצה לשגע אף אחד כי היה לי הרבה בקשות תיקונים וניואנסים משלי ולא חשבתי שמישהו היה זמן וכח בשבילי, אם באמת יש לך או למישהו סבלנות בשבילי אני מאוד אשמח
כבר יש לי כמה פונקציות עיקריות שאני כבר כתבתי.אז בהתחשב בסיבה הראשונה את מה היה הכי שימושי ללמוד?
-
@המלאך אני בונה את האפליקציה משתי סיבות
- כדי לתרגל את המיומנויות שלי בפייתון וכן הלוגיקה של תכנות בכללי, פייתון זה רק התחלה
- זה אפליקציה בשביל אמא שלי ולא להפצה
אז הייתי שמח אם מישהו היה מוכן לעשות לי את האפליקציה שאני צריך, רק אני לא רוצה לשגע אף אחד כי היה לי הרבה בקשות תיקונים וניואנסים משלי ולא חשבתי שמישהו היה זמן וכח בשבילי, אם באמת יש לך או למישהו סבלנות בשבילי אני מאוד אשמח
כבר יש לי כמה פונקציות עיקריות שאני כבר כתבתי.אז בהתחשב בסיבה הראשונה את מה היה הכי שימושי ללמוד?
@RearmostPant23 קיוי.
אתה יכול לפתוח איתי צ'אט פרטי? -
@RearmostPant23 קיוי.
אתה יכול לפתוח איתי צ'אט פרטי?@המלאך המייל שלי נמצא בפרופיל, או שאתה רוצה בדרך אחרת, אני יכול דרך הצ׳אט אבל נראה שאין לך מספיק מוניטין
-
@המלאך המייל שלי נמצא בפרופיל, או שאתה רוצה בדרך אחרת, אני יכול דרך הצ׳אט אבל נראה שאין לך מספיק מוניטין
@RearmostPant23 לא במייל, אלא דרך האתר [העדפה אישית]..
כמה מוניטין צריך? -
@RearmostPant23 לא במייל, אלא דרך האתר [העדפה אישית]..
כמה מוניטין צריך?@המלאך עד כמה שזכול לי 50/70 לא זוכר בדיוק
-
@המלאך עד כמה שזכול לי 50/70 לא זוכר בדיוק
@RearmostPant23 יש לך עניין מיוחד להסתיר את הקוד?
כי אם לא אולי אוכל לעזור לך כאן. -
R RearmostPant23 סימן נושא זה כשאלה
-
R RearmostPant23 סימן נושא זה כנפתר
-
@RearmostPant23 יש לך עניין מיוחד להסתיר את הקוד?
כי אם לא אולי אוכל לעזור לך כאן.@המלאך לא אין עניין.
האפליקציה הזאת צריכה להיות מחשב הוצאת אוטומטי של סכום חודשי ושנתי, אני יחלק את החישוב של הסה"כ ככה.
הס"כ של כל קטגוריה לדוגמא: בית | עבודה | וכל תת קטגוריה לדוגמא בתוך בית היה אוכל, בגדים, חינוך וכו'כמובן שאני רוצה גם ממשק ספציפי אבל את זה אני אפרט כבר לא עכשיו
כמובן gpt קצת עזרה לי עם הכתיבה

סטרוקטורת האפליקציה

זה הקובץ Functionsimport json import os from logic.dates import current_year, current_month_day class ExpenseLogic: def __init__(self, file_name="expenses.json"): self.data_dir = "data" os.makedirs(self.data_dir, exist_ok=True) self.file_path = os.path.join(self.data_dir, file_name) self.expenses = {} self.load_expenses() def load_expenses(self): if os.path.exists(self.file_path): with open(self.file_path, "r", encoding="utf-8") as f: self.expenses = json.load(f) def save_expenses(self): with open(self.file_path, "w", encoding="utf-8") as f: json.dump(self.expenses, f, ensure_ascii=False, indent=4) def ensure_path(self, year, expense_name, day_key, list_name): # שנה self.expenses.setdefault(year, {}) # קטגוריה self.expenses[year].setdefault(expense_name, {}) # תאריך self.expenses[year][expense_name].setdefault(day_key, {}) # list_name self.expenses[year][expense_name][day_key].setdefault( list_name, {"money": {}, "card": {}} ) def create_expense(self, expense_name, list_name): year = current_year() day_key = current_month_day() self.ensure_path(year, expense_name, day_key, list_name) self.save_expenses() return year, expense_name, day_key, list_name def add_item(self, expense_name, list_name, item, amount, payment_type="money"): year = current_year() day_key = current_month_day() self.ensure_path(year, expense_name, day_key, list_name) self.expenses[year][expense_name][day_key][list_name][payment_type][item] = amount self.save_expenses() return year, day_key def total_for_month(self, year, month): total = 0.0 for expense in self.expenses.get(year, {}).values(): for day, lists in expense.items(): if day.startswith(f"{month:02d}-"): for lst in lists.values(): for pay in ("money", "card"): total += sum(map(float, lst[pay].values())) return totalזה הקובץ dates
from datetime import date def current_year() -> str: return str(date.today().year) def current_month_day() -> str: today = date.today() return f"{today.month:02d}-{today.day:02d}"אני להיום סיימתי לכתוב, אז אם יש לך משהא להוסיף\לתקן אני לא יעשה את זה עכשיו.
כמובן אני יכול לעשות רפזטורי ולהעלות לגיטהב, רק אני עדיין לא יודע להשתמש בו כל כך.. -
@המלאך לא אין עניין.
האפליקציה הזאת צריכה להיות מחשב הוצאת אוטומטי של סכום חודשי ושנתי, אני יחלק את החישוב של הסה"כ ככה.
הס"כ של כל קטגוריה לדוגמא: בית | עבודה | וכל תת קטגוריה לדוגמא בתוך בית היה אוכל, בגדים, חינוך וכו'כמובן שאני רוצה גם ממשק ספציפי אבל את זה אני אפרט כבר לא עכשיו
כמובן gpt קצת עזרה לי עם הכתיבה

סטרוקטורת האפליקציה

זה הקובץ Functionsimport json import os from logic.dates import current_year, current_month_day class ExpenseLogic: def __init__(self, file_name="expenses.json"): self.data_dir = "data" os.makedirs(self.data_dir, exist_ok=True) self.file_path = os.path.join(self.data_dir, file_name) self.expenses = {} self.load_expenses() def load_expenses(self): if os.path.exists(self.file_path): with open(self.file_path, "r", encoding="utf-8") as f: self.expenses = json.load(f) def save_expenses(self): with open(self.file_path, "w", encoding="utf-8") as f: json.dump(self.expenses, f, ensure_ascii=False, indent=4) def ensure_path(self, year, expense_name, day_key, list_name): # שנה self.expenses.setdefault(year, {}) # קטגוריה self.expenses[year].setdefault(expense_name, {}) # תאריך self.expenses[year][expense_name].setdefault(day_key, {}) # list_name self.expenses[year][expense_name][day_key].setdefault( list_name, {"money": {}, "card": {}} ) def create_expense(self, expense_name, list_name): year = current_year() day_key = current_month_day() self.ensure_path(year, expense_name, day_key, list_name) self.save_expenses() return year, expense_name, day_key, list_name def add_item(self, expense_name, list_name, item, amount, payment_type="money"): year = current_year() day_key = current_month_day() self.ensure_path(year, expense_name, day_key, list_name) self.expenses[year][expense_name][day_key][list_name][payment_type][item] = amount self.save_expenses() return year, day_key def total_for_month(self, year, month): total = 0.0 for expense in self.expenses.get(year, {}).values(): for day, lists in expense.items(): if day.startswith(f"{month:02d}-"): for lst in lists.values(): for pay in ("money", "card"): total += sum(map(float, lst[pay].values())) return totalזה הקובץ dates
from datetime import date def current_year() -> str: return str(date.today().year) def current_month_day() -> str: today = date.today() return f"{today.month:02d}-{today.day:02d}"אני להיום סיימתי לכתוב, אז אם יש לך משהא להוסיף\לתקן אני לא יעשה את זה עכשיו.
כמובן אני יכול לעשות רפזטורי ולהעלות לגיטהב, רק אני עדיין לא יודע להשתמש בו כל כך..@RearmostPant23 בעצם האפליקציה עושה חישוב הוצאות חודשי יומי ושנתי פשוט.
שלב ראשון בפונקציות זה לחשב את התאריך, שלב שני לייצר או להיכנס לרשימה קיימת של אותו יום ולהכניס לשם נתונים ושלב שלישי מתי שהוא ירצה המשתמש יוכל להשתמש במחשבון הבסיס כדי לחשב את סך כל ההוצאות.
אז כך יש לך 3 בעיות בקוד של הפונקציות [הקוד של הדאטה נקי].
1 אתה עשית את השנה כint וזה לא נכון - שנה היא str אלא אם אתה רוצה להמיר ולסרבל את הקוד שלך.
2 אתה עשית את הפונקציה של קבלת קלט של מזומן או אשראי [payment_type], אבל לא עשית לזה בדיקה. כלומר אם יהיה טעות הקלדה או שהמשתמש יכניס משהו לא נכון - המערכת תקרוס.
3 המשתנה amount - אין עליו בדיקה איזה קלט הוכנס לשם. ואם יוכנס ערך שגוי או לא הגיוני? - צריך לעשות שם בדיקת קלט.
עכשיו בנוגע לממשק משתמש - בהמשך היום אני אעלה אותו.
בהצלחה. -
@RearmostPant23 בעצם האפליקציה עושה חישוב הוצאות חודשי יומי ושנתי פשוט.
שלב ראשון בפונקציות זה לחשב את התאריך, שלב שני לייצר או להיכנס לרשימה קיימת של אותו יום ולהכניס לשם נתונים ושלב שלישי מתי שהוא ירצה המשתמש יוכל להשתמש במחשבון הבסיס כדי לחשב את סך כל ההוצאות.
אז כך יש לך 3 בעיות בקוד של הפונקציות [הקוד של הדאטה נקי].
1 אתה עשית את השנה כint וזה לא נכון - שנה היא str אלא אם אתה רוצה להמיר ולסרבל את הקוד שלך.
2 אתה עשית את הפונקציה של קבלת קלט של מזומן או אשראי [payment_type], אבל לא עשית לזה בדיקה. כלומר אם יהיה טעות הקלדה או שהמשתמש יכניס משהו לא נכון - המערכת תקרוס.
3 המשתנה amount - אין עליו בדיקה איזה קלט הוכנס לשם. ואם יוכנס ערך שגוי או לא הגיוני? - צריך לעשות שם בדיקת קלט.
עכשיו בנוגע לממשק משתמש - בהמשך היום אני אעלה אותו.
בהצלחה.@המלאך תודה רבא לך, הרעיון העיקרי שאני רוצה בממשק זה שאפשר רגע לפתוח את האפליקציה להכניס את ההוצאה ולסגור שזה היה מהר ונוח
-
@המלאך תודה רבא לך, הרעיון העיקרי שאני רוצה בממשק זה שאפשר רגע לפתוח את האפליקציה להכניס את ההוצאה ולסגור שזה היה מהר ונוח
@RearmostPant23 אז לאחר שעבדתי על זה כמה ימים הנה:
1 תוריד את פייתון 3.10 ל64 ביט, בהתקנה תסמן וי על האפשרות Add Python to PATH.
2 תוריד קווי. - תפתח פאאור שיל ותכתוב: pip install kivy.
3 זה המבנה קבצים שתעשה בו את הממשק - project/
│── main.py
│── ui.kv
.
4 הממשק של קיוי - BoxLayout:
orientation: "vertical"
padding: 20
spacing: 15canvas.before: Color: rgb: 0.9, 1, 0.9 Rectangle: size: self.size pos: self.pos Label: text: "הוספת הוצאה יומית" font_size: 24 color: 0, 0.5, 0, 1 TextInput: id: item hint_text: "שם ההוצאה" multiline: False TextInput: id: amount hint_text: "סכום" input_filter: "float" multiline: False Button: text: "שמור הוצאה" background_color: 0, 0.7, 0, 1 on_press: app.save_expense() Label: id: total_label text: "" font_size: 18 color: 0, 0.4, 0, 1 Button: text: "חשב סך חודשי" background_color: 0, 0.6, 0, 1 on_press: app.calc_month()עשיתי לך את זה כירוק ברור ויפה.
5 הקוד שמחבר בין הממשק לאפליקציה - אותו תכניס לתיקיה של ה מאין -from kivy.app import App
from kivy.lang import Builder
from datetime import dateהלוגיקה שלו
from logic.expenses import ExpenseLogic
class ExpenseApp(App):
def build(self):
self.logic = ExpenseLogic()
return Builder.load_file("ui.kv")def save_expense(self): item = self.root.ids.item.text amount = self.root.ids.amount.text if not item or not amount: return self.logic.add_item( expense_name="כללי", list_name="יומי", item=item, amount=amount ) self.root.ids.item.text = "" self.root.ids.amount.text = "" def calc_month(self): today = date.today() total = self.logic.total_for_month( str(today.year), today.month ) self.root.ids.total_label.text = f"סך החודש: ₪ {total}"ExpenseApp().run()
.
זה אמור לעשות את העבודה,
עכשיו לפני שתריץ את זה תתקן את הדברים שאמרתי לך לפני זה לתקן.
אם יש בעיות או שאתה רוצה שינויים בממשק - רק תגיד.
נ. ב. אשמח שתעלה אחרי זה את האפליקציה לכאן [אני אעדיף לא בקובץ זיפ אבל אם אתה לא יודע איך אז גם קובץ זיפ טוב].
בהצלחה.... -
@RearmostPant23 אז לאחר שעבדתי על זה כמה ימים הנה:
1 תוריד את פייתון 3.10 ל64 ביט, בהתקנה תסמן וי על האפשרות Add Python to PATH.
2 תוריד קווי. - תפתח פאאור שיל ותכתוב: pip install kivy.
3 זה המבנה קבצים שתעשה בו את הממשק - project/
│── main.py
│── ui.kv
.
4 הממשק של קיוי - BoxLayout:
orientation: "vertical"
padding: 20
spacing: 15canvas.before: Color: rgb: 0.9, 1, 0.9 Rectangle: size: self.size pos: self.pos Label: text: "הוספת הוצאה יומית" font_size: 24 color: 0, 0.5, 0, 1 TextInput: id: item hint_text: "שם ההוצאה" multiline: False TextInput: id: amount hint_text: "סכום" input_filter: "float" multiline: False Button: text: "שמור הוצאה" background_color: 0, 0.7, 0, 1 on_press: app.save_expense() Label: id: total_label text: "" font_size: 18 color: 0, 0.4, 0, 1 Button: text: "חשב סך חודשי" background_color: 0, 0.6, 0, 1 on_press: app.calc_month()עשיתי לך את זה כירוק ברור ויפה.
5 הקוד שמחבר בין הממשק לאפליקציה - אותו תכניס לתיקיה של ה מאין -from kivy.app import App
from kivy.lang import Builder
from datetime import dateהלוגיקה שלו
from logic.expenses import ExpenseLogic
class ExpenseApp(App):
def build(self):
self.logic = ExpenseLogic()
return Builder.load_file("ui.kv")def save_expense(self): item = self.root.ids.item.text amount = self.root.ids.amount.text if not item or not amount: return self.logic.add_item( expense_name="כללי", list_name="יומי", item=item, amount=amount ) self.root.ids.item.text = "" self.root.ids.amount.text = "" def calc_month(self): today = date.today() total = self.logic.total_for_month( str(today.year), today.month ) self.root.ids.total_label.text = f"סך החודש: ₪ {total}"ExpenseApp().run()
.
זה אמור לעשות את העבודה,
עכשיו לפני שתריץ את זה תתקן את הדברים שאמרתי לך לפני זה לתקן.
אם יש בעיות או שאתה רוצה שינויים בממשק - רק תגיד.
נ. ב. אשמח שתעלה אחרי זה את האפליקציה לכאן [אני אעדיף לא בקובץ זיפ אבל אם אתה לא יודע איך אז גם קובץ זיפ טוב].
בהצלחה....@המלאך מודה לך מאוד, בע"ה היה לי זמן ביום שישי.
אני יכול לעשות רפסטורי בגיטהב ונוכל לעבוד על האפליקציה ביחד, רק אתה תצתרך קצת להדריך אותי מדי פעם כי לא האמת יצא לי להשתמש בכיט, אני מכיר אותו רק בתיאוריה