سورس کلود

برنامه نویسی مدرن اندروید در سال 2021

برنامه نویسی مدرن اندروید در سال 2021

برنامه نویسی مدرن اندروید در سال 2021

در سال های اخیر ما در برنامه نویسی مدرن اندروید، تغییرات زیادی را از منظر زبان برنامه نویسی، محیط برنامه نویسی، SDK و ورژن های اندروید شاهد بوده ایم

در ادامه ی مطلب بصورت کامل در این مورد میخوانیم :

که فرصت ها، محدودیت ها و قابلیت های جدیدی را پیش روی مان قرار داده است. بنابراین به عنوان یک برنامه نویس اندروید اگر دائما به دنبال بروزرسانی اطلاعات فنی خود در این حوزه نباشیم، به همان اندازه که یاد گرفته ایم و تجربه کسب کرده ایم، به همان اندازه نیز از دنیای ناشناخته‌ی امکانات جدید آن عقب مانده ایم. در این مقاله به همین موضوع یعنی برنامه نویسی مدرن اندروید اشاره خواهیم نمود و تغییر و تحولاتِ این حوزه را با هم مرور کوتاهی خواهیم کرد.

 

برنامه نویسی مدرن اندروید در سال 2021

برنامه نویسی مدرن اندروید در سال 2021

 

کدام زبان برنامه نویسی؟ جاوا یا کاتلین؟

احتمالا هنوز پرسش بسیاری از برنامه نویسان اندروید این است که بالاخره با جاوا کد بزنند یا کاتلین؟ جواب این پرسش به چند نکته بستگی دارد. فارغ از آنکه شما در چه شرکتی مشغول به کار هستید و یا اینکه پروژه های‌تان چه زبانی را در حال حاضر پشتیبانی می کند

که خود مساله ای مهم است

اینکه چقدر حاضرید ریسک یادگیری یک زبان جدید را بپذیرید و چقدر وقت دارید که این کار را به سر انجام برسانید و در آخر اینکه چقدر حاضرید در برابر به روز بودن در حوزه کاری تان از خود مقاومت نشان ندهید همگی دلایل اصلی برای یادگیری یک زبان جدید محسوب می شوند.

زبان کاتلین بهتر یا بدتر از جاوا است ؟

با این همه هنوز هیچ کس در دنیا نتوانسته ادعا کند که زبان کاتلین بهتر یا بدتر از جاوا است. (برنامه نویسی مدرن اندروید در سال 2021) در کل در دنیای امروز بحث سر بهتر یا بدتر بودن نیست. همه دلایلی که برای رفتن به سمت زبان کاتلین معرفی می شوند، مبتنی بر چند استدلال مشابه است.

زبان رسمی توسعه اندروید شرکت گوگل ؟

گوگل خود در وبسایت رسمی اندروید، زبان کاتلین را زبان رسمی توسعه اندروید معرفی کرده است (این را در گوگل IO سال ۲۰۱۷  اعلام کردند).

نتیجه کدامیک است ؟

همه‌ی پروژه های آموزشی و کاربردی گوگل برای معرفی کتابخانه های جدید همگی به زبان کاتلین توسعه داده شده و همه آموزش ها از این پس نیز به زبان کاتلین نوشته می شوند. این موضوع در شرکت های بزرگ دنیا هم دغدغه‌ی مهمی محسوب می گردد.

نمونه های جهانی در برنامه نوسی مدرن

به طور نمونه شرکت اوبر در جدیدترین مقالات مهندسی خود به این نکته اشاره می کند. اوبر با اشاره به اینکه سرعت build در اندروید استودیو برای یک پروژه اندروید با زبان کاتلین کمی کمتر از سرعت build یک پروژه اندرویدی به زبان جاواست (که این تفاوت البته خیلی هم زیاد نیست و دلایل منطقی خود را دارد) در ادامه به این نکته اشاره می کند

درصد نمونه های جهانی در برنامه نوسی مدرن

که ۹۵ درصد از ۱۰۰ برنامه نویس موبایل خود بر این بار بوده اند که حاضرند این موضوع را بپذیرند اما به جای آن از توانایی ها و امکاناتی که این زبان (یعنی زبان کاتلین) در اختیار آنها قرار می‌دهد (مانند کد تمیزتر، خوانا تر و کوتاه تر) استفاده کنند.  اما اگر به مستندات گوگل مراجعه کنیم، خواهیم دید که گوگل در صفحه رسمی اندروید دلایل زیر را برای مهاجرت به زبان کاتلین بر می‌شمارد.

