מפת נושאים באנדרואיד


איפה לומדים כל נושא ובאיזה עומק

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

איך קוראים את המפה?

סימון עומק מה תמצאו בקישור
שיעור מעשי בנייה מודרכת של תוצר עובד, עם קוד ושלבי בדיקה.
העמקה הסבר של הרעיון, השוואה או ניתוח שעוזרים להבין למה הקוד בנוי כך.
משלים אזכור קצר, תרגול, שאלות חזרה או שער למצגת/קובץ נוסף. זה אינו תחליף לשיעור מלא.

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

שלושה מסלולי למידה מרכזיים

TicTacMenu — ממסכים ותפריטים למשחק רשת

המסלול מתאים למי שרוצה להכיר בהדרגה ניווט, הפרדת מודל, תקשורת, התחברות ו־Firebase:

  1. Activities ותפריט Overflow
  2. יצירת תפריט מגירה מבוסס Fragments
  3. הוספת Fragments לתפריט
  4. יצירת מודל Tic-Tac-Toe
  5. חיבור המסך למודל
  6. משחק מרובה משתתפים עם SignalR
  7. שכפול Activity והוספתו למגירה
  8. יצירת מסך Login והגדרתו כ־Launcher
  9. הקמת Firebase,‏ RTDB ו־Authentication
  10. התחברות במייל ובסיסמה
  11. התחברות Google ו־SHA-1
  12. מעבר ל־View Binding, Binding ב־MainActivity ו־Binding ב־Fragments ובתפריט
  13. לובי וחדרי משחק ב־RTDB
  14. מצב משחק והאזנה בזמן אמת ב־RTDB

CollectCircles — ציור, משחק, שמירה ועבודה ברקע

התחילו ב־ציור ומחלקות, המשיכו ל־מצב משחק ומגע, ל־זמן, שיא ומחזור חיים, ולבסוף קראו את המחשבה הביקורתית על OOP ו־Views.

ההמשך מחולק לשתי מפות קצרות:

Requery — מסד SQLite מקומי בארבעה תוצרים עובדים

  1. Entity ראשון: Student מקצה לקצה
  2. קשר רבים־לרבים עם דירוג ושדרוג סכימה
  3. INNER JOIN typed ושלושה טפסי הוספה
  4. RecyclerView ומחיקה לפי מפתח מורכב

Android Studio, מבנה הפרויקט ותהליך העבודה

נושא עומק איפה לומדים
יצירת Activity דרך Android Studio שיעור מעשי הוספת Activities, יצירת LoginActivity מן ה־GUI
AndroidManifest,‏ Launcher ורישום מסכים שיעור מעשי תפריט Fragments והגדרת Launcher, שכפול ורישום Activity, LoginActivity כ־Launcher יחיד
ניווט בתצוגת Android ומיקום קבצים שיעור מעשי Layout Editor, Requery — הכנת Gradle וה־Entity הראשון
Gradle,‏ build.gradle.kts ו־Version Catalog שיעור מעשי Requery — הוספת ספרייה ומעבד annotations, FCM — תלויות וערכים מקומיים, תמיכה ב־Jetpack Compose
טיפול בהתנגשות גרסאות, AGP ו־SDK שיעור מעשי תיקון בעיית גרסאות
פירמוט קוד וקיצור מקשים ב־IDE משלים הגדרת Ctrl+K,D לפירמוט
שינוי שם פרויקט, package,‏ namespace ו־application ID שיעור מעשי שינוי שם לפרויקט קיים
Git, ענפים, Pull Request וסקירת קוד שיעור מעשי Pull Requests ב־Android Studio ובכלים נוספים
תכנון ותיעוד פרויקט לקראת הצגה משלים שאלות שבוחן עשוי לשאול, האקתון פיתוח מונחה־AI

Activities,‏ Intents וניווט

נושא עומק איפה לומדים
מעבר בין Activities בעזרת Intent מפורש שיעור מעשי Activities בתפריט Overflow, שכפול Activity וניתוב מן המגירה
תפריט Overflow וקובץ menu XML שיעור מעשי הוספת Activities לתפריט
Navigation Drawer,‏ DrawerLayout ו־NavigationView שיעור מעשי יצירת תפריט מגירה, הוספת יעדים למגירה
Fragments וניווט בתוך Activity יחיד שיעור מעשי Fragments בתוך תפריט מגירה, שלושה Fragments ו־Bottom Navigation
onCreateView לעומת onViewCreated העמקה מדריך Fragments
קבלת תוצאה מפעולה חיצונית עם ActivityResultLauncher משלים מפגשי אנדרואיד — ActivityResultLauncher
מעבר מושהה עם Handler ו־Looper שיעור מעשי LoginActivity לפני חיבור Authentication

מחזור חיים, מצב ושמירה קלה

