كتابة برنامجك الأول في Kotlin

في هذا الدرس العملي، ستكتب برنامجك الأول بلغة Kotlin باستخدام محرر تفاعلي يمكنك تشغيله من المتصفح.

يمكنك التفكير في البرنامج[LINK] على أنّه سلسلة من التعليمات التي يجب أن ينفّذها النظام لتنفيذ إجراء معيّن. على سبيل المثال، يمكنك كتابة برنامج ينشئ بطاقة عيد ميلاد. في هذا البرنامج، يمكنك كتابة تعليمات لطباعة نص تهنئة أو حساب عمر شخص ما من سنة ميلاده.

مثلما تستخدم اللغة البشرية للتواصل مع شخص آخر، تستخدم لغة برمجة للتواصل مع نظام تشغيل الكمبيوتر. لحسن الحظ، لغات البرمجة أقل تعقيدًا من اللغات البشرية وهي منطقية تمامًا.

تتم كتابة تطبيقات Android بلغة البرمجة Kotlin. ‫Kotlin هي لغة حديثة تم إنشاؤها لمساعدة المطوّرين في كتابة التعليمات البرمجية بكفاءة وبأقل عدد ممكن من الأخطاء.

سيكون من الصعب تعلُّم كيفية إنشاء تطبيق وتعلُّم أساسيات البرمجة في الوقت نفسه، لذا سنبدأ بتعليمك بعض أساسيات البرمجة قبل الانتقال إلى إنشاء التطبيقات. إنّ التعرّف على بعض أساسيات البرمجة أولاً ليس خطوة مهمة نحو إنشاء التطبيقات فحسب، بل سيجعل من السهل أيضًا إنشاء تطبيقك الأول في وقت لاحق من هذه الدورة التدريبية.

أدوات تعديل التعليمات البرمجية هي أدوات تساعدك في كتابة التعليمات البرمجية، تمامًا كما يساعدك برنامج معالجة النصوص (مثل "مستندات Google") في إنشاء مستندات نصية. في هذا الدرس التطبيقي، ستستخدم أداة تعديل تفاعلية للغة Kotlin داخل المتصفّح. وهذا يعني أنّه ليس عليك تثبيت أي برنامج لاتّخاذ خطوتك الأولى نحو تطوير التطبيقات.

المتطلبات الأساسية

  • استخدام المواقع الإلكترونية التفاعلية في متصفّح الويب

أهداف الدورة التعليمية

  • كيفية إنشاء برنامج بسيط بلغة Kotlin يعرض رسالة وتغييره وفهمه وتشغيله

ما ستنشئه

  • برنامج بلغة البرمجة Kotlin يعرض رسالة عند تشغيله

ما تحتاج إليه

  • جهاز كمبيوتر مزوّد بمتصفّح ويب حديث، مثل أحدث إصدار من Chrome
  • الوصول إلى الإنترنت على جهاز الكمبيوتر

في هذه المهمة، ستستخدم أداة تعديل على موقع إلكتروني لبدء البرمجة بلغة Kotlin على الفور.

استخدام أداة تعديل الرموز التفاعلية

بدلاً من تثبيت برنامج على جهاز الكمبيوتر، يمكنك استخدام أداة مستندة إلى الويب لإنشاء برنامجك الأول.

  1. في المتصفّح، افتح https://try.kotlinlang.org/. سيؤدي ذلك إلى فتح أداة برمجة مستندة إلى المتصفّح.
  2. من المفترض أن تظهر لك صفحة مشابهة للقطة الشاشة أدناه، مع قائمة بالملفات على اليمين ومحرّر على اليسار. قد يظهر لك أيضًا مربع أسود في أسفل يسار الصفحة يتضمّن معلومات عن سياسة ملفات تعريف الارتباط.

