Jetpack ל-Android
Jetpack הוא חבילת ספריות של ספריות שעוזרות למפתחים לפעול לפי השיטות המומלצות, לצמצם את הקוד הסטנדרטי ולכתוב קוד שפועל באופן עקבי בכל הגרסאות והמכשירים של Android, כדי שהמפתחים יוכלו להתמקד בקוד שחשוב להם.
Jetpack פיתוח נייטיב
פיתוח ממשק משתמש באמצעות 'כתיבה'
ערכת כלים מודרנית לפיתוח ממשק משתמש מותאם, שמאפשרת לפשט ולהאיץ את הפיתוח של ממשק המשתמש ב-Android.
איך משתמשים ב-Jetpack
הדרכה למתחילים
לומדים על ספריות Jetpack החיוניות בקורס 'יסודות Android' עם 'כתיבה' ומצמצמים את התבניות הסטנדרטיות באפליקציה
מדריך מעשי
התנסות מעשית עם שלוש ספריות Jetpack שמפשטות את שכבת הנתונים: LiveData, ViewModel ו- Room
עכשיו באפליקציה לדוגמה ל-Android
איך ארכיטקטורת Android מודרנית מוטמעת באפליקציה בעולם האמיתי
ספריות Jetpack כל הספריות
* הספריות הפופולריות והנפוצות מופיעות ראשונות
activity * | גישה לממשקי API שניתנים לקישור שנוצרו על סמך Activity. |
appcompat * | מאפשרת גישה לממשקי API חדשים בגרסאות API ישנות יותר של הפלטפורמה (רבות מהן משתמשות ב-Material Design). |
appsearch * | פיתוח יכולות חיפוש מותאמות אישית בתוך האפליקציה למשתמשים. |
camera * | פיתוח אפליקציות מצלמה לנייד. |
compose * | הגדרה פרוגרמטית של ממשק המשתמש באמצעות פונקציות שניתנות ליצירה שמתארות את הצורה שלו ואת יחסי התלות בנתונים. |
databinding * | קישור רכיבי ממשק המשתמש בפריסות למקורות הנתונים באפליקציה באמצעות פורמט דקלרטיבי. |
fragment * | לפלח את האפליקציה למספר מסכים עצמאיים שמתארחים בתוך פעילות. |
hilt * | הרחבת הפונקציונליות של Dagger Hilt כדי לאפשר הזרקת תלות של כיתות מסוימות מהספריות של androidx. |
lifecycle * | פיתוח רכיבים מודעים למחזור חיים שיכולים לשנות את ההתנהגות על סמך מצב מחזור החיים הנוכחי של פעילות או קטע. |
רכיבי Material Design * | רכיבי ממשק משתמש מודולריים ומותאמים אישית בסגנון Material Design ל-Android. |
ניווט * | יצירה של ממשק המשתמש באפליקציה, בניית המבנה שלו, טיפול בקישורי עומק וניווט בין המסכים. |
paging * | טעינה של נתונים בדפים והצגה שלהם ב-RecyclerView. |
room * | יצירה, אחסון וניהול של נתונים קבועים שמגובים על ידי מסד נתונים של SQLite. |
test * | בדיקה ב-Android. |
work * | תזמון והפעלה של משימות ברקע מבוססות-אילוצים שאפשר לדחות. |
ads | קבלת מזהה פרסום עם Play Services או בלי Play Services. |
הערה | חשיפת מטא-נתונים שיעזרו לכלים ולמפתחים אחרים להבין את הקוד של האפליקציה. |
arch.core | כלי עזר ליחסי תלות אחרים של ארכיטקטורה, כולל כללי בדיקה של JUnit שאפשר להשתמש בהם עם LiveData. |
asynclayoutinflater | כדאי להנפיח פריסות באופן אסינכרוני כדי למנוע תנודות בממשק המשתמש. |
autofill | שיפור הדיוק של המילוי האוטומטי באמצעות הרחבת הטיפים. |
benchmark | מדידת הביצועים של הקוד במדויק ב-Android Studio. |
ביומטרי | אימות באמצעות מידע ביומטרי או פרטי כניסה של המכשיר, וביצוע פעולות קריפטוגרפיות. |
bluetooth | שימוש בתכונות ה-Bluetooth של פלטפורמת Android עם ממשקי API שתואמים לאחור. |
דפדפן | הצגת דפי אינטרנט בדפדפן ברירת המחדל של המשתמש. |
camera.viewfinder | רכיב עין המצלמה עצמאי שניתן לשילוב ולצפייה בתמונה" |
car-app | פיתוח אפליקציות לפי תבניות ל-Android Auto ול-Android Automotive OS. |
cardview | הטמעת תבנית הכרטיס של Material Design עם פינות עגולות ואפקט צללים. |
collection | צמצום ההשפעה על הזיכרון של אוספים קיימים וחדשים קטנים. |
compose.animation | פיתוח אנימציות באפליקציות שלהם ב-Jetpack Compose כדי להעשיר את חוויית המשתמש. |
compose.compiler | שינוי פונקציות עם @Composable והפעלת אופטימיזציות באמצעות פלאגין של קומפילר Kotlin. |
compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם של מערכת עיצוב. |
compose.material | פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה יותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
compose.material3 | פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הגרסה הבאה של Material Design. Material 3 כולל רכיבים ועיצוב נושאים מעודכנים ותכונות של התאמה אישית של Material You, כמו צבעים דינמיים. הוא תוכנן כך שיהיה עקבי עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת. |
compose.material3.adaptive | אתם יכולים להשתמש בספרייה ההתאמה האישית של Material 3 כדי ליצור ממשקי משתמש מותאמים אישית שיתאימו את עצמם באופן אוטומטי בהתאם להגדרות החלון הנוכחיות, כמו סיווגים של גודל חלון או מצבי מכשירים. הספרייה מספקת גם הטמעות ברירת מחדל של תבניות וגם אבני בניין נדרשות ליצירת חוויות משלכם בהתאמה אישית. |
compose.runtime | אבני בניין בסיסיות של מודל התכנות ושל ניהול המצב ב-Compose, וזמן ריצה ליבה שאליו פונה הפלאגין של Compose Compiler. |
compose.ui | רכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים כדי לקיים אינטראקציה עם המכשיר, כולל פריסה, ציור והזנה. |
concurrent | העברת משימות מהשרשור הראשי באמצעות פונקציות רפיטיביות (coroutines) וניצול היתרונות של ListenableFuture. |
constraintlayout | מיקום וגודל של ווידג'טים באופן גמיש באמצעות מיקום יחסי. |
contentpager | טעינה של נתוני ContentProvider וקריאה שלהם ברצף ברקע. |
coordinatorlayout | מיקום ווידג'טים של אפליקציות ברמה העליונה, כמו AppBarLayout ו-FloatingActionButton. |
core | טירגוט לתכונות ולממשקי ה-API העדכניים ביותר בפלטפורמה, תוך תמיכה במכשירים ישנים יותר. |
core.uwb | הטמעת UWB (Ultra Wideband) במכשירים נתמכים. |
פרטי כניסה | הספרייה הזו מספקת גישה מאוחדת לפרטי הכניסה של משתמש. הנתונים האלה יכולים לכלול סיסמאות, מפתחות גישה ופרטי כניסה מאוחדים. צריך להשתמש בספרייה הזו כדי לספק חוויות כניסה חלקות ומאובטחות. |
credentials.registry | כדי לפתור את הבעיות האלה, אנחנו מוסיפים מנגנון רישום חדש שמאפשר לאפליקציה לספק פרטי כניסה דיגיטליים באופן שמגן על הפרטיות. באופן כללי, אפליקציית הספק תירשם מראש את כל פרטי הכניסה הדיגיטליים האפשריים שלה ב-Credential Manager. כש-Credential Manager יקבל בקשה מאפליקציה לפרטי כניסה דיגיטליים ספציפיים, הוא יפעיל את התאמת פרטי הכניסה ואת ממשק המשתמש לבחירת משתמשים בארגז חול. |
cursoradapter | חשיפת נתוני הסמן לווידג'ט ListView. |
customview | הטמעת תצוגות בהתאמה אישית. |
datastore | אחסון נתונים באופן אסינכרוני, עקבי ועסקאותי, תוך פתרון חלק מהחסרונות של SharedPreferences |
documentfile | הצגת מסמך של קובץ. |
draganddrop | לאפשר גרירה ושחרור של נתונים מאפליקציה אחרת או בתוך האפליקציה, ולהציג תכונה עקבית של יעד השחרור. |
drawerlayout | הטמעת ווידג'ט של תיבה נפתחת בעיצוב Material. |
dynamicanimation | יצירת אנימציות חלקות באמצעות ממשק API ליצירת אנימציות שמבוסס על פיזיקה. |
אמוג'י | הצגת אמוג'י במכשירים נוכחיים ובמכשירים ישנים יותר. |
emoji2 | הצגת אמוג'י במכשירים נוכחיים ובמכשירים ישנים יותר. |
enterprise | יצירת אפליקציות שמוכנות לשימוש בארגון. |
exifinterface | קריאה וכתיבה של תגי EXIF בקובצי תמונות. |
games | שימוש ב-Android Game SDK באופן מקורי באפליקציה כדי לבצע משימות מורכבות במשחקים, כמו Frame Pacing. |
בקצרה | פיתוח פריסות למשטחים מרוחקים באמצעות ממשק API בסגנון Jetpack Compose. |
graphics | ניצול היכולות הגרפיות במספר גרסאות של פלטפורמת Android |
gridlayout | הטמעת פריסת רשת. |
health | יצירת אפליקציות בריאות בעלות ביצועים טובים באופן בלתי תלוי בפלטפורמה. |
health.connect | מאפשרת למפתחים לקרוא או לכתוב את רשומות הבריאות והכושר של המשתמשים. |
heifwriter | קידוד תמונה או אוסף תמונות בפורמט HEIF באמצעות הקודקים הזמינים במכשיר Android. |
ink | מעוררים השראה לאפליקציות עט מהשורה הראשונה. הפחתת חסמי הכניסה למפתחים כדי שיוכלו ליצור חוויות כתיבה יפהפיות עם ביצועים גבוהים. |
input | צמצום זמן האחזור של אינטראקציות הקלט על ידי חיזוי אירועי MotionEvents עתידיים |
interpolator | שימוש באינטרפולטורים של אנימציה בפלטפורמות ישנות יותר. |
javascriptengine | מפעילים את האפשרות של אפליקציית Android להעריך JavaScript. |
jetifier | כלי עצמאי להעברת יחסי התלות של ספרייה בספריית התמיכה הקודמת ליחסי תלות מקבילים ב-AndroidX. |
leanback | במקום הארטיפקט הזה, צריך להשתמש ב-Compose for TV. |
legacy | פריט המידע הזה שנוצר בתהליך פיתוח (Artifact) והכיתות שלו הוצאו משימוש. החל מגרסה 8 של Android, ההגבלות על בדיקת הרקע הופכות את הסיווג הזה ללא שימושי. |
lint | בדיקות Lint לאימות השימוש בממשקי ה-API של Gradle |
loader | טעינת נתונים לממשק המשתמש ששרודים שינויים בהגדרות. |
localbroadcastmanager | פריט המידע הזה שנוצר בתהליך פיתוח (Artifact) והכיתות שלו הוצאו משימוש. במקום זאת, כדאי להשתמש ב-LiveData או ב-reactive streams. |
media | לשתף תוכן מדיה ואמצעי בקרה עם אפליקציות אחרות. הוחלפה על ידי media2. |
media2 | לשתף תוכן מדיה ואמצעי בקרה עם אפליקציות אחרות. |
media3 * | ספריות תמיכה לתרחישי שימוש של מדיה. |
mediarouter | הפעלת הצגה והפעלה של מדיה במכשירי מקלט מרוחקים באמצעות ממשק משתמש משותף. |
multidex | פריסת אפליקציות עם כמה קובצי dex במכשירים עם גרסת Android 5 ומטה. |
metrics | מעקב אחרי מדדי זמן ריצה שונים של האפליקציה ודיווח עליהם |
palette | חילוץ של לוחות צבעים מייצגים מתמונות. |
ספרייה להוספת יכולות צפייה בקבצי PDF באפליקציות. | |
percentlayout | פריט המידע הזה שנוצר בתהליך פיתוח (Artifact) והכיתות שלו הוצאו משימוש. במקום זאת, כדאי להשתמש ב-ConstraintLayout ובפריסות המשויכות. |
preference | פיתוח מסכי הגדרות אינטראקטיביים בלי צורך באינטראקציה עם נפח האחסון במכשיר או בניהול ממשק המשתמש. |
להדפיס תמונות, מסמכים ותמונות וגרפיקה אחרים מהאפליקציה. | |
privacysandbox.activity | TODO |
privacysandbox.ads | הספרייה הזו מאפשרת שילוב עם ממשקי API לשמירה על הפרטיות, שהם חלק מארגז החול לפרטיות ב-Android. |
privacysandbox.plugins | Android Privacy Sandbox Sdk Library Gradle Plugin |
privacysandbox.sdkruntime | הספרייה הזו מספקת רכיבים לצרכנים מודעים ל-SdkRuntime |
privacysandbox.tools | ספרייה לשימוש בפונקציונליות של ארגז החול לפרטיות ב-Android |
privacysandbox.ui | TODO |
profileinstaller | מאפשרת לספריות לאכלס מראש את עקבות ה-compilation ש-ART יקרא. |
recommendation | קידום תוכן במסך הבית של Android TV Launcher. |
recyclerview | הצגת קבוצות גדולות של נתונים בממשק המשתמש תוך צמצום השימוש בזיכרון. |
remotecallback | יוצרים מעטפת שתעזור למפתחים לספק בקלות PendingIntent. |
resourceinspection | הצגת המאפיינים של תצוגות בהתאמה אישית בכלי לבדיקת הפריסה בזמן אמת של Android Studio. |
savedstate | כותבים רכיבים נשלפים ששומרים את מצב ממשק המשתמש כשתהליך מסוים מסתיים, ומשחזרים אותו כשהתהליך מופעל מחדש. |
אבטחה | ניהול בטוח של מפתחות והצפנה של קבצים והעדפות משותפות. |
sharetarget | תאימות לאחור לשימוש במקשי קיצור כיעדים לשיתוף ישיר. |
slice | הצגת רכיבי ממשק משתמש לפי תבנית מחוץ לאפליקציה. |
slidingpanelayout | הטמעת תבנית של ממשק משתמש עם חלונית הזזה. |
startup | הטמעה של דרך פשוטה ויעילה לאינטוליזיציה של רכיבים בזמן ההפעלה של האפליקציה. |
sqlite | עבודה עם מסדי נתונים מקומיים של SQLite. אם אפשר, כדאי להשתמש ב-Room במקום ב-Meet. |
swiperefreshlayout | הטמעת התבנית של ממשק המשתמש לסחיטה לרענון. |
test.uiautomator | מסגרת לבדיקת ממשק משתמש פונקציונלי באפליקציות שונות |
textclassifier | זיהוי שיחות, קישורים, בחירות ומבנים דומים אחרים בטקסט. |
מעקב | כתיבת אירועי מעקב למאגר המעקב של המערכת. |
transition | אנימציה של תנועה בממשק המשתמש באמצעות פריסות התחלה וסיום. |
tv | מאפשר למפתחים להשתמש בפונקציות של Compose ו-Material Design כדי לכתוב אפליקציות לטלוויזיה |
tvprovider | לספק ערוצים ל-Android TV. |
vectordrawable | עיבוד גרפיקה וקטורית. |
versionedparcelable | פורמט יצירת סדרות (serialization) בינארי יציב וקומפקטי שאפשר להעביר בין תהליכים או לשמור בבטחה. |
viewpager | הצגת תצוגות או קטעים בפורמט שניתן להחליק. אם אפשר, השתמשו ב-viewpager2 במקום ב-viewpager. |
viewpager2 | הצגת תצוגות או קטעים בפורמט שניתן להחליק. |
wear | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
wear.compose | כותבים אפליקציות Jetpack Compose למכשירי Wearable על ידי מתן פונקציונליות שתומכת במכשירים ספציפיים ללבישה, בגדלים, בצורות ובתנועות ניווט ספציפיות למכשירים כאלה. |
wear.protolayout | הספרייה הזו מאפשרת להגדיר קבוצה של פריסות ממשק משתמש וביטויים שאינם ממשק משתמש לצורך רינדור או הערכה במשטחים מרוחקים. |
wear.tiles | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
wear.watchface | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
webkit | עבודה עם ממשקי WebView API מודרניים ב-Android מגרסה 5 ואילך. |
window | עוזרת לתמוך בגורמי צורה שונים של מכשירים, כמו מכשירים מתקפלים. |
window.extensions.core | ממשקי ה-API של הליבה לספריות התוספים של מנהל החלונות |
מה חדש
- כתיבה באוגוסט 2023
- הגרסה של Jetpack Compose 1.5.0 עוברת ליציבות ומביאה לשיפורים משמעותיים בביצועים, כולל ארגון מחדש (Refactoring) של כלים ברמה גבוהה כמו 'Clickable' [קליקבילי] שיכול לקצר את זמן היצירה ב-80%. ב-Compose מ-23 באוגוסט יש גם שיפור של עד 70% בהקצאת הזיכרון (במיוחד ב-stack הגרפיקה), שיפחית את טביעת הרגל של Compose במכשירים
- Wear Compose וכרטיסי מידע 1.2
- גם Wear Compose וגם Wear Tiles עברו למצב יציב כדי לשפר את חוויית המפתחים של Wear OS. שתיהן משלימות אחת את השנייה, ואפשר להשתמש ב-Wear Compose כדי ליצור מסכי אפליקציה מורכבים במכשירי Wear, ואפשר להשתמש בכרטיסי המידע ב-Wear כדי ליצור את משבצות האפליקציה. הגרסה החדשה של Wear Compose כוללת פונקציות חדשות, כמו 'פריטים שניתנים להרחבה' ו'החלקה לפתיחה'. גרסת כרטיסי המידע ב-Wear תומכת גם באנימציה של ווידג'ט ובקישור נתוני הפלטפורמה (כמו מקור הנתונים לגבי בריאות).
- חלון 1.1
- 1.1 מייצב ממשקי API של הטמעת פעילויות, ומאפשר לאפליקציות כמו WhatsApp, eBay ו-Temu לשלוח פריסות של מסכים גדולים. ה-API מציע תכונות נוספות, כי הוא מאפשר למפתחים לשנות התנהגות של מסך מפוצל, לבדוק (ולשנות) את מצב המפוצל בזמן הריצה, להטמיע פיצולים אופקיים ולהתחיל חלון מלא בחלון מלא.
- נתוני גרסה
- למידע נוסף, כדאי לעיין בנתוני הגרסה שלנו.
למה כדאי להשתמש ב-Android Jetpack?
כדאי לפעול בהתאם לשיטות המומלצות
ספריות Jetpack ב-Android מבוססות על שיטות עיצוב מודרניות, ומאפשרות פחות קריסות ופחות דליפות זיכרון בזכות תאימות לאחור.
להוציא קוד סטנדרטי
Android Jetpack מנהל פעילויות מאתגרות כמו משימות ברקע, ניווט וניהול מחזור החיים, כדי שתוכלו להתמקד במה שהופך את האפליקציה שלכם לנהדרת.
צמצום המקטעים
כדאי להשתמש בספריות שפועלות באופן עקבי בגרסאות Android ובמכשירים שונים כדי להפחית את המורכבות.