Kotlin Bootcamp for Programmers 1: Get started

ה-codelab הזה הוא חלק מקורס Kotlin Bootcamp for Programmers. כדי להפיק את המרב מהקורס הזה, מומלץ לעבוד על ה-codelabs לפי הסדר. אם יש לכם ידע בנושא, יכול להיות שתוכלו לדלג על חלק מהקטעים. הקורס הזה מיועד למתכנתים שמכירים שפה מונחית-אובייקטים ורוצים ללמוד Kotlin.

מבוא

בקורס Kotlin Bootcamp for Programmers (סדנת Kotlin למתכנתים) לומדים את שפת התכנות Kotlin. ב-codelab הזה תלמדו על היתרונות של תכנות בשפת התכנות Kotlin, ותתקינו את סביבת הפיתוח המשולבת (IDE) כדי להתכונן לשיעור הראשון.

הקורס הזה מיועד למתכנתים שמכירים שפה מונחית-עצמים ורוצים ללמוד עוד על Kotlin. אם אתם מכירים את C#, חלק מהתכונות של Kotlin יהיו מוכרות לכם. אם אתם מכירים בעיקר את שפת התכנות Java, יכול להיות שתופתעו לגלות כמה הקוד שלכם יכול להיות תמציתי וקריא יותר.

מאז 2017, Google תומכת רשמית ב-Kotlin לפיתוח אפליקציות ל-Android. אפשר לקרוא את ההודעה בבלוג למפתחי Android. התוכן בקורס הזה הוא דרישה מוקדמת ללימודים בקורס יסודות Android Kotlin.

מה שכדאי לדעת

חשוב שתכירו את:

  • היסודות של שפת תכנות מודרנית, מונחית-עצמים ועם הקלדה סטטית, כמו Java או C#‎
  • איך לתכנת עם מחלקות, שיטות וטיפול בחריגים בשפה אחת לפחות
  • שימוש ב-IDE כמו IntelliJ IDEA,‏ Android Studio,‏ Eclipse או Visual Studio

מה תלמדו

  • איך עובדים עם מעטפת אינטראקטיבית של Kotlin REPL (Read-Eval-Print Loop)
  • התחביר הבסיסי של קוד Kotlin

הפעולות שתבצעו:

  • מתקינים את Java Development Kit‏ (JDK) ואת IntelliJ IDEA, ומכירים כמה תכונות של Kotlin.

‫Kotlin היא שפת תכנות חדשה ומודרנית שנוצרה על ידי מתכנתים בשביל מתכנתים. הוא מתמקד בבהירות, בתמציתיות ובבטיחות הקוד.

קוד חזק

יוצרי Kotlin קיבלו החלטות עיצוביות שונות לגבי השפה כדי לעזור למתכנתים ליצור קוד חזק. לדוגמה, חריגים של מצביע null בתוכנה גרמו להפסדים כספיים ולקריסות מחשב משמעותיות, והובילו לאינספור שעות של ניפוי באגים. לכן, ב-Kotlin יש הבחנה בין סוגי נתונים שניתן להקצות להם ערך null לבין סוגי נתונים שלא ניתן להקצות להם ערך null, וכך אפשר לזהות יותר שגיאות בזמן הקומפילציה. ‫Kotlin היא שפה עם הקלדה חזקה, והיא עושה הרבה כדי להסיק את הסוגים מהקוד שלכם. היא כוללת ביטויי למדה, קורוטינות ומאפיינים, שמאפשרים לכתוב פחות קוד עם פחות באגים.

פלטפורמה למבוגרים

שפת Kotlin קיימת מאז 2011, והיא הופצה כקוד פתוח בשנת 2012. הגרסה הראשונה של Kotlin יצאה בשנת 2016, ומאז 2017 היא שפה נתמכת רשמית לפיתוח אפליקציות ל-Android. הוא כלול ב-IntelliJ IDEA וגם ב-Android Studio מגרסה 3.0 ואילך.

קוד תמציתי וקריא

