وبلاگ - نکات و ترفندها

0
1.3K

در مطلب قبلی با چندین نکته کاربردی در ارتباط با توسعه اپلیکیشن اندورید آشنا شدید، در ادامه شما را با سایر ترفندهای کاربردی در این زمینه آشنا خواهیم کرد، با ما همراه باشید.

 


۷. مشخص کردن End/Start Margin

این نکته یکی از ساده ترین مواردی که اغلب توسعه دهندگان نادیده میگیرند. افزودن حاشیه کار بسیار ساده ای است، اما آیا از پلتفرم های قدیمی تر نیز پشتیبانی میکند؟
Start و End بالارده Left و Right میباشند، از این رو اگر minSDKVersion اپلیکیشن ۱۷ یا کمتر باشد، start و end با left/right موردنیاز خواهد بود. تعریف این مقادیر به صورت زیر است:

 

۸. استفاده از Getter/Setter Generator
یکی از بدترین کارها در ساخت کلاس holder (داده های متغیر را در خود نگه میدارد)، ایجاد چندین getter و setter و کپی کردن متد داخل body و تغییر نام آن برای هریک از متغیرها میباشد.
خوشبختانه اندروید استودیو یک راهکار برای این مشکل در اختیار توسعه دهندگان قرار داده، بدین ترتیب که باید تمامی متغیرهایی را که در کلاس به آنها نیاز دارید مشخص کنید و به Toolbar>Code بروید. کلید میانبر برای انجام این کار ALT + Insert میباشد.
با کلیک بر روی Code گزینه Generate را میبیند و با زدن آن گزینه هایی نمایش داده میشوند که یکی از آنها Getter and Setter است. با زدن این گزینه تمامی getter و setter های موردنیاز به کلاس افزودن خواهند شد.

 

۹. استفاده از Override/Implement Generator
نوشتن کلاس های کاستوم و گسترش آنها کار راحتی است، اما اگر از جزئیات کلاس مطلع نباشید چه پیش خواهد آمد؟ تصور کنید یک PageAdapter دارید و میخواهید یک ViewPager چندین صفحه را نمایش دهد، برای این کار به یک PageAdapter کاستوم نیاز دارید که با استفاده از متدهای اورراید شده کار خواهد کرد. اما این متدها کجا قرار دارند؟
اندروید استودیو به شما امکان افزودن constructor به کلاس کاستوم و استفاده از میانبر ALT + Enter را به شما داده، اما سایر متدهای abstract از کلاس والد PageAdapter باید به صورت دستی اضافه شوند.
برای مشاهده فهرستی از متدهای اورراید شده در دسترس به Code>Generate and Override or Implement methods مراجعه کنید. در اینجا میتوانید چندین متد را به کلاس خود اضافه کنید، برای این کار کلید Ctrl را نگه داشته و پس از انتخاب متدهای موردنظر، OK را بزنید.

 

۱۰. درک Contexts
کلاس Context کمی پیچیده است و بسیاری از مبتدیان معمولا در درک معماری این کلاس با مشکل مواجهند. اما این کلاس چیست و چرا همه جا موردنیاز است؟
به بیان ساده تر، این کلاس هرچیزی را که در نمایشگر میبینید با هم ترکیب میکند. تمامی Viewها (یا اکستنشن های آنها) با استفاده از Context به هم متصل شده است. Context مسئول اعطای مجوز به منابع سطح اپلیکیشن مانند density با اکتیویتی فعلی میباشد.

یک TextView را در نظر بگیرید که باید به MainActivity اضافه شود. هنگام ساخت آبجکت، سازنده TextView به Context نیاز دارد. برای نمونه اگر لازم باشد TextView به صورت داخلی فونت Roboto را بارگذاری کند، TextView برای این کار به Context نیاز دارد و در این صورت به TextView میگوییم که آن را به اکتیویتی فعلی پیوند دهد.
کاربرد کلیدی دیگر Context انجام عملیاتی مانند ایجاد یک لایبرری است. لایبرری در lifecycle اپلیکیشن قرار دارد و باید به جای getContext یا this یا ()getActivity، با ()getApplicationContext اینیشیالایز شود.

دانستن کاربرد درست انواع Context ها برای جلوگیری از نشتی حافظه بسیار مهم است. کاربردهای دیگر Context شروع کردن اکتیویتی یا سرویس میباشد. وقتی باید اکتیویتی را از یک کلاس غیراکتیویتی تغییر دهید، به یک آبجکت context برای دسترسی به متد startActivity نیاز دارید که متعلق به کلاس Context است، نه Activity.

 

در این لینک اطلاعات مفیدی در خصوص Contextها و جاهایی که باید از آنها استفاده شود، خواهید یافت. این لینک نیز شامل مستندات اندروید درباره Context است که تمامی متدهای در دسترس، فلگ های استاتیک و غیره را شرح داده است.

 

۱۱. فرمت کد
اکثر کلاس هایی که روی آنها کار میکنیم شامل بیش از ۱۰۰۰ خط کد هستند، اما میخواهیم کد ما ساختار خود را حفظ کند. نه تنها کلاس های بزرگ، بلکه کلاس ها ماژولار کوچک نیز باید خوانایی کد خود را حفظ کنند.
با استفاده از اندروید استودیو یا سایر IDE های JetBrains دیگر نیازی به ساختاردهی کد به صورت دستی و انجام عملیاتی مانند افزودن حاشیه یا فاصله قبل از =. نمیباشد. هرطور میخواهید کد را بنویسید و وقتی کارتان تمام شد، ALT + CTRL + L را در ویندوز و ALT + CTRL + SHIFT + L را در لینوکس بزنید، با این کار کد شما به طور خودکار فرمت میشود.

 

۱۲. استفاده از لایبرری ها
یکی از اصول کلیدی برنامه نویسی شی گرا افزایش قابلیت استفاده مجدد کد میباشد که این رویکرد رایج توسط اغلب مبتدیان به اشتباه مورد استفاده قرار میگیرد. دو رویکرد کلی را میتوان مورد استفاده قرار داد:
– به هیچ وجه از لایبرری ها استفاده نکنید و خودتان برای همه چیز کد بنویسید.
– برای هر کاری از لایبرری های آماده استفاده کنید.

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


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

 

منبع:

https://android.jlelse.eu