با طعم کد!

اشتباهات پر تکرار یک برنامه‌نویس اندروید – قسمت سوم

این اتفاقات شاید برای هر برنامه‌نویسی اتفاق بیفتد،...

در قسمت قبلی این مطلب و قسمت قبل‌تر توضیح داده شد که منظور ما از اتفاقات و اشتباهات یک برنامه‌نویس چیست و چرا ممکن است این اتفاقات برای همه برنامه‌نویسان رخ بدهد. در این قسمت هم قصد دارم به ادامه بحث قبلی بپردازم و دو یا سه مورد از این اشتباهات را توضیح بدهم.

۵.مسدود کردن Thread اصلی برنامه

Thread اصلی برنامه فقط و فقط یک هدف واحد دارد: بهینه و واکنش گرا نگه داشتن رابط کاربری برنامه!
اگر چه از نظر علمی اندازه گیری نرخ تصویر ثبت شده توسط چشم ما و ارسال آن به مغز تقریبا کاری پیچیده است و تحت تاثیر عوامل زیادی قرار می گیرد. اما این یک قاعده ساده و کلی است که هر حرکت یا تغییری با کمتر از ۲۴ فریم بر ثانیه با تاخیر بیشتر از ۱۰۰ میلی ثانیه، نرم و اصطلاحا smooth تلقی نمی‌شود.
با انجام اتفاقات دیگر در Thread اصلی برنامه ، از طرفی روند واکنش گرایی و بهینه بودن رابط کاربری با اختلال رو به رو می شود و احساس ناخوشایندی به کاربر القا می کند و کاربر نمی تواند برنامه را به راحتی و آن گونه که مد نظر دارد کنترل کند و از طرف دیگر واکنش های رابط کاربری از سرعت و بهینه بودن زمانی محاسبات و دیگر اعمال سیستمی کم می‌کند و در نتیجه باعث عملکرد ناقص یا با مشکل از سوی برنامه می شود.
بدترین اتفاق زمانی رخ می دهد که Thread اصلی برنامه برای مدتی مسدود باقی بماند که این مدت برای Activityها چیزی حدود ۵ ثانیه و برای Broadcast Receiver ها حدود ۱۰ ثانیه است، و اینجاست که کاربر با یک دیالوگ ANR (خیلی از ما به این دیالوگ اشتباها Force Close می‌گوییم) مواجه می‌شود که شاید برای من بدترین تجربه کاربری را تداعی می‌کند.
برای جلوگیری از مسدود کردن Thread اصلی برنامه همیشه برای ارتباط با شبکه، بار‌گذاری Bitmapها، پردازش عکس‌ها، پویش در دیتابیس و خواندن و نوشتن بر روی حافظه از Thread های کمکی و قابل اجرا در پس زمینه استفاده کنید.

۶. اختراع دوباره چرخ!!

بسیار خب، ما از Thread اصلی برنامه برای فعالیت های دیگر استفاده نمی‌کنیم و تمامی کد های ارتباط با سرور و … را در Thread های پس زمینه اجرا می کنیم.
اما نه! یک لحظه صبر کنید! درخواست های شبکه، بارگزاری عکس ها، دسترسی به دیتابیس، عملیات مربوط به JSON ها و ورود از طریق شبکه های اجتماعی رایج ترین چیزهایی است که شما در برنامه هایتان استفاده می کنید، نه فقط شما! این برای اکثر اپلیکیشن ها یک فعالیت رایج است. اما راه بهتری برای این کار وجود دارد، فکر می کنم با چند مثال زیر منظور من را به راحتی متوجه شوید:

  1. برای ارتباطات با شبکه و درخواست ها میتوانید از کتابخانه هایی مثل Volley و یا Volley+ یا Retrofit استفاده کنید.
  2. برای بارگزاری عکس ها از Picasso و یا Glide استفاده کنید.
  3. برای تجزیه و تحلیل و عملیات روی JSON ها، کتابخانه هایی مثل GSON و یا Jackson وجود دارند.
  4. برای ورود از طریق حساب شبکه های اجتماعی کتابخانه های بسیار زیادی وجود دارد.

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

برچسب ها
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

بستن
بستن