קוד שנכתב ב-Kotlin יכול להיות מאוד תמציתי, והשפה מתוכננת כך שהיא מבטלת קוד boilerplate כמו getters ו-setters. לדוגמה, נניח שיש לכם את קוד ה-Java הבא:

public class Aquarium {

   private int mTemperature;

   public Aquarium() { }

   public int getTemperature() {
       return mTemperature;
   }

   public void setTemperature(int mTemperature) {
       this.mTemperature = mTemperature;
   }

   @Override
   public String toString() {
       return "Aquarium{" +
               "mTemperature=" + mTemperature +
               '}';
   }
}

אפשר לכתוב אותו בצורה תמציתית ככה ב-Kotlin:

class Aquarium (var temperature: Int = 0)

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

יכולת פעולה הדדית עם Java

קוד Kotlin עובר קומפילציה כך שאפשר להשתמש בקוד Java ו-Kotlin זה לצד זה, ולהמשיך להשתמש בספריות Java המועדפות עליכם. אפשר להוסיף קוד Kotlin לתוכנית Java קיימת, או שאם רוצים להעביר את התוכנית באופן מלא, אפשר להשתמש בכלים שכלולים ב-IntelliJ IDEA וב-Android Studio כדי להעביר קוד Java קיים לקוד Kotlin.

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

כדי לראות איזו גרסה של JDK מותקנת אצלכם, אם בכלל, מקלידים javac -version בחלון טרמינל.

javac -version

אפשר לראות מהי הגרסה האחרונה של JDK בדף Java SE Downloads. אם יש לכם את הגרסה העדכנית, אפשר לדלג אל התקנת IntelliJ IDEA.

שלב 1: מסירים גרסאות ישנות יותר של JDK/JRE

לפני שמתקינים את הגרסה העדכנית ביותר, צריך להסיר את כל הגרסאות הישנות יותר של JDK:

  • ב-Windows, בוחרים באפשרות לוח הבקרה > הוספה/הסרה של תוכניות.
  • הוראות ל-Mac מופיעות במאמר הסרת JDK.

מידע נוסף על הסרת גרסאות ישנות של JRE זמין במאמרים איך מסירים את Java ב-Mac? או איך מסירים את Java במחשב Windows?

שלב 2: הורדת ה-JDK

אפשר להוריד את JDK בחינם כאן:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

  1. לוחצים על הלחצן הורדה מתחת ל-JDK עבור הגרסה העדכנית של Java SE.
  2. בוחרים באפשרות אישור הסכם הרישיון.
  3. בוחרים את ה-JDK למערכת ההפעלה.

שלב 3: התקנת JDK‏ (ל-Mac)

בחלון הורדות של הדפדפן או בדפדפן הקבצים, לוחצים לחיצה כפולה על קובץ .dmg כדי להפעיל את קובץ ההתקנה.

  1. מופיע חלון של Finder עם סמל של תיבה פתוחה ושם הקובץ .pkg.
  2. לוחצים לחיצה כפולה על סמל החבילה כדי להפעיל את אפליקציית ההתקנה, ופועלים לפי ההנחיות שמופיעות.
  3. יכול להיות שתצטרכו להזין את סיסמת האדמין כדי להמשיך.
  4. אחרי שההתקנה מסתיימת, אפשר למחוק את הקובץ .dmg כדי לחסוך מקום.

שלב 3: התקנה של JDK ו-JRE (ב-Windows)

  1. מריצים את קובץ ההתקנה שהורד (לדוגמה, jdk-12_windows-x64_bin.exe), שמתקין גם את JDK וגם את JRE. כברירת מחדל, ה-JDK מותקן בספרייה C:\Program Files\Java\jdk-12. ‫JRE מותקן ב-C:\Program Files\Java\jre1.8.0_x, כאשר x מציין את מספר הגרסה.
  2. מאשרים את ברירות המחדל ופועלים לפי ההוראות במסך כדי להתקין את JDK.

שלב 4: מוסיפים את ספריות ההתקנה של JDK ו-JRE לנתיב (Windows בלבד)

