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

{ مرحبا بكم في موضوع جديد على موقع تعلم كوتلين بالعربية في موضوع اليوم سنبدأ مشوار الألف ميل بهذه الخطوة البسيطة و هي عمل أول برنامج لك و هو برنامج يطبع لك الشيء الذي تكتبته له , و في هذا الدرس لا يوجد شيء يجب ان تفهمه الىن كل ما عليك هو متابعة الخطوات التي أقوم بها فالهدف الرئيسي هو انك تعرف كيف تعمل برنامج و تجربه

// مستوى الدرس : مبتدأ و لا يعرف البرمجة //

أول برنامج بلغة كوتلين :
عمل مشروع كوتلين جديد :
الخطوة الأولى : إذهب إلى بيئة التشعيل //  بيئة التشغيل هي برنامج intellij IDEA  في هذا الدرس    // ثم File > New > Project

و الآن من النافذة اذهب إلى تبويب كوتلين و اختر كوتلين جفم Kotlin/JVM و اضغط على التالي Next


الخطوة الثانية : سيطلب منك كتابة المعلومات الأساسية للمشروع مثل :
1.     اسم المشروع
2.     مكان المشروع في الحاسوب

3.     إصدار JDK   و مكانه : في حال لم تكن النتيجة لديك مثلما لدي في الصورة اذهب للخطوة الثالثة

الخطوة الثالثة : في حال لم تكن تواجه المشكلة السابقة فانتقل للخطوة القادم :
1.     اضغط على زر New  
2.     ابحث في الحاسوب على مكان تثبيت JDK


بعد إكمال الخطوة بنجاح إضغط على finish
و في النهاية هذه واجهة بيئة التطوير التي سنعمل عليها



الخطوة الرابعة : عمل ملف كوتلين جديد

و من النافذة المنبثقة اختر اسم الملف الذي تريده و لاحظ ان المشروع ممكن يتحوي الكثير من الملفات و الوحدات

و الآن هذه هي الشاشة التي سنمضي كل وقتنا القادم معها و لاحظ في أعلى الصورة في اسم الملف يكون الإمتداد هو .kt



دعونا نكتب أول برنامج :
بكل بساطة قم بكتابة الأوامر التالية :
أذا كنت تستخدم برنامج IntelliJ IDEA  فكتابة اول حرف من كلمة main  ثم ضغط زر enter  من لوحة المفاتيح و سيتم كتابة هذه الجملة الطويلة تلقائي

و لا بأس اذا كنت تريد كتابة الجملة كاملة لكن تأكد أنك افرق بين الأحرف الصغيرة و الكبيرة
fun main(args: Array<String>) {
}                     
لا باس لن تفهم الأىن ماهو مكتوب  في الكود لكن لتعرف اين نحن هذا هو نقطة البدأ فالبرنامج لكي يشتغل يجب ان يعرف من اين يبدأ و في الكوتلين الدالة Main  هي نقطة البدأ لكل البرامج و أيضا نقطة أخرى مهمة كوتلين لديها شيء يسمى حساسية الاحرف فمثلا اذا حاولت كتابة كلمة array  بهذا الشكل فسيحدث معك مشكل و يقول لك يجب ان يكون الحرف الأول كبير و هو امر ينطبق على معضم أنواع البيانات و هايكل البيانات التي سنراها قريبا
الآن شغل البرنامج :
بالضغط بالزر الأيمن على محرر الكود و اختيار تشغيل RUN   أو من لوحة المفاتيح Ctrl + Shift + F10

طبعا تطبيقك فارغ و لا يقوم بأي شيء الان و من المفترض ان تضهر لك النتيجة التالية على الكونسول و الذي هو الشاشة السوداء و كل نتائج البرنامج ستكون عليها

الآن اكتب المر التالي داخل {} التي قمنا بعمها قبل قليل للدالة main  حيث سيصبح الكود بهذا الشكل و قم بكتابة النص الذي تريده و سيتم طباعة في الكونسول بعد ان تقوم بتنفيذ البرنامج
fun main(args: Array<String>) {
 
print("أكتب هنا أي شيء تريد")
}
خاتمة : الآن و بعد ان قمت بعمل أول برنامج حان الوقت لتبدأ بتعلم مفاهيم جديدة هذا الدرس كان مدخل ممل قليلا لانه بالتفصيل الممل و لكنه نقطة البدا فهو للشخص الجديد كليا لكي يستطيع  يطبق الأمثلة القادمة معنا  }


تحميل المتطلبات الأساسية للبدأ بالبرمجة بلغة كوتلين

