۵ اکستنشن مهم کاتلین که هر اندروید دولوپری باید بداند.
مجموعه Android KTX یک کالکشنی از لایبراری های اندروید به همراه اکستنش های کاتلین هست که کدنویسی رو وقتی از لایبراری های جت پک و سایر لایبراری های اندروید استفاده می کنید آسان می کند.
اکستنشن های KTX از ویژگی های کاتلین برای ارائه راهنمایی های مختصر به دولوپر ها برای کار کردن با جت پک و سایر API ها استفاده می کند.
در ادامه به بررسی ۵ اکستنشن که می تونه توسعه اندروید رو آسان کند می پردازیم.
اکستنشن ViewModel روی LifeCycle Scope
وقتی از ViewModel ها و Coroutines استفاده می کنیم، این مهم هست توی Scope باشند و تسک های بکگراند که طولانی تر ران می مانند داخل همان scope باشند و همینطور این تسک ها می توانند هر زمانی که نیاز شد کنسل بشوند. همینطور این اکستنشن ها می توانند جایی استفاده بشوند که شما می خواهید یک تسک محدود بشه به طول عمر یک کامپوننت خاص.
اسکتنشن ساخت ViewModel در برنامه نویسی پیشرفته اندروید ما به این سمت حرکت می کنیم که از فرگمنت های به جای اکتیویتی ها استفاده کنیم. توی سالی که اومد، این اعتقاد وجود دارد به این سمت میریم که قابلیت های Compose جای Fragment ها رو خواهد گرفت، حالا در این شرایط ما باید یک نمونه موجود از ViewModel مربوطه را توسعه دهیم.
اکستنشن LiveData Lambdas لایو دیتا یک کلاس نگهدارنده داده هایی است که می تونه داده های قابل Observe شدن رو در خودش نگهدارد که این داده ها می تونن توسط سایر کامپونت های اندروید مانند فرگمنت و اکتیویتی Observe شوند.
اسکتنشن Room KTX اکستنشن Room KTX یک لایه داینامیکی از Sqlite رو ارائه می کنه که کد نویسی رو اسان می کند، همچنین به تعبیری یک اهرمی فراهم می کند برای دیتابیس Room توسط کاتلین کروتین. همچنین استفاده از suspend function ها رو زمانی که Room DAO به خوبی Flow Api وقتی دیتابیس ابدیت می شود نظارت می کند ممکن می سازد. Room یک لایبراری از مجموعه Jetpack هست که به صورت مجهز برای اجرای همین اهداف اومد. ترکیب کروتین و دیتابیس Room استفاده از اپراتور های Room رو راحت تر کرد. لبه تیزی که ویژگی هایی از قبیل Flow فراهم می کنه یک عملکرد روان بدون استفاده از کد های سنگین هست.
اکستنشن Firebase فایربیس همیشه به همراه لیستنر های مربوطه خودش میاد، لیستنر هایی مثل addOnCompleteListener، addOnSuccessListener ، addOnCanceledListener و غیره ... کروتین ها قابلیت اجرای اوپراتور های Async را به یک روش ترتیبی ارائه میدهد. که کمک میکنه که کد دقیق تری بسازیم. در فایربیس کالبک ها می تونن کمی سنگین باشند برای همین خوبه که تسک های فایربیس رو با استفاده از سرویس های کاتلین کروتین پیاده کنیم. این لایبراری به عنوان یک اکستنشن فانکشن با نام await شناخته میشه که تسک ها رو به صورت داخلی در یک suspend فانکشن اجرا می کند دقیقا بدون کالبک های اضافی فایربیس.
این مقاله ترجمه ای بود از این مقاله که سعی شد با توجه به اینکه انگلیسی سختی داشت ولی ترجمه روانی داشته باشد. امیدوارم به دردتون بخورد.