מערכת Windows מחפשת תוכניות הפעלה בספרייה הנוכחית ובספריות שמופיעות במשתנה הסביבה PATH (משתנה מערכת).

  1. פותחים את לוח הבקרה > מערכת > הגדרות מערכת מתקדמות > משתני סביבה.
  2. בקטע System variables, לוחצים על New ומוסיפים משתנה בשם JAVA_HOME עם ספריית ה-JRE כערך. לדוגמה, C:\Program Files\Java\jre1.8.0_x, כאשר x הוא מספר הגרסה.
  3. בקטע משתני מערכת, גוללים למטה, בוחרים באפשרות נתיב ולוחצים על עריכה.
  4. מוסיפים את ספריית bin של JRE לתחילת Path, ואחריה נקודה-פסיק: %JAVA_HOME%\bin;
  5. מוסיפים את הספרייה bin של JDK לסוף של Path, ולפניה נקודה ופסיק. לדוגמה, ;C:\Program Files\Java\jdk-12\bin.

שלב 5: מאמתים את ההתקנה של JDK

  1. כדי לוודא ש-JDK הותקן בצורה נכונה, מקלידים את הפקודות הבאות בחלון מסוף:
java -version
javac -version

שלב 1: הורדה והתקנה של IntelliJ IDEA

מורידים את IntelliJ IDEA בגרסה שמתאימה למערכת ההפעלה שלכם.

Windows:

  1. מריצים את הקובץ ideaIC.exe שהורדתם.
  2. פועלים לפי ההוראות באשף ההתקנה.

Mac:

  1. כדי לטעון את קובץ האימג' של macOS, לוחצים לחיצה כפולה על הקובץ ideaIC.dmg שהורדתם.
  2. מעתיקים את IntelliJ IDEA לתיקייה Applications.

Linux:

  1. הקובץ .tar.gz שהורד כולל את הערך Install-Linux-tar.txt.

מידע נוסף על התקנה והגדרה של IntelliJ IDEA זמין במאמר התקנה של IntelliJ IDEA.

שלב 2: אימות ההתקנה של IntelliJ IDEA

  1. מפעילים את IntelliJ IDEA.
  2. מתקינים את העדכונים ואת התוכן הנוסף שמופיעים בהנחיות.
  3. לוחצים על הגדרה > חיפוש עדכונים עד שלא יהיו יותר עדכונים זמינים.

יוצרים פרויקט Kotlin כדי ש-IntelliJ IDEA ידע שאתם עובדים ב-Kotlin.

  1. בחלון Welcome to IntelliJ IDEA (ברוכים הבאים ל-IntelliJ IDEA), לוחצים על Create New Project (יצירת פרויקט חדש).
  2. בחלונית פרויקט חדש, בוחרים באפשרות Kotlin בניווט הימני.
  3. בחלונית השמאלית, בוחרים באפשרות Kotlin/JVM ולוחצים על הבא.
  4. נותנים שם לפרויקט Hello Kotlin.
  5. לוחצים על סיום.

עכשיו אפשר לגשת אל REPL (Read-Eval-Print Loop), המעטפת האינטראקטיבית של Kotlin. פקודות שמקלידים ב-REPL מתורגמות ברגע שמקישים על Control+Enter (Command+Enter ב-Mac).

  1. בוחרים באפשרות כלים > Kotlin > Kotlin REPL כדי לפתוח את ה-REPL.
  1. מקלידים או מדביקים את הקוד שבהמשך ב-REPL.
fun printHello() {
    println("Hello World")
}

printHello()
  1. מקישים על Control+Enter (או על Command+Enter ב-Mac). אמור להופיע Hello World, כמו שמוצג בהמשך.
  1. כדאי לעיין בקוד Kotlin הזה. מילת המפתח fun מציינת פונקציה, ואחריה השם. כמו בשפות תכנות אחרות, הסוגריים העגולים משמשים לארגומנטים של הפונקציה, אם יש כאלה, והסוגריים המסולסלים מגדירים את הקוד של הפונקציה. אין סוג החזרה כי הפונקציה לא מחזירה כלום. חשוב גם לשים לב שאין נקודה ופסיק בסוף השורות.

