▶
.github
תיקייה של GitHub.
מכילה בדרך כלל:
* Actions (בדיקות אוטומטיות ובנייה)
* Workflows
* Templates ל־Issues ו־Pull Requests
כלומר: אוטומציה וניהול הפרויקט ב־GitHub.
▶
android
הקוד וההגדרות של גרסת אנדרואיד.
כולל:
* בניית APK
* הרשאות
* קבצי Gradle
* אינטגרציה עם Flutter
▶
assets
`assets`
קבצי משאבים שהתוכנה משתמשת בהם.
למשל:
* JSON
* טקסטים
* אייקונים
* קבצי נתונים
* קבצי בסיס מידע
זו אחת התיקיות הכי חשובות בפרויקטים גדולים.
▶
docs
`docs`
תיעוד הפרויקט.
כולל:
* מדריכים
* הסברים
* מסמכי פיתוח
* ארכיטקטורה
▶
fonts
`fonts`
פונטים שהתוכנה משתמשת בהם.
למשל:
* גופנים עבריים
* גופני UI
* גופנים מיוחדים ללימוד
▶
hook
`hook`
Hooks = “נקודות חיבור” או “אירועים”.
בדרך כלל:
* קוד שרץ אוטומטית בזמן פעולות מסוימות
* חיבור בין מערכות
* התאמות פנימיות
לפעמים קשור גם ל־Git hooks.
▶
images
`images`
תמונות של התוכנה.
למשל:
* לוגו
* אייקונים
* רקעים
* תמונות למסכים
▶
installer
`installer`
קבצים ליצירת התקנה של התוכנה.
למשל:
* מתקין לווינדוס
* סקריפטים להתקנה
* קבצי Packaging
▶
ios
`ios`
גרסת iPhone/iPad של התוכנה.
כולל:
* Xcode
* הרשאות
* Build של iOS
* חתימות אפל
▶
lib
1
`lib`
הלב של הפרויקט.
כאן נמצא רוב הקוד האמיתי של התוכנה.
ב־Flutter:
* מסכים
* לוגיקה
* ניהול נתונים
* Widgets
* Services
זו בדרך כלל התיקייה הכי חשובה.
▶
פריט
34
▶
bookmarks
bookmarks
מערכת הסימניות.
אחראית על:
שמירת מראי מקום
חזרה למיקום אחרון
ניהול סימניות משתמש
▶
core
core
ליבת המערכת.
בדרך כלל כאן יש:
קבועים
מחלקות בסיס
abstractions
helper מרכזיים
תשתיות שכל המערכת משתמשת בהן
אם lib הוא הלב — core הוא עמוד השדרה.
▶
data
data
שכבת הנתונים.
מטפלת ב:
קריאה למסדי נתונים
קבצי JSON
repositories
data sources
כלומר: מאיפה המידע מגיע.
▶
external_catalog
external_catalog
קטלוגים חיצוניים.
כנראה:
מאגרי ספרים חיצוניים
אינדקסים
הורדת מטא־דאטה
▶
file_sync
file_sync
סנכרון קבצים.
למשל:
גיבוי
ענן
סנכרון בין מכשירים
עדכון ספרים
▶
find_ref
find_ref
מערכת למציאת מקורות/הפניות.
כנראה:
זיהוי מראי מקום
קישור בין ספרים
parsing של הפניות
זו כנראה מערכת מורכבת מאוד.
▶
history
history
היסטוריית שימוש.
למשל:
ספרים אחרונים
דפים אחרונים
ניווט קודם
▶
indexing
indexing
אינדוקס.
אחת המערכות הכי חשובות.
אחראית על:
בניית מנוע חיפוש
יצירת אינדקסים
עיבוד טקסטים
▶
library
3
library
ניהול הספרייה עצמה.
למשל:
רשימת ספרים
קטגוריות
טעינת ספרים
מבנה הספרייה
▶
bloc
3
הלוגיקה וניהול המצבים
▶
library_bloc.dart
library_bloc.dart
זה המוח הראשי.
הוא:
מקבל Events
עושה לוגיקה
טוען נתונים
מחפש ספרים
שולח States חדשים
▶
library_event.dart
מכיל את כל האירועים האפשריים של הספרייה.
כלומר:
מה המשתמש עשה.
▶
library_state.dart
library_state.dart
מכיל את כל המצבים האפשריים של הספרייה.
▶
models
1
המידע והמבני נתונים
▶
library.dart
library.dart
הוא כנראה הקובץ שמגדיר את מבנה הנתונים הראשי של הספרייה או מרכז את כל המודלים של הספרייה.
כלומר:
איך ספרייה נראית בקוד
אילו ספרים יש בה
קטגוריות
מידע שמועבר בין ה־BLoC ל־UI
לפעמים הוא:
Model ראשי (class Library)
ולפעמים:
קובץ export שמרכז imports של כל המודלים.
▶
view
7
המסכים והתצוגה למשתמש
▶
book_preview_panel.dart
פאנל צדדי/תחתון לתצוגה מקדימה של ספר.
יכול להציג:
כריכה
מחבר
קטגוריה
תיאור
כפתור "פתח"
כפתור "הורד"
באוצריא זה כנראה נפתח כשמסמנים ספר.
▶
grid_items.dart
grid_items.dart
מכיל את רכיבי התצוגה של ספרים בגריד.
למשל:
כרטיס ספר
תמונת כריכה
שם ספר
אינדיקציה אם הורד/מועדף
כנראה Widgets קטנים לשימוש חוזר.
▶
library_browser.dart
library_browser.dart
זה כנראה המסך הראשי של הספרייה באוצריא.
אחראי על:
הצגת כל הספרים
ניווט בין אוספים
חיפוש
סינון
טעינת נתונים מה־backend
זה למעשה ה־"Library Screen".
▶
library_daf_yomi.dart
מודול ייעודי לדף היומי.
כנראה:
מחשב את הדף היומי
מציג מסכת ודף
פותח ספרים מתאימים
אולי קישור ישיר לגמרא הרלוונטית
▶
library_empty_state_widget.dart
תצוגה כאשר הספרייה ריקה.
למשל:
אין תוצאות חיפוש
אין ספרים מותקנים
אין אינטרנט
אין ספרים בקטגוריה
כולל UI נחמד במקום מסך ריק.
▶
library_panel_controller.dart
Controller של הפאנלים בספרייה.
כנראה מנהל:
איזה פאנל פתוח
preview פתוח/סגור
dialog פעיל
מעבר בין מצבי תצוגה
ייתכן שהוא משתמש ב:
ChangeNotifier
GetX
Riverpod
Bloc
תלוי בארכיטקטורה של אוצריא.
▶
otzar_book_dialog.dart
חלון קופץ של ספר.
כנראה נפתח בלחיצה ימנית/לחיצה ארוכה.
יכול להכיל:
מידע מלא
הורדה
מחיקה
הוספה למועדפים
פתיחה בחלון חדש
▶
migration
migration
המרות ושדרוגי נתונים.
למשל:
שינוי גרסאות DB
תיקון מבני נתונים ישנים
עדכון פורמטים
▶
models
models
מודלים של הנתונים.
למשל:
Book
Author
Page
Note
כלומר: המבנים הלוגיים של המידע.
▶
navigation
navigation
מערכת הניווט.
אחראית על:
מעבר בין מסכים
Routes
deep links
stack ניווט
▶
pdf_book
pdf_book
מנוע ספרי PDF.
למשל:
פתיחת PDF
ניווט בעמודים
רינדור PDF
חיפוש בתוך PDF
▶
personal_notes
personal_notes
הערות אישיות של המשתמש.
▶
plugins
plugins
פלאגינים והרחבות.
כנראה:
אינטגרציות
יכולות חיצוניות
מודולים נפרדים
▶
printing
printing
מערכת הדפסה.
למשל:
יצוא PDF
הדפסת טקסטים
עיצוב עמוד
▶
search
search
מנוע החיפוש.
משתמש ב־indexing.
אחראי על:
חיפוש מילים
סינון
תוצאות
ranking
▶
services
services
שירותי מערכת.
בדרך כלל:
API services
File services
Database services
Cache services
שכבת “מבצעי הפעולות”.
▶
settings
settings
הגדרות המשתמש.
▶
shortcuts
shortcuts
קיצורי דרך.
למשל:
hotkeys
קיצורי מקלדת
פקודות מהירות
▶
tabs
tabs
ניהול טאבים פתוחים.
כמו בדפדפן:
כמה ספרים פתוחים
מעבר בין לשוניות
▶
text_book
text_book
מערכת ספרי טקסט רגילים.
בניגוד ל־PDF.
כנראה:
rendering טקסט
חלוקה לפרקים
parsing
▶
theme
theme
עיצוב המערכת.
למשל:
צבעים
dark mode
fonts
styles
▶
tools
tools
כלי עזר פנימיים.
למשל:
importers
converters
debugging tools
▶
tour
tour
סיור ראשוני למשתמש.
Onboarding:
הדרכה
טיפים
הסבר ראשוני
▶
update
update
מערכת עדכונים.
למשל:
בדיקת גרסה
הורדת עדכונים
patching
▶
utils
utils
פונקציות עזר כלליות.
למשל:
helpers
formatters
parsers
utilities
▶
widgets
widgets
רכיבי UI משותפים.
ב־Flutter זאת תיקייה מרכזית מאוד.
למשל:
כפתורים
dialogs
cards
list widgets
▶
work_status
work_status
כנראה מערכת מצב עבודה.
למשל:
משימות ברקע
טעינה
אינדוקס פעיל
progress tracking
▶
workspaces
workspaces
סביבות עבודה.
למשל:
שמירת layout
קבוצות טאבים
פרופילי עבודה
▶
app.dart
app.dart
ה־App הראשי.
בדרך כלל:
MaterialApp
Theme
Router
Providers
זה ה־Root של האפליקציה.
▶
app_bloc_observer.dart
app_bloc_observer.dart
מעקב אחרי BLoC.
אם הפרויקט משתמש ב־Bloc:
לוגים
מעקב state
debugging
▶
main.dart
main.dart
נקודת ההתחלה של כל התוכנה.
כאן בדרך כלל:
runApp()
אתחול שירותים
טעינת הגדרות
startup logic
זה הקובץ הראשון שרץ.
▶
linux
`linux`
קוד והרצות עבור Linux.
▶
macos
`macos`
גרסת Mac של התוכנה.
▶
test
`test`
בדיקות אוטומטיות של הקוד.
למשל:
* Unit tests
* Widget tests
* Integration tests
מטרתן לבדוק שלא נשבר משהו.
▶
tool
`tool`
כלי עזר פנימיים למפתחים.
למשל:
* סקריפטים
* בניית נתונים
* המרות קבצים
* אוטומציות
▶
web
`web`
גרסת הדפדפן של התוכנה.
כולל:
* קבצי HTML
* Manifest
* הגדרות Web
▶
webhooks
`webhooks`
מערכת תקשורת עם שירותים חיצוניים.
Webhook = הודעה אוטומטית בין מערכות.
למשל:
* עדכונים
* שרתים
* API חיצוני
▶
windows
`windows`
גרסת Windows של התוכנה.
▶
.gitattributes
# קבצים ראשיים
`.gitattributes`
הגדרות מיוחדות של Git:
* טיפול בשורות
* סוגי קבצים
* מיזוגים
▶
.gitignore
`.gitignore`
רשימת קבצים שלא נכנסים ל־Git.
למשל:
* cache
* build
* קבצים זמניים
▶
.metadata
`.metadata`
מטא־דאטה של Flutter/IDE על הפרויקט.
▶
AGENTS.md
`AGENTS.md`
קובץ הוראות עבור Agents או AI.
לפעמים:
* הנחיות למודלים
* חוקי עבודה
* מבנה הפרויקט
▶
CLAUDE.md
`CLAUDE.md`
בדרך כלל הוראות עבור Claude AI או סוכני AI אחרים.
▶
LICENSE
`LICENSE`
הרישיון של הפרויקט.
מגדיר:
* מה מותר
* מה אסור
* תנאי שימוש
▶
README.md
`README.md`
קובץ ההסבר הראשי של הפרויקט.
בדרך כלל כולל:
* מה זה הפרויקט
* איך מתקינים
* איך מריצים
* מבנה בסיסי
▶
analysis_options.yaml
`analysis_options.yaml`
הגדרות Analyzer של Dart/Flutter.
כלומר:
* חוקי איכות קוד
* אזהרות
* lint rules
▶
cargokit_options.yaml
`cargokit_options.yaml`
קשור בדרך כלל ל־Rust/Cargo integration.
אם אוצריא משתמש ב־Rust לביצועים — זה קשור לזה.
▶
create.bat
`create.bat`
סקריפט Windows (`bat`) להרצה אוטומטית.
▶
devtools_options.yaml
`devtools_options.yaml`
הגדרות של Flutter DevTools.
▶
distribute_options.yaml
`distribute_options.yaml`
הגדרות להפצת גרסאות של התוכנה.
▶
install.sh
`install.sh`
סקריפט התקנה ללינוקס/macOS.
▶
pubspec.yaml
`pubspec.yaml`
אחד הקבצים הכי חשובים ב־Flutter.
מגדיר:
* ספריות
* assets
* גרסת הפרויקט
* dependencies
* fonts
אפשר לומר שזה “קובץ הזהות” של הפרויקט.