ویژگی های زبان برنامه نویسی مدرن در سال های گذشته و زمان حال

  • ویژگی های زبان مدرن کاتلین شما را قادر می سازد تا برای پیاده سازی ایده های خود کد کمتری را بنویسید. کد کمتر به طبع کد کمتری برای تست و نگهداری لازم دارد. بعضا کدی که به زبان جاوا ده خط مجبور بودید برای آن بنویسید را شاید در کاتلین با دو خط بتوانید پیاده سازی کنید.

کیفیت برنامه ی مدرن شما ؟

  • کیفیت برنامه خود را با کاتلین بهبود دهید. برچسب های @Nullable و@NonNull که برای جلوگیری NullPointerExceptions پیشتر استفاده می شد اکنون در کاتلین به طور کامل پشتیبانی می شود. کاتلین همچنین دارای بسیاری از ویژگی های زبانی دیگر است که به جلوگیری از اشتباهات رایج برنامه نویسی کمک میکند.

در ادامه میخوانیم که :

  • فراخوانی متدهای جاوا وقتی با کاتلین کد میزنیم و فراخوانی متد های مکاتلین از جایی که با جاوا کد میزنیم به طور کامل در اندروید استودیو پشتیبانی میشود. بنابراین شما می توانید در پروژه تان هم از کاتلین و هم از جاوا بهره ببرید.
  • اندروید استودیو به طور کامل با زبان کاتلین سازگار است و کلی از امکانات را اعم از تبدیل کلاس های جاوا و کاتلین به یکدیگر و سایر امکانات را به برنامه نویسان ارائه می دهد.

مهاجرت به کاتلین آری یا خیر برای برنامه نویسی مدرن اندروید در سال 2021؟

مهاجرت به کاتلین هنوز یک انتخاب برای برنامه نویس محسوب می شود. اما نه یک انتخاب ساده، که یک انتخاب هوشمندانه. متاسفانه زبان تنها مساله ای نیست که برنامه نویسان اندروید این روزها با آن دست و پنجه نرم می کنند (ما هنوز بحث فلاتر را باز نکرده ایم. زبان دارت خود داستان مفصل دارد که در این پست به آن اشاره نمی کنیم). همانطور که چهار پنج سال پیش بحث سر این بود که هنوز با اکلیپس کد بزنیم یا اندروید استودیو ( و امروز دیگر کسی اکلیپس را به خاطر نمی آورد) کاتلین و جاوا هم گویا به همین سرنوشت دچار خواهند شد. البته ما در حوزه برنامه نویسی اندروید موضوع را بررسی کردیم.

 

AndroidX

بعد از عبور از انتخاب زبان برنامه نویسی می رسیم به استفاده از کتابخانه های مدرن اندروید. به عنوان مثال androidx  چیز عجیبی نیست اما در پروژه های جدید می بایست همه کتابخانه های Support را با آن جایگزین کنیم. اگر میخواهیم آخرین آپدیت های کامپوننت های  View را در اپ خودمان داشته باشیم باید خیلی زودتر به Androidx مهاجرت کنیم. به طبع باید همه فایل های xml و همه import های قبلی پروژه قبلی مان را مجددا بازنگری کنیم.

Support

که البته برای این موضوع اندروید استودیو خود امکان مهاجرت به Androidx  رو برای ما فراهم کرده است که با یک کلیک بتوانیم کلک قضیه را بکنیم. شاید بپریسد این کارها برای چیست؟ باید بگوییم که نه تنها برنامه نویس ها که خود گوگل هم از مدیریت ورژن های Support Library ها خسته شد و دیگر بجای ورژن های گوناگون v4, v7, v12, v13 یک کتابخانه واحد و سازگار داریم به اسم androidx. مثلا نمونه زیر فرگمنت است که همانطور که میبینید پکیج آن عوض شده است.

 

معماری نرم افزار و برنامه نویسی مدرن اندروید در سال 2021

شاید تا سه سال پیش کمتر کسی دغدغه انتخاب معماری نرم افزار برای یک پروژه اندروید داشت برای برنامه نویسی مدرن اندروید در سال 2021 و برنامه نویسان حرفه ای نهایتا با پیاده سازی مدل های مشابه در پروژه های دیگر سعی بر این داشتند تا اصول لایه بندی و برنامه نویسی چند لایه را به پروژه های اندرویدی وارد نمایند. امروز که شما این مطلب را می‌خوانید احتمالا ده ها معماری مدرن برای پروژهای اندروید معرفی شده اند که شاید اسامی چند تا از آن ها را شنیده باشید

مثالهای معماری نرم افزار و برنامه نویسی مدرن اندروید

