مقدمة إلى Kotlin لنظام Android
نشرت: 2018-06-28في عالم Android ، أنا متأكد من أنه لا يوجد أحد لم يسمع بجافا. لغة برمجة قوية يمكنها إنشاء تطبيقات تعمل على أي نظام تشغيل تقريبًا على أي جهاز. ومع ذلك ، على مر السنين ، تم تقديم عدد من لغات البرمجة الجديدة لتشغيلها أيضًا على جهاز Java الظاهري. إحدى هذه اللغات ، والتي تعد جزءًا مما تفعله Google ، لجعل تطوير تطبيقات Android "أفضل" هي لغة Kotlin. أعلنت Google عن دعمها الواسع لـ Kotlin في Google I / O 2017.
نحن نعلم بالتأكيد أن Kotlin مخصصة لمطوري التطبيقات وأنهم يحبونها! لكن لماذا يحبونها؟ ما الذي يجعل Google تؤكد مدى أهمية Kotlin لتطوير التطبيقات مرة أخرى في 2018؟ ما هو بالضبط؟
لغة برمجة مكتوبة بشكل ثابت تعمل على JVM ، Kotlin هي لغة برمجة وتطوير من JetBrains. Kotlin هي لغة حديثة ومعبرة وآمنة وقوية يمكن أن تكون قابلة للتشغيل المتبادل مع لغات Android الحالية لدينا. تتضمن بعض الميزات الأخرى ما يلي:
1. يتم دعم Kotlin بالكامل بواسطة Android Studio 3.0 والإصدارات الأحدث.
2. Kotlin هي لغة تعتمد على JVM تم إنشاؤها بواسطة "JetBrains" ، فريق عمل "Intellij".
3. Intellij هو قاعدة لأندرويد ستوديو.
4. Kotlin هي "لغة كائنية التوجه"
لماذا Kotlin؟
وزن خفيف :
مكتبة Kotlin صغيرة جدًا عند مقارنتها بالآخرين. هذا مهم لأن حدود طريقة Android التي تتضمن Proguard و Multidexing هي دائمًا مشكلة يجب حلها. ستضيف كل هذه الحلول تعقيدات يمكن أن تستهلك الوقت أثناء تصحيح الأخطاء. يضيف Kotlin أقل من 7000 طريقة.
قابل للتشغيل البيني بدرجة عالية:
يعمل Kotlin بشكل جيد مع مكتبات جافا. يريد فريق Kotlin مواصلة تطوير المشاريع الحالية المكتوبة بلغة جافا دون الحاجة إلى إعادة كتابة الكود بالكامل. لذا فإن Kotlin هي لغة قابلة للتشغيل المتبادل للغاية.
متكامل مع Android Studio:
تم دمج Kotlin مع Android Studio و Gradle. من السهل تثبيت Kotlin لأنه يتطلب مكونًا إضافيًا لـ IDE وآخر لـ Gradle. لن يكون من الصعب بدء مشروع Android باستخدام Kotlin.
لا مزيد من الاستثناءات NullPointer:
NullPointerException هو أحد الأسباب الأكثر شيوعًا لتعطل التطبيق في Android. لإصلاح هذا الاستثناء ولحماية التعليمات البرمجية الخاصة بك ، يعد استخدام التحقق الفارغ في كل مرة مهمة تستغرق وقتًا طويلاً. ولكن في Kotlin هذا استثناء حيث تم بالفعل دمج السلامة الفارغة.
أداء :
يعمل تطبيق Kotlin بأسرع ما يمكن أن يعمل على Java. مع دعم Kotlin للوظائف المضمنة ، باستخدام "lambda" ، تعمل التطبيقات بشكل أسرع.
في Android Studio 3.0 ، يمكنك اختيار إنشاء النشاط في Kotlin. أسهل طريقة لبدء استخدام kotlin هي تحويل Java إلى Kotlin تلقائيًا. يمكنك الكتابة بلغة Java ، ثم نسخ ولصق كود java إلى ملف kotlin وسوف يقترح التحويل.
طريقة أخرى سهلة لتحويل ملف Java إلى Kotlin:
قائمة استوديو Android >> الرمز >> تحويل ملف Java إلى ملف Kotlin
سيكون التحويل من هذا النوع:
جافا:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); } }
كوتلن:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) } }
بعد تكوين Kotlin ، قم بتحديث ملف build.gradle للتطبيق وتنفيذ ما يلي:


