Leak Canary برای شناسایی نشت حافظه در اندروید ۵ (۱)

کتابخانه Leak Canary برای شناسایی منشا نشت حافظه در اندروید
Leak Canary چیست؟ Canary یک کتابخانه متن باز است که با هدف تشخیص نشت حافظه در اندروید، توسطSquare توسعه یافته است.پیشتر در این مقاله به چگونگی و چرایی نشت حافظه پرداخته ایم. در این مقاله نیز به بررسی شناخت منبع نشت حافظه در برنامه، به کمک کتابخانه Leak Canary می پردازیم. کتابخانه Leak Canary به سادگی روی پروژه شما ست شده و موجب تشخیص دلیل نشت حافظه در برنامه مورد نظر خواهد شد. مثالی از چگونگی ایجاد نشت حافظه کدهای بسیاری منجر به نشت حافظه می گردند. اما یکی از متداول ترین آنها این است که درون...

پیاده سازی کتابخانه ExoPlayer در اندروید ۴ (۴)

کتابخانه exoplayer در اندروید
ساخت پلیر در اندروید با کتابخانه ExoPlayer ExoPlayer یک کتابخانه اندرویدی بسیار موفق است. در واقع برای پخش موسیقی یا ویدئو در یک پروژه اندرویدی دو گزینه وجود دارد: کتابخانه استاندارد مدیاپلیر که در اندروید SDK موجود است کتابخانه ExoPlayer برای آن دسته از خوانندگان که با ExoPlayer آشنایی ندارند باید بگویم که یک کتابخانه عالی را از دست داده اید. این کتابخانه یک نمونه فوق العاده قدرتمند از همه نظر، در زمینه ساخت مدیاپلیرهاست.  به کمک آن هم می توان موسیقی یا ویدئوهای آنلاین و هم موارد...

آموزش معماری MVVM در اندروید ۴ (۲۰)

پیاده سازی صفر تا صد معماری MVVM در اندروید
معماری MVVM چیست؟ معماری MVVM یکی از راه های کدنویسی تمیز است. پیشتر درباره معماری MVP در اندروید مطلبی منتشر نمودیم که یک پله بالاتر از MVC قرار داشت. MVC ساده ترین حالتی ست که هر برنامه نویسی در شروع کار همین معماری را پیاده می کند. در قدم بعدی با MVP می توانیم view را به کمک واسط ها به presenter متصل کنیم. همان طور که می بینید در هر معماری بگونه ای سعی شده  تا اجزای کد کمتر به یکدیگر وابسته باشند. بعد از این دو معماری به معماری MVVM می رسیم که نسبت به دو مورد قبلی در ماژوله کردن کد موفق تر عمل...

ساخت یک listener سفارشی در اندروید ۳٫۱ (۷)

ساخت listener در اندروید
چرا و چه موقع باید از listener استفاده کنیم؟ listener یا observer برای چک کردن وقوع یک رویداد در برنامه یک الگوی کارآمد و متداول به حساب می آید. در واقع اتفاقات زیادی وجود دارند که ما نمی توانیم زمان وقوع آنها را از قبل تعیین کنیم و به نحوی باید منتظر کنش کاربر باشیم تا متدی برای آن پیاده سازی نماییم. مثال ابتدایی که هر برنامه نویسی در اوایل کار استفاده کرده متغیرهای Boolean بوده که  بعنوان flag بکار گرفته است. مقدار flag با وقوع رویداد مورد نظر تغییر می کند. حالا با امکاناتی که interface ها در...

کتابخانه OkHttp در اندروید ۵ (۱)

کتابخانه OkHttp چیست؟ کتابخانه OkHttp یک پروژه متن باز است. طراحی شده تا بتواند یک Http Client بهینه باشد. کتابخانه OkHttp پرتکل SPDY را پشتیبانی می کند. این پرتکل پایه و اساس Http 2.0 ست. باعث می شود requestهای متعدد با هم از یک سوکت واحد استفاده کنند. آیا شما از okHttp یا کتابخانه هایی که با اهرم okHttp کار می کنند (مثل Retrofit) استفاده می کنید؟ آیا شما با خطاهایی از قبیل OutOfMemoryCrash روی برنامه اندرویدی خود مواجه شده اید؟ و دوست دارید در آینده از این گونه crash ها روی برنامه جلوگیری کنید؟ اگر جواب شما به...