{مرحبا يكم من جديد في موقع كوتلين بالعربية : في موضوع اليوم سنقوم بتحميل و تثبيت الأدوات اللازمة التي تحدثنا عنها في الموضوع السابق و التي تتمثل في حزمة التطوير JDK   الذي يحتوي أيضا لوازم تشغيل البرنامج بالإضافة إلى تحميل بيئة التطوير المناسبة و التي أقترح عليكم أن تكون IntellIJ IDEA  /

// مستوى الدرس : مبتدأ و لا يعرف البرمجة //
تحميل JDK :
التحميل من هنا
بعد الدخول لصفحة التحميل اضغط على زر التحميل مثلما ترى في الصورة :





بعدها سيتم توجيهك تلقائيا لرابط اخر نسخة من الجافا , قبل التحميل يجب ان توافق على الشروط ثم تختار النسخة المناسبة لنضام التشغيل لديك : مثلا في حالتي ساحمل ويندوز


تثبيت JDK  :
هذا الشرح مخصص لويندوز فقط :  التثبيت على ويندوز سهل و لا يتطلب شرح لان الخطوات نفسها في تثبيت أي برنامج

فقط تأكد انك لم تحدف أي مكون من هذه المكونات فنحن نحتاج إلى JRE  مثلما يحتاج اليه العميل و هذا لكي تعمل تطبيقتنا و نجربها



تحميل IntellIJ IDEA  :
التحميل من الموقع الرسمي من هنا و برنامج  IntellIJ IDEA  فيه نسختين واحدة مجانية و الأخرى مدفوعة و حاليا النسخة المجانية توفر كل احتياجاتنا و اسم النسخة المجانية هو Community ثم اضغط على تحميل Download

تثبيت IntelIJ IDEA  :
التثبيت على ويندوز أيضا لا يتطلب شرح و كل الخطوات واضحة . مرحبا بك الآن

يبقى أمامك الآن خطوة واحدة و هي انك تقوم بتعديل إعدادات intellij IDEA  حتى تكون مرتبطة بالإصدار الذي حملته من الجافا و هذا موضوع الدرس القادم


خاتمة :  في موضوع اليوم لا يوجد شيء صعب , كل ما عليك فعله هو تحميل و تثبيت البرامج المطلوبة و غير ذالك لا يوجد شيء مهم جدا }

الدليل الشامل للبدأ في لغة البرمجة كوتلين

