مقایسه Retrofit و ktor برای برنامه نویسی اندروید 2 انتخاب وسوسه کننده

مقایسه Retrofit و ktor برای برنامه نویسی اندروید 2 انتخاب وسوسه کننده
در این پست می‌خوانید:

کتابخانه های رتروفیت و ktor شناخته شده ترین کتابخونه ها برای پیاده سازی سمت client پروتکل http اند. کتابخونه رتروفیت خیلی ساده پیاده سازی می شه سادگیش مزیت اصلیشه، در حالیکه ktor برای برنامه نویسی multiplatform منعطف تر و کاربردی تر و قدرتمند تره.

دوره نخبگان اندروید استاد نوری یکی از پرمحتوا ترین دوره های برنامه نویسی اندروید فارسی زبان

Retrofit و ktor

رتروفیت و ktor با توجه به موارد استفاده و مجموعه ویژگی هاشون به طور گسترده برای پیاده سازی سمت client پروتکل http در بستر اندروید استفاده می شن. رتروفیت همیشه گزینۀ اصلی برنامه نویسای اندروید برای پیاده سازی پروتکل http هست، هم سادست هم کامله هم سرراست RequestNetwork پیاده سازی می کنه هم راحت با کد های اصلی برنامه آمیخته می شه و برای پیاده سازی جزئیات network به صورت abstract عمل می کنه.

از سوی دیگه ktor جدیدتره و  بخاطر قابلیت ها و سازگاری گستردش مورد توجه برنامه نویسای اندرویدی قرار گرفته و به برنامه نویس این امکان رو میده تا کنترل بیشتری روی http client داشته باشن. این باعث میشه برای اپلیکیشن های پیچیده و اپلیکیشن هایی که از multiplatform پشتیبانی میکنن و نیز برنامه نویسی سمت سرور و Kotlin Multiplatform در عمل گزینه مناسب تری باشه.

در حالیکه برای رتروفیت طرفدارا و مثال های گسترده ای وجود داشته و داره و پشتیبانی پایداری واسش هست، ktor هنوز خوب جا نیوفتاده و هنوز جامعه ktor مثل رتروفیت گسترده نشده واسه پیاده سازیش باید مستنداتش رو بخونی.

دیدگاه های مقایسه ای رتروفیت و ktor

  • رتروفیت مناسب برنامه نویسای تازه کار اندرویدی و اوناییه که اولویتشون سادگی هستنو میخوان بدون دردسر پروژه رو بیارن بالا
  • ktor مورد علاقۀ برنامه نویسای مجربه که تنشون واسه ویژگی های پیشرفته تر میخاره و می خوان بزنن به عمق دریای http client و قابلیت های multiplatform
  • انتخاب بین رتروفیت و ktor بر میگرده به نیاز های خاص یک پروژۀ خاص و آشنایی برنامه نویس با کاتلین و مفاهیم شبکه(مفاهیم شبکه رو خوب بلد نباشی چطور می خوای بزنی به دریای ktor؟ ktor برای پروژه های پیچیدست).

رتروفیت و ktor

مقایسه ویژگی های Retrofit و ktor :

رتروفیت

  • رتروفیت به بلوغ خودش رسیده و پایدار شده
  • سادست و راحت پیاده سازی می شه
  • مثل آب خوردن واسه response و request کردنه
  • جزئیات سطح پایین شبکه رو خودش واست حلوا می کنه و نمیزاره درگیر جزئیات سطح پایین شبکه بشی
  • متاسفانه از برنامه نویسی چند سکویی (multiplatform) پشتیبانی نمی کنه (گندش بزنن!)
  • جامعه برنامه نویسایی که ازش استفاده می کنن خیلی بزرگه!
  • مستندات کاملی هم واسش هست

ktor

  • کاکامون نسبت به رتروفیت جدید تره
  • کاکامون نسبت به رتروفیت قوی تر و منعطف تره 💪
  • کاکامون کنترل بیشتری روی http بهت می ده تا بزنی به دریای http 💪
  • کاکامون از multiplatform پشتیبانی می کنه 💪
  • جامعش مثل رتروفیت بزرگ نیست ولی در حال رشده 💪
  • وضعیت مستنداتشم خوبه 💪
  • از برنامه نویسی سمت سرور هم پشتیبانی می کنه 💪
  • از kotlin multiplatform هم پشتیبانی می کنه 💪

بریم مثال بزنیم

اینجا کد آوردیم که چطور از رتروفیت و ktor برای رکوئست دادن سمت سرور استفاده کنیم:

رتروفیت

// Define the API service interface
interface ApiService {
    @GET("/users")
    suspend fun getUsers(): List<User>
}

// Create an instance of the API service
val apiService: ApiService = Retrofit.Builder()
    .baseUrl("https://api.example.com")
    .build()
    .create(ApiService::class.java)
// Make a GET request to get all users
val users = apiService.getUsers()

ktor

// Create an instance of the HTTP client
val httpClient = HttpClient()

// Make a GET request to get all users
val users = httpClient.get<List<User>>("https://api.example.com/users")

بالاخره کدمونو استفاده کنیم؟

میخوای بدون دردسر و ساده از پروتکل http برای client استفاده کنی رتروفیت. اگر دنبال یه چیز قوی تر و منعطف تری یا می خوای برنامه نویسی multiplatform انجام بدی کاکامون ktor

لب کلام و تمام

رتروفیت و ktor جفتشون کتابخونه های client http درجه یکی واسه برنامه نویسی اندروید هستن. باید بر اساس نیاز های پروژت تصمیم بگیری از کدومشون استفاده کنی

منبع مقاله

دیدگاه‌ها ۰
ارسال دیدگاه جدید