ב-codelab הזה תכתבו את התוכנית הראשונה שלכם בשפת Kotlin באמצעות עורך אינטראקטיבי שניתן להפעלה מהדפדפן.
אפשר לחשוב על תוכנית[LINK] כסדרה של הוראות למערכת לביצוע פעולה מסוימת. לדוגמה, אפשר לכתוב תוכנית שיוצרת כרטיס ברכה ליום הולדת. בתוכנית הזו, אפשר לכתוב הוראה להדפסת טקסט של ברכה או לחשב את הגיל של מישהו לפי שנת הלידה שלו.
כשם שאתם משתמשים בשפה אנושית כדי לתקשר עם אדם אחר, אתם משתמשים בשפת תכנות כדי לתקשר עם מערכת ההפעלה של המחשב. למזלנו, שפות תכנות פשוטות יותר משפות אנושיות והן די הגיוניות.
אפליקציות ל-Android נכתבות בשפת התכנות Kotlin. Kotlin היא שפה מודרנית שנוצרה כדי לעזור למפתחים לכתוב קוד ביעילות ועם כמה שפחות שגיאות.
ליצור אפליקציה וללמוד את יסודות התכנות בו-זמנית זה מאתגר, ולכן נתחיל עם קצת תכנות לפני שנעבור ליצירת אפליקציה. חשוב להכיר קודם כמה מושגי יסוד בתכנות, לא רק כדי ליצור אפליקציות, אלא גם כדי שיהיה לכם קל יותר ליצור את האפליקציה הראשונה שלכם בהמשך הקורס.
עורכי קוד הם כלים שעוזרים לכתוב קוד, כמו שמעבד תמלילים (כמו Google Docs) עוזר ליצור מסמכי טקסט. ב-codelab הזה משתמשים בכלי עריכה אינטראקטיבי של Kotlin בדפדפן. המשמעות היא שלא צריך להתקין תוכנה כדי להתחיל לפתח אפליקציות.
דרישות מוקדמות
- שימוש באתרים אינטראקטיביים בדפדפן האינטרנט.
מה תלמדו
- איך ליצור, לשנות, להבין ולהריץ תוכנית מינימלית ב-Kotlin שמציגה הודעה.
מה תפַתחו
- תוכנית בשפת התכנות Kotlin שמציגה הודעה כשמריצים אותה.
מה צריך
- מחשב עם דפדפן אינטרנט מודרני, כמו הגרסה העדכנית של Chrome.
- גישה לאינטרנט במחשב.
במשימה הזו תשתמשו בכלי עריכה באתר כדי להתחיל לתכנת בשפת Kotlin באופן מיידי.
שימוש בעורך קוד אינטראקטיבי
במקום להתקין תוכנה במחשב, אפשר להשתמש בכלי מבוסס-אינטרנט כדי ליצור את התוכנית הראשונה.
- בדפדפן, פותחים את הכתובת https://try.kotlinlang.org/. ייפתח כלי תכנות מבוסס-דפדפן.
- אמור להופיע דף שדומה לצילום המסך שלמטה, עם רשימת קבצים בצד ימין ועורך בצד שמאל. יכול להיות שתוצג גם תיבה שחורה בפינה השמאלית התחתונה עם מידע על מדיניות השימוש בקובצי Cookie.
אזהרה: אם אתם לא מסכימים למדיניות בנושא קובצי Cookie של האתר הזה, אל תמשיכו.
- כדי לסגור את התיבה הקופצת השחורה, לוחצים על הסמל X בפינה הימנית העליונה.
- כדי להבין איך הכלי הזה עובד, אפשר להיעזר בצילום המסך עם ההערות שבהמשך.
- (1) הכרטיסיות Learn (למידה), Community (קהילה) ו-Try online (התנסות אונליין) בחלק העליון. לוחצים על הכרטיסייה Try online (ניסיון באינטרנט), אם היא לא מסומנת.
- (2) סייר הקבצים בחלונית הימנית ביותר. כל תיקייה ברשימה הזו מכילה דוגמה קטנה ועצמאית ללימוד Kotlin.
- (3) העורך בחלונית השמאלית הוא המקום שבו תבצעו את רוב העבודה בכתיבת קוד.
לעורך הקוד הזה, שמבוסס על אינטרנט, יש עוד הרבה תכונות, אבל אלה התכונות שצריך להכיר כדי להתחיל לעבוד איתו.
פתיחת הקוד לדוגמה
- בסייר הקבצים, אם האפשרות Examples > Hello, world! (דוגמאות > שלום עולם!) לא מסומנת, בוחרים בה. > הגרסה הכי פשוטה > SimplestVersion.kt (1 בצילום המסך שלמטה).
- בשם הקובץ SimplestVersion.kt, שימו לב לסיומת הקובץ .kt (ראו 1 בצילום המסך שלמטה). בדומה לתמונות עם הסיומת
.jpg
או.png
, ולקובצי PDF עם הסיומת.pdf
, כל קובצי Kotlin חייבים לכלול את הסיומת.kt
. - שימו לב לקוד בעורך (2 בצילום המסך שלמטה). חלק מהקוד מודגש. זה הקוד שתעבדו איתו.
זהו קוד התוכנית המודגש בכלי העריכה:
fun main(args: Array<String>) {
println("Hello, world!")
}
הרצת קוד התוכנית
הפעלת תוכנית שיצרתם לא שונה בהרבה מהפעלת תוכנית כמו מעבד תמלילים במחשב. ההבדל הוא שכאשר מריצים תוכנה כדי לבצע משימה או לשחק במשחק, מה שחשוב הוא מה התוכנה יכולה לעשות בשבילכם, ולא הקוד שגורם לה לפעול. כשמבצעים תכנות, אפשר לראות את הקוד בפועל ולעבוד איתו כדי ליצור את הקסם.
בואו נראה מה התוכנית הזו עושה!
- בעורך, בפינה השמאלית העליונה, מאתרים את המשולש הירוק
ולוחצים עליו כדי להריץ את התוכנית.
- אם צריך, גוללים למטה בדף עד שרואים את החלק התחתון של הכלי לעריכה, כדי לראות את החלונית בתחתית (1 בצילום המסך שלמטה).
- לוחצים על הכרטיסייה Console. המסוף הוא מקום שבו תוכניות יכולות להדפיס פלט טקסט.
- ההודעה
Hello, world!
מודפסת בחלונית Console, כמו בצילום המסך שלמעלה. עכשיו אתם יודעים מה התוכנית הזו עושה: היא מדפיסה או מוציאה הודעה של 'שלום עולם' בחלון המסוף. - שימו לב שמעל
Hello, world!
המודפס מופיעה ההודעהCompilation complete successfully
. הידור הוא תהליך שמתרגם את קוד התוכנית ב-Kotlin לפורמט שהמערכת יכולה להריץ. אם הקומפילציה מסתיימת בהצלחה, אין שגיאות בתוכנית שימנעו את ההרצה שלה.
חלקי התוכנית
עכשיו, אחרי שראיתם מה התוכנית הזו עושה, הגיע הזמן לראות איך היא עושה את זה.
- בודקים את התוכנית בעורך.
- שימו לב שיש בקוד הזה שני חלקים נפרדים.
החלק העליון של התוכנית:
/**
* We declare a package-level function main which returns Unit and takes
* an Array of strings as a parameter. Note that semicolons are optional.
*/
בקטע הקוד שלמעלה, אפשר לראות טקסט בתוך הסמלים האלה: /*
ו-*/.
המשמעות היא שמדובר בהערה, כלומר בהודעה עם מידע למפתחים אחרים. כשמריצים את התוכנית, המערכת מתעלמת מההערה הזו. בינתיים, אפשר להתעלם גם מהתגובה הזו. ב-codelab מאוחר יותר נסביר על תגובות.
החלק התחתון של התוכנית:
fun main(args: Array<String>) {
println("Hello, world!")
}
שלוש שורות הקוד האלה הן התוכנית בפועל שפועלת ומדפיסה את ההודעה.
שינוי הקוד Hello World
נשנה את התוכנית כדי שהיא תעשה משהו קצת שונה.
- משנים את הטקסט
"Hello, world!"
לטקסט"Happy Birthday!"
. - מריצים את התוכנית בלחיצה על לחצן ההפעלה הירוק
בפינה השמאלית העליונה.
- במסוף, אמור להופיע עכשיו
Happy Birthday!
, כמו שמוצג בצילום המסך שלמטה.
איך זה עובד?
איך עושים את זה? נראה שזה הרבה קוד רק כדי להדפיס משהו!
אם רוצים שחבר יכתוב על דף נייר "Hello, world!", יש הרבה מידע מרומז. אם תגידו להם רק "תכתוב 'שלום עולם!' על פיסת הנייר הזו", הם יניחו הנחות לגבי המידע שהשארתם בחוץ. לדוגמה, הם יניחו שהם צריכים להשתמש בעט, ושהם צריכים לכתוב את זה באמצעות אותיות! המחשב לא מניח הנחות כאלה, ולכן צריך לתת לו הוראות מדויקות שכוללות כל שלב.
לשפה האנגלית יש מבנה, וכך גם לשפת תכנות. אם אי פעם למדתם שפה אחרת, אתם יודעים כמה מאתגר ללמוד את הדקדוק, האיות, אולי אלפבית חדש של סמלים ואת אוצר המילים. יש אתגרים דומים בלימוד תכנות, אבל למרבה המזל, הוא פחות מורכב והרבה יותר הגיוני מאשר לימוד אנגלית, למשל.
הסבר על חלקי התוכנית
עכשיו נסתכל על הקוד. כל חלק בתוכנית הזו מיועד למטרה ספציפית, וצריך את כל החלקים כדי להפעיל את התוכנית. נתחיל עם המילה הראשונה.
fun
-
fun
היא מילה בשפת התכנות Kotlin. fun
מייצג פונקציה. פונקציה היא חלק בתוכנית שמבצע משימה ספציפית.
fun main
-
main
הוא השם של הפונקציה. לפונקציות יש שמות, כך שאפשר להבחין ביניהן. הפונקציה הזו נקראתmain
, כי היא הפונקציה הראשונה או העיקרית שמופעלת כשמריצים את התוכנית. לכל תוכנית Kotlin נדרשת פונקציה בשםmain
.
fun main()
- אחרי שם הפונקציה תמיד מופיעים
()
שני סוגריים.
fun main(args: Array<String>)
- בתוך הסוגריים אפשר להזין מידע לשימוש הפונקציה. הקלט הזה לפונקציה נקרא 'ארגומנטים' או
args
בקיצור. בהמשך נסביר על ארגומנטים. חשוב לדעת שהארגומנט הזה תמיד מופיע בפונקציהmain
.
fun main(args: Array<String>) {}
- שימו לב לזוג הסוגריים המסולסלים אחרי הארגומנטים. בתוך פונקציה יש קוד שמבצע משימה. הסוגריים המסולסלים האלה מקיפים את שורות הקוד האלה.
בודקים את שורת הקוד בין הסוגריים המסולסלים:
println("Happy Birthday!")
שורת הקוד הזו מדפיסה את הטקסט Happy Birthday!
.
-
println
אומר למערכת להדפיס שורת טקסט. - בתוך הסוגריים מזינים את הטקסט שרוצים להדפיס.
- שימו לב שהטקסט שמיועד להדפסה מוקף במירכאות. ההוראה הזו אומרת למערכת להדפיס את כל מה שמופיע בתוך המירכאות בדיוק כמו שהוא.
כדי להדפיס את הטקסט בפועל, כל ההוראה println
צריכה להיות בתוך הפונקציה main
.
אז הנה, התוכנית הכי קטנה ב-Kotlin.
fun main(args: Array<String>) {
println("Happy Birthday!")
}
הדפסה של יותר מהודעה אחת
מעולה! הדפסת שורה אחת של טקסט באמצעות println() function
. עם זאת, אפשר להוסיף לפונקציה כמה שורות של הוראות שרוצים או שצריך כדי להשלים משימה.
- מעתיקים את השורה
println("Happy Birthday!")
ומדביקים אותה עוד פעמיים מתחתיה. מוודאים שהשורות שהדבקתם נמצאות בתוך הסוגריים המסולסלים של הפונקציהmain
. - משנים את אחד הטקסטים להדפסה לשם של מישהו, למשל'ג'אנסי'.
- משנים את הטקסט השני שיוצג בהדפסה ל-"You are 25!".
הקוד שלכם צריך להיראות כמו הקוד שבהמשך.
fun main(args: Array<String>) {
println("Happy Birthday!")
println("Jhansi")
println("You are 25!")
}
מה לדעתך הקוד הזה יעשה כשהוא יפעל?
- מריצים את התוכנית כדי לראות מה היא עושה.
- עוברים לחלון Console, וצריכות להופיע בו 3 שורות, כמו בצילום המסך שלמטה.
כל הכבוד!
טיפול בשגיאות
זה נורמלי לעשות טעויות בזמן תכנות, ורוב הכלים יספקו לכם משוב שיעזור לכם לתקן את הטעויות. בשלב הזה, יוצרים טעות כדי לראות מה קורה.
- בתוכנית, מסירים את המירכאות סביב הטקסט
Jhansi
, כך שהשורה תיראה כמו בדוגמה שלמטה.
println(Jhansi)
- מפעילים את התוכנית. המחרוזת
Jhansi
מודפסת באדום, וסימן קריאה מופיע לצד שורה 8 בקוד, כדי להראות איפה יש שגיאה.
- גוללים למטה כדי לראות את המסוף.
- בוחרים את הכרטיסייה 'תצוגת בעיות', אם היא לא נבחרה.
- עוברים לכרטיסייה תצוגת בעיות. מוצגת הודעה עם אותו סמל של סימן קריאה והמילה
Error
. בהמשך מופיע תיאור של השגיאה בקוד.
- מחפשים את המספרים
(8, 12).
המספרים האלה מציינים את השורה בקוד שבה השגיאה מתרחשת, שורה 8, ואת המיקום של האות בשורה הזו שבה השגיאה מתחילה, שהוא12
. - לאחר מכן, תופיע הודעה:
Unresolved reference: Jhansi
. בהודעה הזו מוסבר מה המערכת חושבת שהשגיאה בקוד. גם אם אתם לא יודעים מה המשמעות של הודעת השגיאה, יכול להיות שתצליחו להבין מה הבעיה. במקרה כזה, אתם יודעים שההוראהprintln()
מדפיסה טקסט. כמו שלמדנו קודם, הטקסט צריך להיות בין מרכאות. אם הטקסט לא מופיע בתוך מרכאות, זו שגיאה. - אפשר להוסיף את המירכאות בחזרה.
- מריצים את התוכנית כדי לוודא שהיא פועלת שוב.
מזל טוב, הפעלת ושינית את תוכנית Kotlin הראשונה שלך!
זה הקוד המלא של התוכנית שעבדתם עליה בסדנת התכנות הזו.
- https://try.kotlinlang.org/ הוא עורך קוד אינטראקטיבי באינטרנט שבו אפשר להתאמן בכתיבת תוכניות ב-Kotlin.
- בכל תוכניות Kotlin צריכה להיות פונקציה
main()
:fun main(args: Array<String>) {}
- משתמשים בפונקציה
println()
כדי להדפיס שורת טקסט. - מציבים את הטקסט שרוצים להדפיס בין מירכאות כפולות. לדוגמה
"Hello"
. - חוזרים על ההוראה
println()
כדי להדפיס כמה שורות טקסט. - השגיאות מסומנות באדום בתוכנית. בכרטיסייה תצוגת בעיות מופיעה הודעת שגיאה שעוזרת להבין איפה השגיאה ומה יכולה להיות הסיבה לה.
ה-codelab הזה הוא חלק מהקורס Android Basics in Kotlin (יסודות Android ב-Kotlin).
מבצעים את הפעולות הבאות:
- משנים את ההוראות של
println()
ל-print()
. - מפעילים את התוכנית. מה קורה
הערה: הפקודה print()
פשוט מדפיסה את הטקסט בלי להוסיף מעבר שורה בסוף כל מחרוזת.
- מתקנים את הטקסט כך שכל חלק מההודעה יהיה בשורה נפרדת.
הערה: כדי להוסיף מעבר שורה, משתמשים ב-\n
בתוך הטקסט. לדוגמה, "line \n break"
. הוספת מעבר שורה משנה את הפלט, כפי שמוצג בהמשך.
הערה: אפשר להדפיס שורה ריקה בלי להזין טקסט: println("")
.
קוד:
fun main(args: Array<String>) {
println("no line break")
println("")
println("with line \n break")
}
פלט:
בדיקת העבודה:
הנה פתרון אפשרי:
fun main(args: Array<String>) {
print("Happy Birthday!\n")
print("Jhansi\n")
print("You are 25!")
}