تبدیل view به bitmap در اندروید ۳ (۴)

چگونه در اندروید یک view را به bitmap تبدیل کنیم؟ تبدیل view به bitmap در بسیاری از برنامه های اندرویدی می تواند کاربرد داشته باشد. گاهی نیاز به استفاده خاصی از view داریم که فقط با تبدیل view به bitmap ممکن می شود. در چه مواردی؟ تا زمانی که به آن نیاز پیدا نکنید نمی توان گفت. اما شاید به عنوان یک نمونه کلی بتوان به حالتی اشاره کرد که کاربر می تواند در برنامه view های مختلف را شخصی سازی کند و بتواند آنها را به اشتراک گذارد. مثل شخصی سازی تم برنامه و ساخت یک نمای کلی از آن. برای چنین کاری به تبدیل...

آپلود فایل بر روی سرور در یک پروژه اندرویدی ۱ (۱)

آپلود فایل بر روی سرور در اندروید در این مقاله به آموزش آپلود فایل روی سرور با استفاده از retrofit می پردازیم. آپلود فایل امکانی ست که در بسیاری برنامه ها وجود دارد. آخرین راه حل موجود برای ایجاد این امکان موضوع این مقاله می باشد. در این آموزش با استفاده از Rxjava و Retrofit با معماری MVP آپلود فایل در برنامه اندرویدی را عملی می سازیم. این آموزش از مجموعه آموزش های صفر تا صد اندرویدی ست. نیازمندی های این آموزش آشنایی با بکارگیری دوربین در پروژه اندرویدی آشنایی با FileProvider چگونگی...

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

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

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

چگونه نتیجه هر فرگمنت را در معماری تک اکتیویتی دریافت کنیم؟ در مقاله های پیشین مزایای استفاده از معماری تک اکتیویتی و پیاده سازی آن را بررسی نموده ایم. برنامه نویسان زیادی استفاده از معماری تک اکتیویتی را توصیه می کنند. در این مقاله می خواهیم یک مشکل را حین کار با معماری تک اکتیویتی بررسی کنیم. برای فرگمنت ها متدی مثل 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 : در کاتلین این استثنا می تواند مدیریت شود اما...

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

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

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

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