کار با فرگمنت ها در معماری تک اکتیویتی

چگونه نتیجه هر فرگمنت را در معماری تک اکتیویتی دریافت کنیم؟ در مقاله های پیشین مزایای استفاده از معماری تک اکتیویتی و پیاده سازی آن را بررسی نموده ایم. برنامه نویسان زیادی استفاده از معماری تک اکتیویتی را توصیه می کنند. در این مقاله می خواهیم یک مشکل را حین کار با معماری تک اکتیویتی بررسی کنیم. برای فرگمنت ها متدی مثل startActivityResult وجود ندارد. اگر با startActivityForResult ناآشنا هستید، متدی ست که با یک request code اجازه به جریان انداختن اکتیویتی را ایجاد می کند. و با تمام شدن پروسه اجرای...

کتابخانه Glide در اندروید

کار با کتابخانه Glide در اندروید کتابخانه Glide برای لود نمودن تصاویر استفاده می شود. این کتابخانه توسط خود گوگل توصیه شده است. Glide علاوه بر پشتیبانی از gif و لود تصاویر امکان cache نمودن آنها را فراهم می کند. قبل از Glide برنامه نویسان مجبور به نوشتن کدهای زیادی در برنامه به این منظور بودند. باید تمام پروسه لود شدن ، نمایش و cache نمودن تصویر را مدیریت می کردند. اما به کمک Glide با وجود چند خط ساده در کد تمامی این پروسه ها به خوبی به جریان می افتد. مزایای کتابخانه Glide به سادگی هر چه تمام...

مقایسه serialization و parcelable 2.3 (3)

SERIALIZATION یا PARCELABLE ؟ معمولا در شرایط مختلفی از برنامه نیاز داریم تا یک object را بین اکتیویتی ها جابجا کنیم. برای این کار یا از serialization یا از parcelable استفاده می کنیم. اما باید بدانیم که parcelable از serialization سریع تر عمل می کند. به همین دلیل به عنوان راه حلی مطلوب برای جابجایی یک object بین کلاس ها محسوب می شود. پیاده سازی serialization و parcelable Serializable یک marker interface می باشد که با override کردن متدهای آن به نحوی که لازم است در برنامه کار می کند. اما این فرآیند آهسته است چرا که لزوما تمام متدها کاربر ندارند...

افزایش عمر باتری هنگام استفاده از Retrofit 2

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

پیاده سازی RecyclerView با ViewBinding 1 (2)

حذف findViewById در RecyclerView با ViewBinding ساده ترین تعریف از dataBinding حذف مستقیم متد ()findViewById ست. اما چرا این عملکرد باارزش است؟ چون عملیات findViewById برای سیستم هزینه بر می باشد. پیش از این در مقاله ای به آشنایی و چگونگی بکارگیری dataBinding در پروژه اندرویدی پرداخته ایم. اکثر برنامه ها با RecyclerView درگیر می شوند. در این آموزش قصد داریم به صورت قدم به قدم RecyclerView با ViewBinding را پیاده سازیم. تفاوت استفاده از findViewById و ViewBinding پیشگیری از به وجود آمدن Null Exception : در کاتلین این استثنا می تواند مدیریت شود اما...

ورود به حساب کاربری گوگل با استفاده از فایربیس ۳ (۲)

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

چرا از معماری تک اکتیویتی استفاده کنیم؟ ۳ (۱)

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

چرا از تزریق وابستگی در اندروید استفاده می کنیم؟ ۱ (۲)

استفاده از تزریق وابستگی در اندروید چه فایده ای دارد؟ فارغ از اینکه برای پیاده سازی پروژه از چه تکنولوژی استفاده می کنیم. نیاز داریم تزریق وابستگی در اندروید را پیاده سازیم. چنین عملکردی چند مزیت دارد : قابلیت استفاده مجدد از کد امکان ایجاد تغییر به شکل ساده تر تست آسان کد جلوگیری از کثیف شدن معماری برنامه برای درک بهتر تزریق وابستگی در اندروید یا dependency injection هر دو کلمه این مفهوم را بررسی می کنیم. وابستگی : در واقع یک object است که به کلاسی متکی ست. تزریق : تکنیکی...

بهینه سازی حافظه و پرفورمنس در برنامه نویسی اندروید

مدیریت حافظه و پرفورمنس در اندروید در این مقاله به بررسی چگونگی استفاده بهینه از حافظه و پرفورمنس در پروسه ساخت یک برنامه اندرویدی می پردازیم. اما چرا باید به چگونگی مصرف حافظه و پرفورمنس برنامه دقت کنیم؟ دیوایس های اندرویدی در مقایسه با کامپیوترها قدرت کمتری دارند. پس با وجود چنین محدودیتی باید استفاده از حافظه را تا حد ممکن بهینه سازیم. خصوصا در اندرویدهای نسخه 5.0 به پایین تا حد ممکن باید از رهاسازی حافظه با Garbage Collector جلوگیری نماییم. چرا که منجر به فریز شدن دیوایس می...

معرفی سورس بازی arcade در اندروید

معرفی چهار سورس بازی arcade در اندروید در دسته بازی arcade محدودیت بازیکن امتیاز یا تعداد سکه های موجود است. یعنی بازیکن برای رفتن به هر مرحله باید حداقل امتیازی داشته باشد. یا با از دست دادن امتیاز می بازد. بازی arcade ژانرهای متنوعی را شامل می شود. بازی arcade می تواند در ژانرهای جنگی، فضایی، هیجانی و ... باشد. اما بطور کلی شاخصه این دسته از بازی ها فهم آسان مراحل برای بازیکن است. تمایز دیگر بازی arcade از سایر دسته بندی ها، دنیای فانتزی حاکم بر بازی ست. معرفی سورس بازی Space Rocket گرافیک...