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

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

ایجاد تم تیره در اندروید ۱۰ ۱ (۲)

چگونه در اندروید برنامه ای با تم تیره بسازیم؟ بلاخره در اندروید 10 از دارک تم یا تم تیره برای UI رونمایی شد. امکان جذابی که همیشه جای خالی آن در UI دیده می شد. البته پشتیبانی از تم تیره امکانی بود که در نسخه های دیگر هم پشتیبانی می شد. اما در اندروید 10 گزینه system-level به تنظیمات اصلی دیوایس اندرویدی افزوده شد. با وجود این قابلیت می توان می توان تم تیره را بجز برنامه های مشخص، روی تمام UI دیوایس پیاده نمود. در این مقاله به پیاده سازی دارک تم روی یک برنامه اندرویدی به زبان کاتلین و در...

معرفی سورس برنامه های جانبی واتساپ

بررسی پنج سورس اندرویدی برنامه های جانبی واتساپ قابلیت های واتساپ فرصت ساخت برنامه های جانبی و کاربردی متعددی را فراهم آورده است. قابلیت استفاده از استیکر، تماس تصویری، ایجاد استوری یا status از جمله قابلیت هایی بوده که توانسته زمینه برنامه های جانبی را برای واتساپ فراهم آورد. در این مقاله به معرفی پنج سورس اندرویدی با موضوع برنامه های جانبی واتساپ خواهیم پرداخت.   معرفی سورس Video Call Recorder For Whatsapp تصویربرداری از صفحه نمایش دیوایس هنگام تماس تصویری در واتساپ بدون...

معرفی سورس برنامه های ضبط تماس ۳ (۱)

بررسی چهار سورس اندرویدی ضبط تماس ضبط تماس های تلفنی ورودی و خروجی اندرویدی می تواند یکی از ضرورت های هر گوشی همراه باشد. سورس برنامه های زیادی برای ضبط تماس با رابط کاربری های گوناگون وجود دارند. برنامه های ضبط تماس تماس های ورودی و خروجی تلفن کاربر را در حافظه ذخیره می کنند. در این مقاله به معرفی چهار سورس اندرویدی ضبط تماس می پردازیم.  معرفی سورس QRecorder ضبط تماس و صدا UI زیبا و راحت کاربری مطلوب دارای امکان استفاده از رمز برای دسترسی به صداهای ضبط شده پرفورمنس...

آموزش الگوی طراحی 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 : در کاتلین این استثنا می تواند مدیریت شود اما...