נושא עומק איפה לומדים
מחזור החיים של Activity שיעור מעשי עצירת עדכוני זמן ב־onStop, חישוב התקדמות ב־onStart וב־onStop; משלים: מצגת מחזור החיים
SharedPreferences לקריאה וכתיבה שיעור מעשי שמירת שיא, מצב משחק מתמשך, שמירת בחירת “הישאר מחובר”
מצב בזיכרון לעומת מצב שנשמר במכשיר העמקה כלכלה מתמשכת ב־CollectCircles
שמירת מצב מסך ב־Bundle משלים מצגת מחזור החיים
זמן מונוטוני לעומת שעון קיר העמקה SystemClock למדידת משחק, בחירת שעון להתקדמות אופליין
Callback פשוט באמצעות Runnable שיעור מעשי הודעה מן ה־View ל־Activity על סיום משחק, אירוע איסוף עיגול

XML, רכיבי UI ו־View Binding

נושא עומק איפה לומדים
בניית מסך ב־Layout Editor שיעור מעשי CollectCircles — בניית המסך דרך ה־GUI, LoginActivity דרך ה־GUI
XML layouts, אילוצים, משקלים ומשאבי strings.xml שיעור מעשי מסך המשחק CollectCircles, מסך Login, טבלת Requery
View Binding במקום findViewById שיעור מעשי עקרונות ומעבר הדרגתי, MainActivity, Fragments ו־MenuActivity, Requery בפרויקט חדש
אירועי לחיצה ו־listeners שיעור מעשי חיבור לוח המשחק למודל, הוספות למסד דרך דיאלוגים
AlertDialog ו־Material Dialog שיעור מעשי הודעת סיום משחק, חנות Pushers, טפסי הוספה למסד
Spinner ו־ArrayAdapter שיעור מעשי בחירת חדר משחק ב־RTDB
ListView והעברת רשימה בין מסכים תרגול משלים תרגיל ToDo List
RecyclerView,‏ Adapter ו־ViewHolder שיעור מעשי Requery — טבלה ומחיקה
Jetpack Compose בתוך פרויקט שהתחיל ב־Java/XML שיעור מעשי הוספת תמיכת Compose ו־Activity ב־Kotlin

Canvas, מגע, גאומטריה ואנימציה

נושא עומק איפה לומדים
יצירת View מותאם אישית ו־onDraw שיעור מעשי ציור עיגולים ב־Canvas
Canvas,‏ Paint ומערכת הצירים שיעור מעשי הלוח הראשון, ציור דמות Pusher
אירועי מגע, תפיסה, גרירה ושחרור עם MotionEvent שיעור מעשי מצב משחק וגרירת עיגולים
מרחק בין מרכזים, חפיפה והכלה של עיגולים העמקה שלוש בדיקות גאומטריות, יצירת עיגולים חוקיים וגרירה למטרה
לולאת ציור ו־postInvalidateOnAnimation שיעור מעשי מצב משחק אוטונומי, אנימציית Pusher
הפרדת update מ־draw ותנועה לפי זמן העמקה Pusher הולך — זמן, פריימים ותנועה מחזורית
חיישנים משלים מפגשי אנדרואיד — Sensors
קול, וידאו ואנימציות משאבים משלים אינדקס חומרי AppSchool

OOP,‏ Java וארכיטקטורה

נושא עומק איפה לומדים
הפרדת מצב המשחק מן המסך שיעור מעשי יצירת TicTacToeModel, חיבור המודל ל־Activity, מחלקת Game ב־CollectCircles
מחלקות, בנאים, שדות, getters ומתודות שיעור מעשי Circle ו־Target, Entity ראשון ב־Requery
ירושה (extends) ו־super שיעור מעשי Target יורש מ־Circle
Composition לעומת ירושה, ו־View לעומת אובייקט מודל העמקה מחשבה ביקורתית על עצמים, Views וירושה
MVC לעומת MVP העמקה השוואה ודוגמאות Java
פונקציות טהורות והפרדת חישוב מ־Android שיעור מעשי מחשבון התקדמות אופליין, חישוב מחיר ובדיקת יחידה
Lambda ו־listeners ב־Java שיעור מעשי אירועי לוח Tic-Tac-Toe; משלים: אינדקס AppSchool

נתונים מקומיים: SQLite ו־Requery

נושא עומק איפה לומדים
Entity,‏ annotations וקוד שנוצר שיעור מעשי Student מקצה לקצה
פתיחת מסד, insert ו־select typed שיעור מעשי Student מקצה לקצה
קשר רבים־לרבים עם נתון נוסף שיעור מעשי Student–Watching–Movie עם rating
שדרוג סכימה בלי למחוק נתונים שיעור מעשי Migration מגרסה 1 לגרסה 2
INNER JOIN typed ו־Tuple שיעור מעשי JOIN והוספות
מחיקה לפי מפתח מורכב ורענון UI שיעור מעשי RecyclerView ומחיקת Watching
SQLite ישיר עם SQLiteOpenHelper ו־Cursor שיעור מעשי חלופי מדריך SQLite בסיסי

Firebase, התחברות ונתונים בזמן אמת