مانند MVVM  یا Mvp، MVI، VIPER و … که همگی همینطور که متوجه شده اید از سر هم شدن یک سری حروف انگلیسی تشکیل شده اند و تا دلتان بخواهد آموزش و بحث بر سر خوبی یا بدی هر کدام در سرتاسر وبلاگ ها و سایت مرتبط با برنامه نویس اندروید وجود دارد. پس واقعا لازم است که ما با معماری های نرم افزاری قابل پیاده سازی در اندروید آشنا باشیم و از قابلیتهای آنها در طراحی نرم افزارمان استفاده کنیم. می توانید فعلا این مقاله را بخوانید تا با این پدیده بیشتر آشنا بشید.

طراحی UI

طراحی و چیدمان المان های UI هم موضوعی است که این روزها دستخوش تغییر است و دیگر روش های قدیمی طراحی و چیدمان لایه های UI (مثل استفاده از LinearLayout یا RelativeLayout) دیگر تنها راه حل پیش روی برنامه نویسان اندروید نیست و امروزه ConstraintLayout ها با امکاناتی که اندروید استودیو در اختیار قرار میدهد محبوبیت بیشتری بین برنامه نویسان دارد.

مدیریت منابع حافظه برای برنامه نویسی مدرن اندروید در سال 2021
شاید کمتر کسی در سال های گذشته کلمه‌ی نشتی حافظه در اندروید را به زبان می آورد. اما این روزها نشت حافظه یا Memory Leak که از مباحث اساسی توسعه نرم افزار است اهمیت زیادی پیدا کرده است.

معمولا چگونه است ؟

معمولا این روزها یکی از سوالات مصاحبه همه شرکت ها همین موضوع است که شما چگونه از نشت حافظه جلوگیری می کنید. برای این موضوع هم تا دلتان بخواهد مطلب و بحث روی اینترنت است و کلی ابزار مانند LeakCanary معرفی شده اند تا با کمک آنها بتوانید با نشتی حافظه مقابله کنیدو.

تزریق وابستگی

تزریق وابستگی مانند اندروید باکس فیلیمو هم یکی از آن چیزهایی است که احتمالا زیاد به گوشتان می خورد و در همه آگهی های استخدام می بینید که آشنایی با مثلا کتابخانه Dagger از ملزومات دستیابی به شغل مورد نظر است که با کاتلین و جاوا و …. در رابطه با Dagger  هم هزاران مطلب آموزشی نوشته شده است و امروزه به یک بایدی تبدیل شده که به کار تست نرم افزار هم می آید.

 دیتابیس

یکی از چیزهایی که در سال های گذشته خیلی کاربرد پیدا کرده است و در جاوا و کاتلین یکی است استفاده از ORM ها برای پیاده سازی لایه دیتابیس در برنامه است. ORM یک تکنیک در برنامه نویسی است که یک مدل Object Oriented از ساختار دیتابیس در برنامه ایجاد میکند تا بتوان راحت تر با دیتابییس در معماری شی گرا کار کرد.

ORM

ORM ها در اندروید یک لایه انتزاعی دور SQLite اندروید می‌کشند که بتوان راحت تر با آن کار کرد. تا به امروز خیلی ها کتابخانه های مختلفی را برای پیاده سازی این مدل در اندروید منتشر کرده اند. اما به یاد داشته باشید گوگل در دو سه سال گذشته، Room را معرفی کرده است که علاوه بر اینکه یک ORM است، بلکه کاملا سازگار با کتابخانه Jetpack نیز هست (این کتابخانه خود داستان مفصل دارد که در یک مقاله دیگر بایستی به آن پرداخت

سخن پایانی برای برنامه نویسی مدرن اندروید در جاوا و کاتلین

اگر به تازگی در مصاحبه های اندروید شرکت کرده باشید چه در مورد جاوا و چه در مورد کاتلین حتما به این نکته پی برده اید که دیگر مثل گذشته تجربه توسعه و انتشار یک یا چند برنامه در مارکت به عنوان رزومه یک برنامه نویس حرفه ای مورد قبول شرکتهای مطرح این حوزه نیست. یک برنامه نویس ارشد اندروید علاوه بر تسلط به SDK اندروید

و اینگونه میفهمیم از این مقاله که :

طراحی UI و کار با کتابخانه های معروف مثل Retrofit و کار با دیتابیس می بایست به موضوعات جدیدی مثل برنامه نویسی واکنش گرا (مثل RxJava یا RxKotlin)، تزریق وابستگی از طریق Dagger، کار با Navigation، معماری های مطرح اندروید (مثل MVVM و MVP)، آشنایی با ابزارهای Unit Testing و کار با JetPack تسلط کافی داشته باشد.

دیدگاه‌ها (0)

  • دیدگاه های فینگلیش تایید نخواهند شد.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
  • امتیاز دادن به محصولات فقط مخصوص خریداران محصول می باشد.