تحذير: إذا كنت لا توافق على سياسة ملفات تعريف الارتباط الخاصة بهذا الموقع الإلكتروني، يُرجى عدم المتابعة.

  1. انقر على X في أعلى يمين مربّع النافذة المنبثقة السوداء لإغلاقه.
  1. استخدِم لقطة الشاشة التي تتضمّن تعليقات توضيحية أدناه كمرجع للتعرّف على هذا المحرّر.

  • (1) علامات التبويب تعلُّم والمنتدى وتجربة على الإنترنت في أعلى الصفحة انقر على علامة التبويب تجربة على الإنترنت إذا لم تكن محددة من قبل.
  • (2) مستكشف الملفات في اللوحة اليمنى يحتوي كل مجلد في هذه القائمة على مثال صغير ومستقل لتعلم Kotlin.
  • (3) المحرّر في اللوحة اليمنى هو المكان الذي ستنجز فيه معظم عملك في كتابة الرموز.

يتضمّن محرر الرموز المستند إلى الويب هذا العديد من الميزات الأخرى، ولكن هذه هي الميزات التي تحتاج إلى معرفتها لبدء الاستخدام.

فتح نموذج الرمز

  1. في مستكشف الملفات، اختَر أمثلة > مرحبًا بالعالم! (Examples > Hello, world!) إذا لم يكن محدّدًا من قبل. > أبسط إصدار > SimplestVersion.kt (1 في لقطة الشاشة أدناه).
  2. في اسم الملف SimplestVersion.kt، لاحظ امتداد الملف .kt (راجع 1 في لقطة الشاشة أدناه). وكما أنّ الصور لها الامتداد .jpg أو .png، وملفات PDF لها الامتداد .pdf، يجب أن تتضمّن جميع ملفات Kotlin الامتداد .kt.
  3. لاحظ الرمز في أداة التعديل (2 في لقطة الشاشة أدناه). يتم تمييز بعض الرموز. هذا هو الرمز الذي ستعمل به.

هذا هو رمز البرنامج المميّز في المحرّر:

fun main(args: Array<String>) {
    println("Hello, world!")
}

تشغيل رمز البرنامج

لا يختلف تشغيل برنامج أنشأته كثيرًا عن تشغيل برنامج مثل معالج النصوص على جهاز الكمبيوتر. والفرق هو أنّه عند تشغيل برنامج لإنجاز مهمة أو لعب لعبة، يهمّك بشكل أساسي ما يمكن أن يفعله البرنامج لك، ولا تشغل بالك بالرمز الذي يجعله يعمل. عند البرمجة، يمكنك الاطّلاع على الرمز الفعلي الذي يتيح تنفيذ المهام والعمل عليه.

لنطّلع على وظيفة هذا البرنامج.

  1. في المحرّر، ابحث عن المثلث الأخضر في أعلى يسار الصفحة وانقر عليه لتشغيل البرنامج.

  1. إذا لزم الأمر، انتقِل للأسفل في الصفحة إلى أن يظهر لك أسفل المحرّر للاطّلاع على اللوحة في الأسفل (1 في لقطة الشاشة أدناه).

  1. انقر على علامة التبويب وحدة التحكّم. وحدة التحكّم هي مكان يمكن للبرامج طباعة ناتج نصي فيه.

  1. يظهر الإشعار Hello, world! في جزء وحدة التحكّم، كما هو موضّح في لقطة الشاشة أعلاه. أصبحت تعرف الآن وظيفة هذا البرنامج: فهو يعرض رسالة "Hello world" في نافذة وحدة التحكّم.
  2. لاحظ أنّ هناك رسالة Compilation complete successfully فوق Hello, world! المطبوعة. التحويل البرمجي هو عملية تحويل رموز برنامج Kotlin البرمجية إلى نموذج يمكن للنظام تنفيذه. إذا اكتملت عملية التجميع بنجاح، لن يكون هناك أي أخطاء في البرنامج تمنعه من التشغيل.

أجزاء من برنامج

بعد أن تعرّفت على وظيفة هذا البرنامج، ألقِ نظرة أولية على طريقة عمله.

  1. انظر إلى البرنامج في المحرِّر.
  2. لاحظ كيف يتضمّن هذا الرمز قسمَين مختلفَين.