أخيرًا ، قم بمزامنة المشروع. يمكنك النقر فوق "مزامنة الآن". يعمل هذا تمامًا كما هو الحال في Java. يمكنك إنشاء إصدار من التطبيق وتوقيعه بشكل مشابه لما نفعله مع تطبيق Android في Java.
أخيرًا ، ينتج مترجم Kotlin "كود بايت" ، دون أي اختلاف على الإطلاق من حيث الشكل والمظهر للتطبيق في Android.
الآن ، دعنا نعرف المزيد عن بناء جملة Kotlin
- تحديد الحزمة:
package com.example Import java.util.* - تحديد المتغيرات:
Int: Val a: Int = 3 // Immediate assignment Val b = 2 // “Int” type is Inferred Val c : Int // Type Required when no initializer is provided C = 3 // Deferred assignment - سلسلة:
val firstName: String = "Raj" val lastName = "xyz" // still compile val dateOfBirth = "24th April, 1990" dateOfBirth = "28th July, 2000" // cannot be changed var car = "Toyota Matrix" car = "Mercedes-Maybach" // can be changed
الفرق بين "Val" و "Var"
Val: هي كلمة أساسية لا يمكن تغييرها أو أنها للقراءة فقط (لا يمكن تغيير قيمتها)
Var: هي كلمة أساسية يستدل المترجم على نوعها ، ولن ينجح تعيين قيمة أخرى من نوع مختلف. بمعنى آخر ، يمكن أن تتغير قيمة المتغير ، لكن لا يمكن تغيير نوعه.
var age = 12 age = "12 years old" // Error: type mismatch val carName: String carName = "BMW Car" // will compile val carName = "Toyota", streetName = "Church street" // this won't compile // this will compile var carName = "Audi" var streetName = "Church street"
أمثلة:
fun main(args: Array<String>) { val i = 10 println("i = $i") // prints "i = 10" } val accountBalance = 200 val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200
نشير إلى متغير باستخدام حرف $ أمام اسم المتغير. لاحظ أنه إذا كان المتغير غير صحيح أو غير موجود ، فلن يتم تجميع الكود. يمكنك استدعاء العمليات من سلسلة محرف مباشرة ؛ يجب عليك إضافة أقواس مجعدة $ {} لتغليفها.
val name = "Raj" val message = "The first letter in my name is ${name.first()}" // The first letter in my name is R
تحديد الوظائف:
fun sum(a: Int, b: Int): Int { return a + b } fun main(args: Array<String>) { print("sum of 2 and 8 is ") println(sum(2, 8)) } // sum of 2 and 8 is 10
دالة ذات نص تعبير ونوع إرجاع مستنتج:
fun sum(a: Int, b: Int) = a + b fun main(args: Array<String>) { println("sum of 18 and 24 is ${sum(18, 24)}") } // sum of 18 and 24 is 42
لحلقة:
fun main(args: Array<String>) { val items = listOf("apple", "banana", "Mango") for (item in items) { println(item) } } // apple banana Mango
باستخدام المجموعات:
Iterating over a collection: fun main(args: Array<String>) { val items = listOf("apple", "banana", "mango") for (item in items) { println(item) } } Checking if a collection contains an object using “in” operator: fun main(args: Array<String>) { val items = setOf("apple", "banana", "mango") when { "orange" in items -> println("juicy") "apple" in items -> println("apple is fine") } } // apple is fine
كيفية إنشاء مثيل للفئة:
val customer = Customer() // No New Keyword
المنشئون:
يمكن أن يكون للفصل الدراسي في Kotlin مُنشئ أساسي ومنشئ ثانوي واحد أو أكثر. المُنشئ الأساسي هو جزء من رأس الفئة: يتبع اسم الفئة

class Person constructor(firstName: String) { }
إعلان الخصائص:
فئة Kotlin لها خصائص. يمكن إعلانها على أنها قابلة للتغيير ، باستخدام الكلمة الأساسية "var" أو للقراءة فقط باستخدام الكلمة الأساسية "val".
على سبيل المثال:
class Address { var name: String = “” var street: String = “” var city: String = “” }
واجهه المستخدم :
تتشابه الواجهات في Kotlin إلى حد كبير مع Java 8. ويمكن أن تحتوي على إعلانات للطرق المجردة ، بالإضافة إلى تطبيقات الطريقة.
يتم تحديد الواجهة باستخدام واجهة الكلمات الرئيسية
interface MyInterface { fun bar() fun foo() { // optional body } }
تنفيذ واجهات:
class Child : MyInterface { override fun bar() { // body } }
يمكن للفئة أو الكائن تنفيذ واجهة واحدة أو أكثر.



