Jetpack Compose, ערכת הכלים של UI של גוגל לפיתוח אפליקציות אנדרואיד, נמצאת כעת באלפא. זה פועל באופן מלא עם התצוגות הסטנדרטיות של אנדרואיד.
כשמדובר בפיתוח אפליקציה, יש הרבה דרכים לעשות זאת. אתה יכול לבחור לאיזו פלטפורמה/ים לפתח, באיזו שפת/ות תכנות אתה רוצה להשתמש, ועוד הרבה יותר.
עוד בסתיו 2019, גוגל הוצג מסגרת חדשה לבניית ממשקי משתמש באנדרואיד, באמצעות Kotlin. עד עכשיו, זה היה במצב התפתחותי, עם שינויים שבירה תכופים וטונות של תכונות חסרות. אבל היום, גוגל דחפה את Jetpack Compose למצב שחרור אלפא, כלומר זה צעד אחד קרוב יותר לשימוש בפרויקטים באיכות ייצור.
מה זה Jetpack Compose?
כשבונים אפליקציית אנדרואיד, בדרך כלל יש שני מרכיבים עיקריים שאתה צריך להתמודד איתם: הקוד, לדברים מבוססי היגיון; וה-XML, עבור פריסות. כברירת מחדל, אנדרואיד משתמשת ב-Java עבור קוד ובסט משלה של תגיות XML עבור פריסות.
עבור רבים, Java ו-XML הם בסדר גמור, במיוחד עבור אפליקציות פשוטות יותר. אבל לשתי המערכות יש את המגבלות והמטרדים שלהן. עם הצגתו של קוטלין בתור an רשמי שפה (ומומלצת) לפיתוח אנדרואיד, צד הקידוד של יצירת אפליקציית אנדרואיד נעשה הרבה יותר קל. עם התכונות השימושיות של Kotlin כמו הגנת Null מובנית ופונקציות הרחבה, הקוד נראה נקי יותר וקל יותר לקריאה.
אבל קוטלין לא שינה דבר עם הפריסות של אנדרואיד. כדי ליצור פריסה מורכבת, עדיין היית צריך ליצור קובץ XML ולעצב אותו שם. יש לזה כמה חסרונות בולטים, כולל ההפרדה המובנית בין הקוד ל-XML. אם יש לך מחרוזת קבועה בקוד שלך, למשל, אתה לא יכול רק להתייחס לזה מ-XML, אז אם המחרוזת הזו משתנה בקוד, עליך לזכור לעדכן גם אותה ב-XML.
היכנס ל-Jetpack Compose. זוהי התשובה של גוגל לתהליך עיצוב פריסת ה-XML המגושם יותר ויותר באנדרואיד. במקום לעצב את ממשק המשתמש של האפליקציה שלך ב-XML, אתה יכול לעשות זאת ישירות מהקוד שלך. בעוד שאפשר ליצור פריסות מבוססות קוד, הן בדרך כלל פחות ניתנות לתחזוקה מ-XML וכוללות ספריות שנשברו בקלות. Compose, לעומת זאת, נועד לעבוד ישר בתוך Kotlin: אין יותר XML.
Jetpack Compose היא גם סטייה די קיצונית מהעיצוב הציווי הסטנדרטי של פריסות XML. במקום זאת, זה דומה יותר ל-React או Flutter, עם פריסות הצהרתיות שמתעדכנות כאשר הנתונים משתנים, במקום להסתמך על המפתח שיטמיע את ההיגיון הזה.
מה נתמך
אז Jetpack Compose נמצא באלפא עכשיו. מה זה אומר? ובכן, הרבה דברים.
יכולת פעולה הדדית עם תצוגות
בדיוק כמו ש-Kotlin ניתנת להפעלה הדדית מלאה עם Java, Jetpack Compose ניתנת להפעלה הדדית מלאה עם התצוגות הסטנדרטיות של אנדרואיד. זה אומר לא מעט דברים.
ראשית, יהיה הרבה יותר קל לעבור אל Jetpack Compose אם תרצה בכך. במקום להמיר את כל התצוגות והפריסות המותאמות אישית שלך ל-Composables, תוכל פשוט ליצור את הפריסות והרכיבים החדשים שלך ב-Compose. יש לך ספרייה שמשתמשת בתצוגות "מדור קודם", אבל האפליקציה שלך תוכננה עם Compose? אין בעיה. אתה יכול להוסיף את התצוגה ישר לתוך הפונקציה Composable שלך. עדיין לא עשיתם את הקפיצה ל-Compose, אבל אתם רוצים להשתמש בספרייה שמסתמכת על Composables? שוב, אין בעיה. פשוט הכנס את ה-Composable ישירות לפריסה שלך.
באשר לנושאים, זה לא בדיוק כמו הכנס-הפעל כמו יכולת פעולה הדדית של פריסה. למרות זאת, גוגל יצרה ספרייה כדי להתאים את ערכות ה-XML הסטנדרטיות שלך לנושאים התואמים ל-Compose, כדי לעזור לשמור על ריכוזיות ולמנוע כפילות.
אנימציות
אין יותר מדי מה לומר כאן, חוץ מזה ש-Jetpack Compose תומך באנימציות, בדיוק כמו מסגרת View של אנדרואיד. אתה יכול להזיז, לשנות את הגודל ולסובב כאוות נפשך.
רשימות עצלות
רשימה עצלה היא בעצם הגרסה של Compose של RecyclerView. זה רק פורס פריטים לפי הצורך, חוסך ב-RAM ומגדיל את הביצועים. כמובן, בהיותו Compose, רשימות פשוטות משמעותית ליישום.
Layout של אילוץ
אחת התצוגות החזקות יותר באנדרואיד היא ConstraintLayout. זה מאפשר לך למקם, לגודל ולמשקל תצוגות ילדים ביחס זה לזה, תוך כדי הנפשות מסוימות קלות יותר. אם דאגתם לאבד את הפונקציונליות הזו ב-Compose, לא הייתם צריכים להיות, כי היא גם כאן.
רכיבי ממשק משתמש חומריים
קבוצה נוספת של תצוגות עוצמתיות היא ספריית החומרים של גוגל. רוב מה שיש כאן הם תצוגות ופריסות סטנדרטיות שתוכלו למצוא במסגרת ה-View המקורית. אבל הם מעובדים או עטופים כדי לספק פונקציונליות נוספת ולהקל על עיצוב הנושא, והם עשו את דרכם גם ל-Compose.
בדיקה
חלק חשוב בפיתוח אפליקציה הוא בדיקתה. עבור אפליקציה פשוטה, תוכל לעשות זאת באופן ידני על ידי התקנה ושימוש בה. עם זאת, פרויקטים מורכבים יותר יכולים להפיק תועלת רבה ממסגרות בדיקה אוטומטיות שעושות עבורך את רוב העבודה הקשה. Jetpack Compose תומך בבדיקות אוטומטיות כדי שתוכל להפוך את האפליקציה שלך ליציבה ככל האפשר.
תכונות נגישות
נגישות היא חלק חשוב בחברה שלנו. ללא תכונות נגישות בטכנולוגיה שלנו, הרבה אנשים פשוט היו מושבתים מהיתרונות שהטלפונים, הטלוויזיות שלנו וכל דבר אחר מספקים. Jetpack Compose עדיין ב-alpha, כך שתמיכת הנגישות אינה מלאה, אך גוגל שומרת זאת בחשבון במהלך הפיתוח, ותמיכה בסיסית כבר קיימת.
אנדרואיד סטודיו
עם זאת, לא כל התכונות של Jetpack Compose נמצאות ב-Jetpack Compose עצמה. ל-Android Studio ול-Kotlin יש גם תוספים והרחבות לחיבור קל יותר.
תוסף מהדר קוטלין
כמו ב-Kotlin JVM, יש תוסף מהדר ב-Android Studio כדי להמיר כראוי את פונקציות ה-Compose שלך לקוד שאנדרואיד באמת יכולה להבין ולעקוב אחריו.
תצוגה מקדימה אינטראקטיבית
בדיוק כמו עם פריסות ה-XML הסטנדרטיות שלך, Android Studio מגיע עם תצוגה מקדימה של פריסה עבור Jetpack Compose. למרות שזה לא ממש נוח כרגע כמו תצוגות ה-XML בהיבטים מסוימים - אתה צריך לבנות את הפרויקט שלך עבור את התצוגה המקדימה לעדכן, וליצור פונקציית תצוגה מקדימה ייעודית - היא אכן מגיעה עם יתרון בולט אחד: אינטראקטיבי תצוגות מקדימות.
תצוגה מקדימה אינטראקטיבית היא רק תצוגה מקדימה רגילה, אבל אינטראקטיבי. מטורף, אני יודע. עם זאת, המשמעות של זה היא שאתה יכול להקליד טקסט בתיבות טקסט, ללחוץ על כפתורים, ובכן, לקיים אינטראקציה עם ה-Composables שלך, אפילו בלי צורך לפרוס אותם.
פריסה ניתנת לחיבור יחיד
אם אתה באמת רוצה לפרוס (כלומר להתקין) את הפריסה שלך כדי לראות איך זה עובד במכשיר אמיתי, תכונה זו עשויה לעזור לך. עם פריסות XML רגילות, כדי לראות איך פריסה עובדת בעולם האמיתי, עליך לבנות ולהתקין את האפליקציה כולה. אם הפריסה שברצונך לבדוק אינה במסך הראשי, ייתכן שאתה עושה הרבה הקשה כדי להגיע אליה.
וכאן נכנסת לתמונה היכולת לפרוס רק קומפוזיבל בודד. במקום שתצטרך לבנות ולהתקין את האפליקציה שלך, ולאחר מכן לנווט לפריסה שאתה בודק, אתה יכול פשוט לפרוס את הפריסה. אנדרואיד סטודיו יפיק ותפתח פעילות עטיפה שרק מציגה את ה-Composable שפרסת. זה יכול להפוך את הבדיקה והעיצוב למהירים הרבה יותר, ואפילו יכול לעזור לבודד בעיות הקשורות לאינטראקציה עם אלמנטים.
השלמת קוד
אם ל-IDE שלך אין השלמת קוד, האם זה בכלל IDE? לא. לא, זה לא. אז, כמובן, Android Studio תומך בהשלמת קוד מלאה עבור Jetpack Compose.
למרות שזה לא כל מה ש-Jetpack Compose מביא לשולחן, התכונות וההתנהגות שלמעלה מראות עד כמה Google רוצה שהמסגרת הזו תהיה חזקה. ולמרות שהוא עדיין באלפא, זה צעד קדימה ממעמד ה"פיתוח" הקודם שלו. אם היית מתאפק באמת להשתמש ב- Jetpack Compose (כמו שהייתי), אולי זה הזמן לנסות שוב.