{مرحبا بكم في أول موضوع لنا على موقع تعلم كوتلين بالعربية أول شيء يستفسر عنه الشخص الذي يسمع عن كوتلين هو ؟ ما هي كوتلين و بعدها ستأتي مجموعة من الأسئلة بعدها و هذا هو ما يدور حوله  موضوع اليوم حيث ساحاول الإجابة على اكبر عدد ممكن من الأسئلة العامة المتعلقة بكوتلين


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

{قبل ان نبدأ هذا الموقع هو عبارة عن موقع يقدم دروس و دورات بالإضافة لمقالات منوعة في لغة البرمجة كوتلين و برمجة تطبيقات أندرويد بشكل خاص}

ماهي كوتلين ؟
كوتلين هي لغة برمجة بدأت فكرتها سنة 2010  من طرف فريق برمجي في شركة جيت براين و التي تقدم الكثير من الأدوات و بيئات التطوير المتكاملة و من اشهرها inellij IDEA   وهدف هذه اللغة هو تعويض  لغة جافا و المصاعب الموجودة فيها . لم تكن لغة واسعة الصيت الى بعد اعلان شركة قوقل اعتبار لغة كوتلين لغة رسمية لتطوير تطبيقات اندرويد و كان هذا قبل اشهر فقط و تلك الفترة الصغيرة جدا أوصلت اللغة الى مراكز متقدمة مع اللغات البرمجية الأخرى
ماذا احتاج للبدأ في البرمجة بكوتلين ؟
كوتلين مثل الجاف و السكالا و لغات أخرى كلها تشترك في عنصر واحد و هو JVM  فهذه التطبيقات تحتاج الى توفر الجافا في المنصة  التي تريد تشغيل البرنامج عليها  و JVM هو اختصار Java virtual Machine  و يمكنك تصور هذا الشيء على أنه جاهز وهمي و البرنامج سيشتغل على هذا الجهاز . اما بالنسبة لك كمطور تحتاج شيء إضافي لكتابة البرامج بكوتلين و هو JDK  لكن بما أنك ستقوم بعمل البرامج و تجربتها فتحميل ال JDK  سيكون كافي جدا لانه يحتوي بدوره على JRE  و الذي هو الأخر يتضمن داخله JVM  و هذه الصور لتوضيح العلاقة بين العناصر الثلاثة
الملخص :
·      للبرمجة بلغة كوتلين تحتاج JDK
·      لتشغيل برنامجك على جهاز ما تحتاج JRE

العلاقة بين JVM , JRE , JDK


بيئة التطوير المناسبة :
و في الأخير تحتاج الى أداة لكتابة و تحرير الكود و ترجمته  و يوجد العديد من الأدوات المجانية و لا أريد أن اجعلك تتوه و اقترح عليك اختيار بيئة التطوير الرسمية من شركة جت براين و هو intellij IDEA  حيث توجد نسخة مجانية تسمى community edition  و هي التي سترافقنا في مشوار تعلم الكوتلين على هذه المدونة



لمذا كوتلين ؟ هل كوتلين أفضل من الجافا ؟


كما يعلم البعض منكم فان لغة جافا تحتل المراكز الأولى في أكثر لغات البرمجة انتشارا فهي متعددة الاستخدامات و لديها مجتمع برمجي كبير جدا لكن مع ذالك يعاني مبرمجوا الجافا من العديد من المشاكل مثل مشلكة Null safety  حيث دائما يجب علهيم التحقق من المدخل إذا كان يؤشر إلى قيمة محددة أو لا  . كوتلين ليست لغة برمجية بدون هدف و لم تصل الى ما وصلت اليه من العدم بل بسبب الخصائص التي توفرها و دعوني احصرها في بضع نقاط :
متوافقة مع الجافا : يمكننا أن نصف العلاقة أيضا بالتكامل و ليس التوافق فقط ,حيث ان كل مكتبات الجافا و اطر عملها يمكن استخدمها في كوتلين و العكس أيضا و تتوفر في اغلب بيئات التطوير الداعمة لكوتلين خاصية تحويل كود جافا الى كوتلين بكل سهولة و بدون أخطاء   و بالتالي هذه الميزة تعتبر بالنسبة لي هي راس مال لغة كوتلين . و هذه النقطة بالذات معناها أنه يمكنك الإستفادة من خبرتك في الجافا بشكل رهيب و اذا بحثت عن حل مشكلة ما و كان الحل بالجافا ففهم الأمر سيكون سهل عليك
تجربة برمجية أفضل : و طبعا كوتلين جائت بتركيب جمل(Syntax)  جديد لكنه ليس ببعيد عن لغات البرمجة من عائلة السي { لغة الجافا من عائلة السي أيضا } مع ذالك فهو محسن جدا و يعتبر الاسهل في القرائة مثلا حذف النقطة و الفاصلة التي تاتي في نهاية كل أمر برمجي هذا شيء بسيط لكنه سيجعل الكود اكثر قابلية للقرائة
و هذا هو أول برنامج بلغة كوتلين { برنامج مرحبا بالعالم }

حل مشاكل كانت موجودة في الجافا : عندما تسأل شخص خبير في كوتلين او في جافا و يعرف كوتلين اول شيء سيذكره لك هو حل مشكلة المتغير الفارغ او المتغير الذي لا يشير الى شيء و هو مشكلة كثيرة الحدوث في برامج الجافا , معضم لغات البرمجة الحديثة مثل سويفت حلت المشكلة بطريقة ما و في الكوتلين تقوم بااضفة علامة استفاهم أمام تعريف المتغير لكي تجبر المترجم {Compiler}  على قبول قيمة NULL  في المتغير
الدعم : كوتلين لم تاتي من العدم و هي ليست مشروع تخرج لطالب علوم الحاسب { ليس المقصد هو التقليل من مشروع الطالب او التخصص بل ان الطالب لا يوجد له دعم } بل هي من شركة  ذات سمعة في السوق و الأفضل من ذالك هو دعم جوجل لها  و بالتالي توقع منها الأفضل فقط خاصة بالنسبة لبرمجة تطبيقات أندرويد

الخصائص التقنية للغة كوتلين :

لغة برمجة كائنية التوجه : مثل معضم لغات البرمجة الحديثة فهي تدعم نموذج البرجمة الكائنية التوجه و كل المفاهيم المندرجة تحته مثل الكلاسات و الكائنات و الخصائص و الوراثة . لكن ستجد اختلافات بسيطة إذا كنت مبرمج جافا فمثلا لايوجد مفهوم الحقول بل يوجد خصائص لا تحتاج إلى Setters  و Getters  بل يمكنك الوصول إلى الخاصية و تغير القمية أو الحصول عليها لكن في هذه النقطة بالذات يوجد مفهوم جديد هو backing field هذا ليس المفهوم الوحيد الجديد لكنها كلها تصب في مصلحة المبرمج و تقلل عليه من كتابة الكود. و{ أيضا هي لغة برمجة إجرائية }
Extension functions
باستخدام هذه الميزة يمكنك إضافة دوال جديدة إلى كلاس بدون ان يكون لديك وصول إلى اكلود سورس الخاص به و في لغات برمجة أخرى يسمى هذا المفهوم بالكلاس هلبر Class Helper  
 Lambdas
يمكنك أيضا ان تسميها بالوضائف المجهولة anonymous methods  حيث تعمل دالة بدون اسم و يمكنك كتابة الأوامر فقط لما تحتاجها و هي تتغير حسب الأمر الذي تريد ان تقوم به فليست مثل تعريف دالة و استدعائها في اكثر من مكان . على العموم سنناقش هذا المفهوم جيدا مع الأمثلة
خصائص و ميزات أخرى سنتعلم عنها :
Nested classes , Data Classes , Enum classes , Sealed classes , Coroutines , Generics و Null safety

 بالطبع هذا المقال كان لوصف ماهي الكوتلين و ماهي الخصائص التي تعطيها لك لم اذكر كل الخصائص و لم أشرح باستخدام الأمثلة و هذا نتركه لموضوع قادم }