أهم جزء في البرنامج:

/**
 * We declare a package-level function main which returns Unit and takes
 * an Array of strings as a parameter. Note that semicolons are optional.
 */

في مقتطف الرمز أعلاه، يمكنك الاطّلاع على نص داخل الرمزين التاليين: /* و*/.

وهذا يعني أنّها تعليق، أي رسالة تتضمّن معلومات للمطوّرين الآخرين. وعند تشغيل البرنامج، يتجاهل النظام هذا التعليق. في الوقت الحالي، يمكنك تجاهل هذا التعليق أيضًا. ستتعرّف على مزيد من المعلومات حول التعليقات في درس برمجة لاحق.

الجزء السفلي من البرنامج:

fun main(args: Array<String>) {
    println("Hello, world!")
}

تشكّل أسطر الرمز الثلاثة هذه البرنامج الفعلي الذي يتم تشغيله وطباعة الرسالة.

تغيير رمز Hello World

لنغيّر البرنامج ليفعل شيئًا مختلفًا قليلاً.

  1. غيِّر النص "Hello, world!" إلى "Happy Birthday!".
  2. نفِّذ برنامجك من خلال النقر على زر التشغيل الأخضر في أعلى اليسار.
  3. في وحدة التحكّم، من المفترض أن يظهر الآن Happy Birthday! مطبوعًا، كما هو موضّح في لقطة الشاشة أدناه.

كيف تعمل هذه الميزة؟

كيف يتم ذلك؟ يبدو أنّ هذا الرمز طويل جدًا لمجرد طباعة شيء ما.

حسنًا، إذا أردت أن يكتب صديقك "مرحبًا بالعالم" على ورقة، هناك الكثير من المعلومات الضمنية. إذا طلبت منه كتابة "مرحبًا بالعالم" على هذه الورقة، سيفترض معلومات لم تذكرها. على سبيل المثال، سيفترضون أنّك تريد منهم استخدام قلم، وأنّك تريد منهم كتابة الإجابة باستخدام أحرف. لا يفترض الكمبيوتر هذه الافتراضات، لذا عليك تقديم تعليمات دقيقة تتضمّن كل خطوة.

كما أنّ اللغة الإنجليزية لها بنية، كذلك لغة البرمجة. إذا سبق لك تعلُّم لغة أخرى، ستدرك صعوبة تعلُّم القواعد النحوية والتهجئة وربما أبجدية جديدة من الرموز والمفردات. تتضمّن عملية تعلّم البرمجة تحديات مشابهة، ولكن لحسن الحظ، هي أقل تعقيدًا وأكثر منطقية بكثير من تعلّم اللغة الإنجليزية مثلاً.

فهم أجزاء البرنامج

الآن، ألقِ نظرة على الرمز. يخدم كل جزء من هذا البرنامج غرضًا محدّدًا، وتحتاج إلى جميع الأجزاء لتتمكّن من تشغيل البرنامج. لنبدأ بالكلمة الأولى.

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. ومع ذلك، يمكنك وضع أي عدد تريده من أسطر التعليمات داخل دالة لإنجاز مهمة.

  1. انسخ السطر println("Happy Birthday!") والصِقه مرّتين إضافيتين أدناه. تأكَّد من أنّ الأسطر التي لصقتها تقع داخل الأقواس المعقوفة للدالة main.
  2. غيِّر أحد النصوص المطلوب طباعتها إلى اسم شخص، مثلاً "جهانسي".
  3. غيِّر النص الآخر الذي سيتم طباعته إلى "عمرك 25 عامًا".

يجب أن يبدو الرمز البرمجي على النحو الموضّح أدناه.

fun main(args: Array<String>) {
    println("Happy Birthday!")
    println("Jhansi")
    println("You are 25!")
}

