آموزش الگوی طراحی repository 1.5 (2)

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

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

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

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

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

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

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

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

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

ارتباط بین فرگمنت ها با استفاده از ViewModel 1 (1)

پیاده سازی ارتباط بین فرگمنت ها با استفاده از ViewModel ارتباط بین فرگمنت ها در غالب برنامه ها ضروری ست. برای این منظور روش های متعددی وجود دارد. یکی از این روش ها استفاده از ViewModel است. امروز به پیاده سازی ارتباط بین فرگمنت ها با استفاده از ViewModel می پردازیم. توجه داشته باشید که ارتباط بین فرگمنت ها با استفاده از ViewModel، روش پیشنهادی گوگل می باشد. در این روش، یک نمونه از ViewModel که مطعلق به اکتیویتی ست، می سازیم. و این object بین فرگمنت ها به اشتراک گذاشته می شود. اما VieeModel چیست؟ در واقع...

معماری تک اکتیویتی در navigation 4 (1)

معماری تک اکتیویتی
مدیریت جریان پیچیده ای از navigation با معماری تک اکتیویتی انواع معماری ها برای مدیریت navigation یک برنامه، موضوعی بود که در مقاله های پیشین بلاگ بررسی کردیم. به طور خاص مزایا و معایب معماری تک اکتیویتی را بررسی نمودیم. در این مقاله قصد داریم تا معماری تک اکتیوتی برای مدیریت flow یک برنامه که درگیر navigaion و قسمت های مختلف می باشد، را در غالب مثالی تشریح کنیم. فرض کنید برنامه ی مورد نظر یک سیستم برای ورود و اعتبارسنجی کاربران دارد. پس از رد کردن این مرحله و ورود کاربر به برنامه، بر...

الگوی navigation با فرگمنت ها ۴ (۲)

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

درک LiveData 4 (4)

درک livedata
چرا LiveData؟ امروزه component های معماری برای توسعه دهندگان اندروید متداول هستند. برای مدت زیادی ست که هر کس نوعی معماری،  بر حسب نیاز پروژه خود انتخاب می کند. یکی از مهم ترین component ها در این میان LiveData می باشد. در این مقاله درباره اهمیت و چگونگی بکارگیری LiveData بحث می شود. مشکل به یاد دارید پیش از component های معماری و RxJava چگونه نتیجه یک بخش از برنامه یا callback ها را به UI thread اطلاع می دادیم؟ در درجه اول، به کمک interface ها یک مثال ساده از برنامه ای که با معماری MVP توسعه یافته، بررسی می نماییم....

آموزش معماری MVVM در اندروید ۳٫۸ (۱۶)

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