מעולה! כתבתם את תוכנית Kotlin הראשונה שלכם.

  • ‫Kotlin דומה לשפות תכנות אחרות מונחות-עצמים.
  • כדי להשתמש ב-Kotlin, צריך להתקין את הגרסה האחרונה של JDK למערכת ההפעלה שלכם.
  • כדי לעבוד עם Kotlin, צריך להתקין את IntelliJ IDEA.
  • ב-IntelliJ IDEA, מפעילים את Kotlin REPL ‏ (Tools > Kotlin > Kotlin REPL) כדי להתאמן במעטפת אינטראקטיבית.
  • מזינים את הקוד ואז מקישים על Enter (או על Control+Enter ב-Mac) כדי להריץ אותו.Command+Enter
  • הנה "Hello World" ב-Kotlin:
fun printHello() {
    println ("Hello World")
}

printHello()

תיעוד של Kotlin

אם אתם רוצים לקבל מידע נוסף על נושא כלשהו בקורס הזה, או אם נתקעתם, https://kotlinlang.org הוא המקום הכי טוב להתחיל בו.

מדריכים ל-Kotlin

באתר https://try.kotlinlang.org יש הדרכות מפורטות שנקראות Kotlin Koans, מפרש מבוסס-אינטרנט וסט מלא של מסמכי עזר עם דוגמאות.

קורס של Udacity

כדי לצפות בקורס של Udacity בנושא הזה, אפשר לעבור אל Kotlin Bootcamp for Programmers.

IntelliJ IDEA

מסמכי התיעוד של IntelliJ IDEA זמינים באתר JetBrains.

בקטע הזה מפורטות אפשרויות למשימות ביתיות לתלמידים שעובדים על ה-Codelab הזה כחלק מקורס בהנחיית מדריך. המורה צריך:

  • אם צריך, מקצים שיעורי בית.
  • להסביר לתלמידים איך להגיש מטלות.
  • בודקים את שיעורי הבית.

אנשי ההוראה יכולים להשתמש בהצעות האלה כמה שרוצים, ומומלץ להם להקצות כל שיעורי בית אחרים שהם חושבים שמתאימים.

אם אתם עובדים על ה-codelab הזה לבד, אתם יכולים להשתמש במשימות האלה כדי לבדוק את הידע שלכם.

עונים על השאלות הבאות

שאלה 1

איזו מהאפשרויות הבאות היא לא יתרון של השימוש בשפת Kotlin?

‫▢ Kotlin מבחינה בין סוגי נתונים שניתן להקצות להם ערך null לבין סוגי נתונים שלא ניתן להקצות להם ערך null.

‫▢ Kotlin היא שפה נתמכת ליצירת אפליקציות ל-Android.

‫▢ Kotlin מתוכננת כך שאפשר לכתוב פחות קוד עם פחות באגים.

‫▢ הקוד שלכם עובר קומפילציה מהר יותר ב-Kotlin.

שאלה 2

איך מתחילים את Kotlin REPL?

‫▢ מקלידים repl בשורת הפקודה.

‫▢ יוצרים פרויקט Kotlin ב-IntelliJ IDEA, ואז בוחרים באפשרות Run > Kotlin REPL.

‫▢ פותחים את IntelliJ IDEA ובוחרים באפשרות File > Kotlin REPL (קובץ > Kotlin REPL).

‫▢ יוצרים פרויקט Kotlin ב-IntelliJ IDEA, ואז בוחרים באפשרות Tools > Kotlin > Kotlin REPL.

שאלה 3

איזו מההצהרות הבאות לא נכונה לגבי קוד Kotlin ו-Java?

‫▢ קוד Kotlin וקוד Java יכולים לפעול זה לצד זה.

‫▢ אפשר להוסיף קוד Kotlin לתוכנית Java קיימת.

‫▢ אפשר להעביר קוד Java קיים ל-Kotlin.

‫▢ קוד Kotlin יפעל מהר יותר מקוד Java.

עוברים לשיעור הבא: 2. ‫Kotlin Basics

סקירה כללית של הקורס, כולל קישורים ל-Codelabs אחרים, זמינה במאמר "Kotlin Bootcamp for Programmers: Welcome to the course".