معرفی پنج کتابخانه اندرویدی رایگان گرافیکی ۴ (۴)

پنج کتابخانه اندرویدی که طراح درون را بیدار می کنند! کتابخانه اندرویدی در زمینه گرافیک عصای دست بسیاری از برنامه نویسان است. چه برنامه نویس فرانت اند که به دنبال یادگیری بیشتر در این زمینه هست. چه برنامه نویس بک اند که قصد دارد با صرف کمترین زمان طراحی خوبی روی برنامه پیاده کند. در این مقاله به معرفی پنج نمونه رایگان از پروژه های UI/UX در Dribble می پردازیم. نحوه پیاده سازی این پنج کتابخانه اندرویدی در github موجود می باشد که لینک آنها را در اختیار شما قرار می دهیم. Fitness...

آموزش معماری MVP در اندروید ۳٫۵ (۲)

معماری MVP چیست؟ معماری MVP یکی از معماری های  مهم در اندروید می باشد که بیشتر برای ساخت رابط کاربری مورد استفاده قرار می گیرد. در برنامه نویسی اندروید، همواره با این مسئله رو به رو هستیم که اکتیویتی های اندروید به گونه ای هم با UI و هم با داده های برنامه در ارتباط ند. اما برنامه های اندرویدی باید مقیاس پذیر (scalable) باشند. یعنی سرور یا برنامه شما در برابر افزایش تعداد کاربر انعطاف پذیر و پاسخ گو باشد. البته عوامل دیگری مثل خوانایی کد، عدم وابستگی اجزا برنامه به همدیگر و... برای...

چگونه تبدیل به توسعه دهنده اندرویدی بهتری شویم؟ ۳٫۵ (۶)

هشت اشتباه رایج که یک توسعه دهنده اندرویدی ممکن است مرتکب شود توسعه دهنده اندروید برای اجرایی نهایی برنامه خود با تنوع گسترده ای درباره مواردی مثل سایز صفحه نمایش، تنظیمات سخت افزاری، معماری chip و ورژن های نرم افزاری مواجه می باشد. بنابراین عوامل زیادی می توانند منجر به شکست برنامه روی دیوایس های مختلف شوند. این مشکلات ممکن است، حتی برای یک توسعه دهنده اندروید حرفه ای بوجود بیاید. اما در این مقاله قصد داریم به رایج ترین اشتباهاتی که به سادگی قابل پیش گیری هستند می...

چگونه floating action button بسازیم؟ ۰ (۰)

پیاده سازی (floating action button (FAB به همراه انیمیشن آموزش امروز درباره پیاده سازی یک floating action button هست که با کلیک بر روی آن موارد بیشتری را نمایش می دهد. به این منظور ابتدا یک پروژه خالی بسازید. برای ساخت floating action button باید کتابخانه مربوطه یعنی support design را در gradle به پروژه اضافه کنیم. implementation 'com.android.support:design:28.0.0' در این پروژه کمی به data binding یا محصور سازی داده ها پرداخته می شود. به این ترتیب نیاز به استفاده از findViewById نداریم. یعنی xml در یک متغیر نگه داشته می شود و بعد از همان متغیر در...

استفاده از data binding در اندروید ۴٫۸ (۴)

پیاده سازی data binding در اندروید
Data Binding در اندروید پیاده سازی data binding در اندروید موضوع آموزش این قسمت از سری آموزش صفر تا صد اندروید می باشد . Data binding امکان ارتباط رابط کاربری با منطق و کلاس های model برنامه را فراهم می کند. با محصور سازی داده ها نیازی به استفاده از متد ()findViewById نیست. با این کار هم حجم کد کاهش می یابد. هم اجرای متد findViewById عمل زمان بری محسوب می شود. استفاده از data binding در برنامه های اندرویدی در واقع اندروید با وجود data binding(محصور سازی داده ها) یک ویژگی منحصر بفرد در اختیار ما قرار می دهد. با این امکان...