الفرق بين المراجعتين لصفحة: «Kotlin/android overview»
< Kotlin
ط تعديل الروابط |
لا ملخص تعديل |
||
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin للتطوير في بيئة Android}}</noinclude> | <noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin للتطوير في بيئة Android}}</noinclude> | ||
تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة. | |||
== ميزات استخدام لغة Kotlin للتطوير في بيئة Android == | == ميزات استخدام لغة Kotlin للتطوير في بيئة Android == | ||
* ''' | * '''التوافقيّة (Compitability):''' تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android. | ||
* ''' | * ا'''لأداء (Performance):''' تعمل التطبيقات المكتوبة بلغة Kotlin بسرعةٍ مماثلةٍ للتطبيقات المكتوبة بلغة Java وذلك بفضل البنية المتماثلة بينهما (وهي بنية bytecode)، ويُضاف لذلك أنّ لغة Kotlin تدعم [[Kotlin/inline functions|الدوال المباشرة (inline functions)]] وبالتالي فإن شيفرات lambdas ستعمل غالبًا بسرعةٍ أكبر مقارنةً مع مثيلاتها في لغة Java. | ||
* ''' | * '''توافقيّة التبديل (Interoperability):''' تتوافق لغة Kotlin كليًّا مع لغة Java وذلك بدعمها لكافة مكتبات Android المتوفرة في تطبيق Kotlin، متضمّنةً عمليات معالجة التوصيفات (annotation processing) وبهذا فهي تدعم كلًا من ربط البيانات (databinding) و بيئة Dagger. | ||
* '''حجم التخزين (Footprint):''' تتميّز لغة Kotlin بصغر حجم تخزين المكتبات أثناء التشغيل (runtime library) والذي يُمكن | * '''حجم التخزين (Footprint):''' تتميّز لغة Kotlin بصغر حجم تخزين المكتبات أثناء التشغيل (runtime library)، والذي يُمكن تخفيضه أكثر بالاعتماد على ProGuard، وتُضيف لغة Kotlin في التطبيقات الحقيقية عدّة مئاتٍ فقط من التوابع (methods) وبحجمٍ أقلّ من 100K بملف التطبيق (ذي اللاحقة (.apk. | ||
* '''زمن ترجمة البرامج (Compilation Time):''' تدعم لغة Kotlin الترجمة التزايديّة الفعّالة (efficient incremental compilation)، | * '''زمن ترجمة البرامج (Compilation Time):''' تدعم لغة Kotlin الترجمة التزايديّة الفعّالة (efficient incremental compilation)، أي تُحضَّر بعض العمليات الاستباقيّة الإضافيّة للبناء النظيف (clean build)، وبهذا تكون سرعة البناء التزايديّ (incremental build) بسرعةٍ مماثلة (أو ربما أكثر سرعةً) ممّا هي عليه في لغة Java. | ||
* '''المُعدّل السريع للتعلّم (Learning Curve)''' | * '''المُعدّل السريع للتعلّم (Learning Curve):''' سيكون البدء بلغة Kotlin أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعد المحول الآلي (convertor) في الخطوات الأولى والذي يُستخدَم للتحويل من لغة Java إلى Kotlin والموجود في إضافات Kotlin (Kotlin Plugins)، ومن المفيد كذلك الاطلاع على عددٍ من [http://try.kotlinlang.org/koans التمارين التفاعليّة]. | ||
== بعض الأمثلة لاستخدام لغة Kotlin في بيئة Android == | == بعض الأمثلة لاستخدام لغة Kotlin في بيئة Android == | ||
اعتمدت بعض الشركات الكبرى على لغة Kotlin في بناء | اعتمدت بعض الشركات الكبرى على لغة Kotlin في بناء تطبيقاتها، ومما جاء في تجاربهم: | ||
* [https:// | * طرحت شركة [https://pinterest.com Pinterest] لغة Kotlin في تطبيقها الشهير المُستخدَم من قبل 150 مليون شخص كل شهر. | ||
* [https:// | * كُتب تطبيق [https://basecamp.com/ Basecamp] بلغة Kotlin كليَّا، وقد أفادت الشركة بالفرق الكبير لدى مبرمجيها من ناحية ارتياحهم والتحسُّن الكبير بالجودة والسرعة أثناء العمل. | ||
* لدى [https:// | * لدى تحويل تطبيق [https://www.getkeepsafe.com/ Keepsafe's App Lock] بأكمله إلى لغة البرمجة Kotlin انخفض عدد الأسطر في الشيفرة بنسبة 30% وعدد التوابع (methods) المستخدمة بنسبة 10%. | ||
== أدوات التطوير في Android == | == أدوات التطوير في Android == | ||
تتيح لغة Kotlin عددًا من الأدوات التطويريّة في بيئة Android مما يميّزها عن لغات البرمجة الأخرى، ومن هذه الأدوات: | تتيح لغة Kotlin عددًا من الأدوات التطويريّة في بيئة Android مما يميّزها عن لغات البرمجة الأخرى، ومن هذه الأدوات: | ||
* إضافات Android (Android Extensions) وهي | * إضافات Android (Android Extensions): وهي إضافات تُضاف للمترجم (compiler) بهدف التخلص من استدعاءات <code>findViewById()</code> في الشيفرة والاستعاضة عنها بخاصيّات تركيبيّة مُولَّدة من قِبل المترجِم (synthetic compiler-generated properties). | ||
* [http://github.com/kotlin/anko مكتبة Anko] وهي مزوَّدةٌ بمجموعةٍ من المغلِّفات (wrappers) المتوافقة مع لغة Kotlin بما يتعلق بواجهات Android (Android APIs) | * [http://github.com/kotlin/anko مكتبة Anko] وهي مزوَّدةٌ بمجموعةٍ من المغلِّفات (wrappers) المتوافقة مع لغة Kotlin بما يتعلق بواجهات Android (Android APIs)، بالإضافة إلى ميّزة DSL (أي Domain-Specific Language) والتي تتيح إمكانية الاستغناء عن ملفات التخطيط (layout) ذات اللاحقة .xml واستخدام شيفرة Kotlin بدلًا منها. | ||
== الخطوات التالية == | == الخطوات التالية == | ||
* حمّل | * حمّل [https://developer.android.com/studio/index.html برنامج Android Studio 3.0] وثبّته فهو يدعم لغة Kotlin. | ||
* لمزيد من المعلومات التفصيليّة حول لغة Kotlin يمكن الاطِّلاع على [[Kotlin|التوثيق الخاصّ بها]]. | |||
* لمزيد من المعلومات التفصيليّة يمكن | * اطَّلِع على [https://developer.android.com/samples/index.html?language=kotlin مشاريع Google النموذجيّة] المكتوبة بلغة Kotlin. | ||
* اطَّلِع على [https://developer.android.com/samples/index.html?language=kotlin مشاريع Google | |||
== مصادر == | == مصادر == | ||
* [https://kotlinlang.org/docs/reference/android-overview.html | * [https://kotlinlang.org/docs/reference/android-overview.html استخدام لغة Kotlin للتطوير في بيئة Android في التوثيق الرسميّ للغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Android]] | [[تصنيف:Kotlin Android]] |
المراجعة الحالية بتاريخ 11:25، 9 مايو 2018
تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة.
ميزات استخدام لغة Kotlin للتطوير في بيئة Android
- التوافقيّة (Compitability): تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android.
- الأداء (Performance): تعمل التطبيقات المكتوبة بلغة Kotlin بسرعةٍ مماثلةٍ للتطبيقات المكتوبة بلغة Java وذلك بفضل البنية المتماثلة بينهما (وهي بنية bytecode)، ويُضاف لذلك أنّ لغة Kotlin تدعم الدوال المباشرة (inline functions) وبالتالي فإن شيفرات lambdas ستعمل غالبًا بسرعةٍ أكبر مقارنةً مع مثيلاتها في لغة Java.
- توافقيّة التبديل (Interoperability): تتوافق لغة Kotlin كليًّا مع لغة Java وذلك بدعمها لكافة مكتبات Android المتوفرة في تطبيق Kotlin، متضمّنةً عمليات معالجة التوصيفات (annotation processing) وبهذا فهي تدعم كلًا من ربط البيانات (databinding) و بيئة Dagger.
- حجم التخزين (Footprint): تتميّز لغة Kotlin بصغر حجم تخزين المكتبات أثناء التشغيل (runtime library)، والذي يُمكن تخفيضه أكثر بالاعتماد على ProGuard، وتُضيف لغة Kotlin في التطبيقات الحقيقية عدّة مئاتٍ فقط من التوابع (methods) وبحجمٍ أقلّ من 100K بملف التطبيق (ذي اللاحقة (.apk.
- زمن ترجمة البرامج (Compilation Time): تدعم لغة Kotlin الترجمة التزايديّة الفعّالة (efficient incremental compilation)، أي تُحضَّر بعض العمليات الاستباقيّة الإضافيّة للبناء النظيف (clean build)، وبهذا تكون سرعة البناء التزايديّ (incremental build) بسرعةٍ مماثلة (أو ربما أكثر سرعةً) ممّا هي عليه في لغة Java.
- المُعدّل السريع للتعلّم (Learning Curve): سيكون البدء بلغة Kotlin أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعد المحول الآلي (convertor) في الخطوات الأولى والذي يُستخدَم للتحويل من لغة Java إلى Kotlin والموجود في إضافات Kotlin (Kotlin Plugins)، ومن المفيد كذلك الاطلاع على عددٍ من التمارين التفاعليّة.
بعض الأمثلة لاستخدام لغة Kotlin في بيئة Android
اعتمدت بعض الشركات الكبرى على لغة Kotlin في بناء تطبيقاتها، ومما جاء في تجاربهم:
- طرحت شركة Pinterest لغة Kotlin في تطبيقها الشهير المُستخدَم من قبل 150 مليون شخص كل شهر.
- كُتب تطبيق Basecamp بلغة Kotlin كليَّا، وقد أفادت الشركة بالفرق الكبير لدى مبرمجيها من ناحية ارتياحهم والتحسُّن الكبير بالجودة والسرعة أثناء العمل.
- لدى تحويل تطبيق Keepsafe's App Lock بأكمله إلى لغة البرمجة Kotlin انخفض عدد الأسطر في الشيفرة بنسبة 30% وعدد التوابع (methods) المستخدمة بنسبة 10%.
أدوات التطوير في Android
تتيح لغة Kotlin عددًا من الأدوات التطويريّة في بيئة Android مما يميّزها عن لغات البرمجة الأخرى، ومن هذه الأدوات:
- إضافات Android (Android Extensions): وهي إضافات تُضاف للمترجم (compiler) بهدف التخلص من استدعاءات
findViewById()
في الشيفرة والاستعاضة عنها بخاصيّات تركيبيّة مُولَّدة من قِبل المترجِم (synthetic compiler-generated properties).
- مكتبة Anko وهي مزوَّدةٌ بمجموعةٍ من المغلِّفات (wrappers) المتوافقة مع لغة Kotlin بما يتعلق بواجهات Android (Android APIs)، بالإضافة إلى ميّزة DSL (أي Domain-Specific Language) والتي تتيح إمكانية الاستغناء عن ملفات التخطيط (layout) ذات اللاحقة .xml واستخدام شيفرة Kotlin بدلًا منها.
الخطوات التالية
- حمّل برنامج Android Studio 3.0 وثبّته فهو يدعم لغة Kotlin.
- لمزيد من المعلومات التفصيليّة حول لغة Kotlin يمكن الاطِّلاع على التوثيق الخاصّ بها.
- اطَّلِع على مشاريع Google النموذجيّة المكتوبة بلغة Kotlin.