ما الذي تتوقّع أن تفعله هذه التعليمات البرمجية عند تشغيلها؟

  1. شغِّل برنامجك لمعرفة ما يفعله.
  2. انتقِل إلى نافذة وحدة التحكّم، وستظهر لك 3 أسطر مطبوعة في نافذة وحدة التحكّم، كما هو موضّح في لقطة الشاشة أدناه.

أحسنت.

التعامل مع الأخطاء

من الطبيعي أن ترتكب أخطاءً أثناء البرمجة، وستقدّم لك معظم الأدوات ملاحظات لمساعدتك في إصلاح الأخطاء. في هذه الخطوة، أنشئ خطأً لمعرفة ما سيحدث.

  1. في برنامجك، أزِل علامات الاقتباس المحيطة بالنص Jhansi، ليصبح السطر كما هو موضّح أدناه.
println(Jhansi)
  1. تشغيل برنامجك من المفترض أن يظهر Jhansi باللون الأحمر، وعلامة تعجّب بجانب السطر 8 من الرمز، لتوضيح مكان الخطأ.

  1. انتقِل للأسفل للاطّلاع على وحدة التحكّم.
  2. انقر على علامة تبويب "عرض المشكلة" إذا لم تكن محدّدة.
  3. اطّلِع على علامة التبويب عرض المشاكل. تعرض هذه الرسالة رمز علامة التعجّب نفسه والكلمة Error. في ما يلي وصف للخطأ في التعليمات البرمجية.

  1. ابحث عن الأرقام (8, 12). تشير هذه الأرقام إلى السطر في الرمز الذي يحدث فيه الخطأ، وهو السطر 8، وموضع الحرف في هذا السطر الذي يبدأ فيه الخطأ، وهو 12.
  2. بعد ذلك، ستظهر لك الرسالة Unresolved reference: Jhansi. تخبرك هذه الرسالة بما يعتقد النظام أنّه الخطأ في الرمز. حتى إذا لم تكن تعرف معنى رسالة الخطأ، قد تتمكّن من معرفة المشكلة. في هذه الحالة، أنت تعرف أنّ التعليمات println() تطبع نصًا. لقد تعلّمت سابقًا أنّ النص يجب أن يكون بين علامتَي اقتباس. إذا لم يكن النص بين علامتَي اقتباس، يكون ذلك خطأً.
  3. يمكنك إعادة إضافة علامات الاقتباس.
  4. شغِّل برنامجك للتأكّد من أنّه يعمل مرة أخرى.

تهانينا، لقد شغّلت برنامج Kotlin الأول وعدّلته.

هذا هو الرمز الكامل للبرنامج الذي عملت عليه في هذا الدرس البرمجي.

  • https://try.kotlinlang.org/ هي أداة تفاعلية لتعديل الرموز على الويب، ويمكنك من خلالها التدرب على كتابة برامج بلغة Kotlin.
  • يجب أن تتضمّن جميع برامج Kotlin الدالة main(): fun main(args: Array<String>) {}
  • استخدِم الدالة println() لطباعة سطر من النص.
  • ضَع النص الذي تريد طباعته بين علامتَي اقتباس مزدوجتَين. على سبيل المثال "Hello".
  • كرِّر التعليمات println() لطباعة أسطر نصية متعددة.
  • يتم تمييز الأخطاء باللون الأحمر في البرنامج. تتضمّن علامة التبويب عرض المشاكل رسالة خطأ لمساعدتك في تحديد مكان الخطأ وسببه المحتمل.

هذا الدرس التطبيقي حول الترميز هو جزء من دورة "أساسيات Android في Kotlin".

يُرجى اتّباع الخطوات التالية:

  1. غيِّر تعليمات println() إلى print().
  2. تشغيل برنامجك الإجراء

ملاحظة: تعرض التعليمات print() النص فقط بدون إضافة فاصل أسطر في نهاية كل سلسلة.

  1. عدِّل النص ليكون كل جزء من الرسالة في سطر منفصل.

ملاحظة: استخدِم \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!")
}