נושא עומק איפה לומדים
יצירת פרויקט Firebase וחיבור אפליקציית Android שיעור מעשי Firebase Project + RTDB + Authentication
google-services.json,‏ package name ותקלות התאמה שיעור מעשי בדיקות ותיקון No matching client, שינוי שם פרויקט מחובר לשירות
Firebase Authentication במייל ובסיסמה שיעור מעשי Login ו־FBRef
Google Sign-In,‏ OAuth,‏ SHA-1 ו־Firebase credential שיעור מעשי Google OAuth Login
DatabaseReference, כתיבה וקריאה מ־RTDB שיעור מעשי פרסום חדרי משחק
ValueEventListener ועדכונים בזמן אמת שיעור מעשי רשימת חדרים חיה, משחק וצפייה בזמן אמת
הסרת listener והתאמה למחזור החיים שיעור מעשי ניקוי מאזין החדרים
מבנה נתונים ב־RTDB והמרת אובייקט Java לעץ JSON העמקה מודל חדר והזרימה בין מכשירים
כללי RTDB וגבול האמון העמקה ראשונית כללי כיתה והסיכון שבכללים פתוחים, תשתית הענן של CollectCircles

רשת, API וענן

נושא עומק איפה לומדים
לקוח SignalR, חיבור לשרת ושליחת אירועים שיעור מעשי Tic-Tac-Toe מרובה משתתפים
זרימת הודעה בין UI,‏ Service, שרת ולקוח אחר העמקה תרשים הרצף של SignalR
קריאת API ושליחת JSON מ־Android שיעור מעשי Interactions API ו־LLM ב־Java
Firebase Cloud Functions ופריסה שיעור מעשי מתקדם תשתית ענן ל־FCM
הפרדת סודות וערכי סביבה מן הקוד שיעור מעשי הגדרות מקומיות ל־FCM
JSON כמבנה נתונים מקומי שיעור מעשי מערכת שעות ב־JSON

הרשאות, התראות ועבודה ברקע

נושא עומק איפה לומדים
הרשאות רגילות, מסוכנות ומיוחדות שיעור מעשי מדריך הרשאות
בקשת הרשאה בזמן ריצה שיעור מעשי מדריך הרשאות, הרשאת התראות ב־Android 13+
Notification Channel ובניית התראה מקומית שיעור מעשי CollectCircles 5 — התראה מקומית
FCM,‏ topics,‏ data message ו־notification message שיעור מעשי CollectCircles 6 — התראות דרך FCM
FirebaseMessagingService ורישום Service ב־Manifest שיעור מעשי CollectCircles 6 — שירות ההודעות
WorkManager ו־OneTimeWorkRequest שיעור מעשי Worker ראשון ובדיקת זכאות
PeriodicWorkRequest, אילוצי סוללה ועבודה ייחודית שיעור מעשי עבודה מחזורית
תזמון מתוך JSON והעברת input ל־Worker שיעור מעשי מערכת שעות ב־JSON
תיאום כתיבה בין UI ל־Worker שיעור מעשי מתקדם כתיבה בטוחה מן ה־Worker
מסלול WorkManager קצר המתמקד בהתראה שיעור מעשי חלופי התראה מחזורית ו־Brag
Thread,‏ UI thread ו־runOnUiThread משלים מפגשי אנדרואיד — Thread
Service,‏ AlarmManager ו־BroadcastReceiver משלים מפגשי אנדרואיד עם זאב

בדיקות, תקלות ואיכות

נושא עומק איפה לומדים
בדיקת יחידה לפונקציית Java טהורה שיעור מעשי בדיקת מחיר Pusher, בדיקת מחשבון אופליין
ההבדל בין test ל־androidTest העמקה קצרה בדיקת מחיר Pusher
בדיקות ידניות ותוצאה נצפית שיעור מעשי רשימת הבדיקה של Requery 1, בדיקת RTDB בשני מכשירים, בדיקות FCM
אבחון Firebase,‏ SHA-1 ו־Google Sign-In שיעור מעשי פתרון תקלות OAuth
אבחון Gradle,‏ AGP ו־AAR Metadata שיעור מעשי תיקון בעיית גרסאות
שאלות שמוודאות הבנה לקראת בחינת פרויקט תרגול משלים שאלות שבוחן עשוי לשאול
מקורות רוחביים ומשלימים
  • אינדקס חומרי AppSchool מפנה לפרקי עזר בנושאים כמו layouts,‏ listeners,‏ Intents, קבצים, מדיה, אנימציה, Threads, Services, חיישנים ו־SQLite. חלק מן החומר נמצא בקובצי PDF, ולכן הוא מסומן במפה כמקור משלים ולא כשיעור Markdown מלא.
  • מפגשי אנדרואיד עם זאב מרכז מצגות והקלטות על WorkManager, חיישנים, Services, התראות, Fragments, מחזור חיים, Threads,‏ BroadcastReceiver,‏ JSON API, תפריטים ו־ActivityResultLauncher.
  • שאלות שבוחן עשוי לשאול מתאימות לחזרה אחרי שהיישום כבר עובד: תפריטים, קלט, קבצים, מסדי נתונים, תקשורת, Intents, תכנות וחוויית משתמש.

למורים ולמתכנני מסלול: מפת היעד והפערים בלימודי Android מפרידה בין נושאים חסרים, מקורות משלימים ונושאים שכבר נלמדים אך ראויים להעמקה.