گسترش دهنده نرم افزارهاي اندرويدي ازكدام كتابخانههاي كاتلين مي بايست استعمال نمايد؟ كدام كتابخانههاي كاتلين عالي، مفيدتر وكاربرديترند؟ طراحي اپليكيشن در مشهد اين دو پرسش بهظواهر بي آلايش، ممكن ميباشد گرفتاريي هر بسطدهندهي اپليكيشنهاي اندرويدي باشد. پيشرفتدهنده ممكن وجود ندارد كه بتواند از كليهي كتابخانهها به كارگيري نمايد. پس ناچار ميباشد براساس نيازهايي كه در نرم افزارنويسي داراست، ازميان كتابخانهها تعيين نمايد. درخصوص اين مورد در انجمنها و بلاگهاي تخصصي بسطدهندگان اندرويد گفت و گو فراوان ميباشد.
فهرستهاي مختلفي، باعناوين متفاوتي مانند مفيدترين كتابخانههاي كاتلين يا اين كه كتابخانههاي كاتلين كه هر توسعه و گسترشدهندهاي بايستي بداند، نيز در آن انجمنهاي تخصصي سفارش شدهاست. درين مقاله، اينجانب نيز سعي كردم تا كاربرديترين كتابخانه هاي كاتلين را به شما معرفي كنم. قبلياز معرفي كتابخانهها، توضيح ميدهم كه ترازو گزينش كتابخانههاي كاتلين براي معرفي دراين مقاله چه بوده ميباشد.
آنچه درين نوشته خوا هيم داشت
كتابخانه هاي كاتلين براي توسعه و گسترشي اندرويد
۱. Kotlinx.coroutines
۲. Kotlinx.serialization
۳. Multik
۴. Viktor
۵. Kotlinx.datetime
۶. MockK
تودهبندي و سودگيري
كتابخانه هاي كاتلين براي گسترشي اندرويد
كاتلين را JetBrains (كمپاني پيشرفت قابل انعطافافزاري لهستاني) ساخته ميباشد. چنانچه كسي بخواهد كاتلين را بشناسد، علاوهبر سايت قانوني كاتلين مي بايست وبلاگ كاتلين در JetBrains را نيز تحقيق نمايد. بدين ترتيب، ميگردد داعيه كرد كه براي كاتلين دو وب سايت مرجع وجود داراست. در هر دوي اين وبسايتها در زمينه ي كتابخانههاي كاتلين سخن گرديده و كتابخانههايي نيز معرفي گرديده است. مبناي اينجانب براي گزينش كتابخانههايي كه درادامه ميايند، دردرجه ي نخستين اين دو وبسايت مرجع بوده ميباشد.
در شرايطيكه به نصيب Documentation تارنما كاتلين رجوع نماييد، در منوي سمت راست ورقه اين تيتر را پيدا مي كنيد: Official libraries. ذيل اين تيتر ۳ كتابخانه معرفي گرديده است: Kotlinx.coroutines, Kotlinx.serialization & Ktor. اما، Ktor فريمورك كاتلين ميباشد (بعداز قضيه دعوا ما بيرون مي شود). در وبلاگ JetBrains، علاوهبر آن كتابخانههاي قانوني ۳ كتابخانهي ديگر نيز معرفي گرديدهاست: Multik, Viktor & Kotlinx.datetime. يك كتابخانهي جذاب ديگر (MockK) هم براي كاتلين تاسيس شده است كه پيشرفتدهندگان اندرويدي از آن استعمال مينمايند. در ارتباط آن هم توضيحاتي ميدهم.
با كتابخانههاي قانوني آغاز مي كنم.
در صورتيكه عشق و علاقهمند مي باشيد تا بيشتر در امر تفاوتهاي كاتلين و جاوا بدانيد، نوشته ي علميي «مقايسه كاتلين و جاوا (پژوهش ۸ تفاوت مهم)» را بخوانيد.
۱. Kotlinx.coroutines
در اصل اجراي برابر يكسري فعاليت بيآنكه خللي به جريان اساسي (نخ مهم) اجراي كدها وارد نمايد، از معضلهاي نرمافزارنويسي ميباشد. بههميناستدلال، در نرم افزارنويسي براي وب سايت يا اين كه نرم افزار، Asynchronous Programming يا اين كه نرم افزارنويسي ناهمگام گفت و گو مهمي به شمار مي رود. چارههاي مختلفي براي حل اين بحران سفارش گرديدهاست. يكي اينشيوهحلها كوروتينهاست. گويشهاي متعدد ازجمله C , Java ,Ruby ,Python & Kotlin از كوروتينها به كارگيري مينمايند. در بيشتر گويشهايي كه از كوروتينها امداد ميگيرند، اين شغل ازطريق كتابخانههاي آن لهجه ايفا مي شود. كاتلين هم اين عمل را به مهمترين و بي نيازترين كتابخانهاش واگذار نموده است: Kotlinx.coroutines. با كوروتينها بهراحتي ميشود اجراي برابر تعدادي عمل در نرم افزار را ممكن كرد. همينطور، كوروتينها بسيار نادروسعت و مدل ميباشند.
تايپ كردن كوروتينها در كاتلين با قطعهكد ذيل استارت ميشود:
/*
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
// This file was automatically generated from coroutines-basics.md by Knit tool. Do not edit.
package kotlinx.coroutines.guide.exampleBasic01
import kotlinx.coroutines.*
fun main() = runBlocking { // this: CoroutineScope
launch { // launch a new coroutine and continue
delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
println("World!") // print after delay
}
println("Hello") // main coroutine continues while a previous one is delayed
}
۲. Kotlinx.serialization
از دعواهاي اساسي ديگر در نرم افزارنويسي تبديلكردن داده ها به گويشهاي متعدد طوريكه تبادل آنان دربين سيستمهاي متعدد را قابليت و امكانپذير نمايد ميباشد. گاهي نياز ميباشد تا اطلاعاتي كه نرم افزار اندرويدي از آن به كار گيري مينمايد به فرمت ديگري تبديل گردد تا بشود آن را به سيستم ديگري منتقل يا اين كه در ديتابيس يا اين كه پوشه ذخيره كرد. بدين مراحل تغيير تحول فرمت داده ها Serialization گفته ميگردد.
برعكس اين موقعيت نيز ممكن ميباشد رخداد بيفتد: Deserialization كه در آن اطلاعاتي از منبع فرنگي مي بايست تبديل خواهد شد تا نرم افزار بتواند آن را بخواند. اين تغيير تحول فرمتها براي نرم افزارهايي كه با سيستم ثالثي تبادل داده ها دارا هستند بسيار ضروري ميباشد. كتابخانهي Kotlinx.serialization، كه دستهاي از كتابخانههاست، اين دو تغيير تحول فرمت داده ها را در كاتلين ايفا مي دهد. كتابخانههاي Kotlinx.serialization تبديل داده ها به فرمتهاي JSON, Protocol buffers, CBOR, Properties & HOCON را قابليتپذير مينمايند.
۳. Multik
اين كتابخانه قرار ميباشد شغل گسترشدهنده نرمافزارهاي اندرويدي را با آرايههاي يكسري آتي (Multidimensional Arrays) در كاتلين ريلكس نمايد. آرايهها براي عدهكردن يكسري مقدار درقالب يك متغير بهعمل ميروند. در كاتلين ميشود آرايههاي دو آتي، سه آينده و يكسري آينده داشت. يك آرايهي معمولي به صورت ذيل ميباشد:
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
هرچه بعدها آرايه بيشتر گردد، شغل با آن پاره اي مشقت بارخيس و غامضخيس ميگردد و نياز به محاسبات داراست. در شرايطيكه توسعه و گسترشدهند بخواهد روي آرايههاي چندبعدي عمليات رياضي و محاسبات رياضي ايفا دهد هم عمل دشوار و بغرنج ميگردد. كتابخانهي Multik ساختن آرايهها (تا چهار آجل) و شغل هاي مختلفي را كه ميگردد روي آنها ايفا اعطا كرد ريلكسخيس و سريعخيس و مدلخيس مينمايد. ساختن آرايهها درين كتابخانه بهترتيب ذيل ميباشد (سومين كد براي ساختن آرايهي دو آجل و واپسين كد براي ساختن آرايهي سه آينده ميباشد):
بازدید: