بایگانی برچسب: s

chapter-28-android-MVP-Cover

آموزش اندروید-فصل ۲۸-۳: تست برنامه‌های MVP

ما ویژگی‌های الگوی معماری MVP را در بخش اول مطلب آموزش  دادیم و در بخش دوم هم این الگو را در برنامه خودمان پیاده‌سازی کردیم. حالا وقت آن است که کمی بیشتر به اعماق برویم. در این آموزش بر روی موضوعات زیر تمرکز می‌کنیم:

  • آماده‌سازی محیط تست برنامه و نوشتن تست واحد (Unit Test) برای کلاس‌های MVP
  • پیاده‌سازی MVP‌ به همراه تزریق وابستگی با استفاده از Dagger2
  • و در اخر درباره مشکلات متداول در اندروید که باید از آن‌ها اجتناب کرد صحبت خواهیم کرد.

ادامه مطلب

chapter-28-android-MVP-Cover

آموزش اندروید-فصل ۲۸-۲: معماری MVP در برنامه‌های اندروید

در بخش قبلی درباره معماری MVP و تفاوت آن با معماری پیش‌فرض اندروید و MVC صحبت کردیم. در این بخش می‌خواهیم درباره پیاده‌سازی معماری MVP در پروژه‌های اندروید صحبت کنیم.

ادامه مطلب

chapter-28-android-MVP-Cover

آموزش اندروید-فصل ۲۸-۱: مقدمه معماری MVP در برنامه‌های اندروید

این مطلب ترجمه‌ای است از مطلب «تین مگالی» که در اینجا منتشر شده است.

وقتی برنامه پیچیده‌ای را توسعه می‌دهیم، معمولاً با چالش‌هایی روبرو می‌شویم که پیش از این خیلی‌ها با آن‌ها برخورد کرده‌اند و حالا هر کدام آن‌ها راه‌حل‌هایی بسیار زیبا دارند. به این راه‌حل‌ها «الگو» می‌گویند. ما معمولاً از الگوهای طراحی و الگوهای معماری می‌شنویم. این الگوها توسعه را آسان می‌کنند و بهتر است که ما هم از آن‌ها استفاده کنیم. البته هر زمان که به استفاده از آن‌ها نیاز باشد.

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

ادامه مطلب

android-image-library-Glide

آموزش اندروید-فصل ۲۷-۶: Glide چیست و چطور کار می‌کند

مقدمه

در ادامه مباحث مرتبط با اتصال برنامه‌های اندروید به اینترنت و وب، این بار به سراغ عکس‌ها و تصاویر می‌رویم.

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

همانطور که می‌دانید نظر من و بسیاری از برنامه‌نویسان اندروید این است که به جای درگیر شدن در پیاده‌سازی جزئیات این فرایندهای پیچیده، بهتر است از کتابخانه‌های موجود استفاده کنیم. برای دانلود و دستکاری عکس‌ها در اندروید کتابخانه‌های زیادی وجود دارد که معروف‌ترین آن‌ها Picasso و Glide هستند. در این مطلب نحوه کار کردن با Glide را به شما آموزش خواهم داد.

ادامه مطلب

android-internet-connection-explained

آموزش اندروید-فصل ۲۷-۳: نکات پیشرفته OkHttp

در دو نوشته قبلی (اینجا و اینجا) به طور خیلی ساده نحوه کار کردن با OkHttp برای دریافت و ارسال اطلاعات از/به اینترنت گفتیم. در این مطلب کمی بیشتر با امکانات OkHttp کار می‌کنیم. امکاناتی که تقریباً همه جا به آن‌ها نیاز خواهیم داشت.

ادامه مطلب

What-2-Years-of-Android-Development-Have-Taught-Me-the-Hard-Way

آنچه بعد از دو سال برنامه‌نویسی اندروید آموختم-قسمت سوم

در قسمت اول و دوم این مطلب ۱۰ تا از توصیه‌های Aritra Roy را با هم مرور کردیم. در این مطلب بخش دیگری از توصیه‌های وی را با هم می‌خوانیم.

۱۱- با تنظیم بیلد گریدل پنج ساعت در هفته در وقت صرفه‌جویی کن

بسیار محتمل است که از اندروید استودیو و گریدل برای توسعه برنامه‌های اندروید استفاده کنی. گریدل عالی ولی کند است و وقتی پروژه کمی بزرگ‌تر شود کندتر هم می‌شود.

ساعت‌های بی شماری را به باد می‌آورم که بیکار می‌نشسم تا بیلد گریدل تمام شود. در زمان‌های شلوغی کار به راحتی یک ساعت از وقت من صرف بیلدهای گریدل می‌شود و این یعنی ۵ ساعت در هفته و ۲۰ ساعت در ماه.

اما راه‌هایی هست تا گریدل را سریع‌تر کنی.

برای این کار اینجا و اینجا را ببین. با استفاده از این رهنمودها و بهینه‌سازی مناسب، زمان بیلد من از چهار دقیقه به حدود ۳۰ ثانیه رسید.

ادامه مطلب

What-2-Years-of-Android-Development-Have-Taught-Me-the-Hard-Way

آنچه بعد از دو سال برنامه‌نویسی اندروید آموختم-قسمت دوم

در قسمت قبل پنج توصیه Aritra Roy را خواندید. در این مطلب ادامه مطلب را می‌خوانیم:

۶- از معماری مناسب استفاده کن

همیشه از خودت به خاطر انتخاب یک معماری مناسب در اول کار، سپاسگزار خواهی بود. می‌توانی از MVP یا همان Model-View-Presenter استفاده کنی که برنامه را به لایه‌های متفاوتی تجزیه می‌کند تا مدیریت آن ساده‌تر باشد. این باعث می‌شود تا انعطاف کد بالاتر برود و زمان نگهداری آن کاهش یابد.

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

جایزه: حتما این و این را ببینید. اینها کمک بزرگی به پیاده‌سازی MVP در پروژه به شما می‌کنند.

ادامه مطلب

farayad-cover

صفر تا صد: بازنویسی کدباز اپ فرایاد

اپ «فرایاد» را حدود ۳ سال قبل برای کارهای شخصی خودم نوشتم و بعد تصمیم گرفتم آن را در کافه بازار هم منتشر کنم. ابتدا کافه بازار به دلیل (احمقانه) این که برنامه مشابهی در کافه بازار وجود دارد از انتشار آن سر باز زد و من هم از انتشار آن منصرف شدم. بعد از چند وقت تصمیم گرفتم یک بازنگری کلی در برنامه انجام بدهم. این بار با این که چندین و چند برنامه یادآور یا Reminder در کافه‌بازار وجود داشت، کافه بازار برنامه را پذیرفت! برنامه توانست نظر مخاطبان اندک خودش را تأمین کند و امتیازش در کافه بازار بالاتر از ۴ شد و حدود ۴۰۰ نظر اغلب مثبت از کاربران دریافت کرد.

حالا تصمیم دارم این برنامه را بازنویسی کنم و با اعمال نظر کاربران، بخش‌هایی را به برنامه اضافه کنم. اما چرا این موضوع را در اسمارت‌لب و با شما خوانندگان اسمارت‌لب مطرح کردم؟ چون می‌خواهم کل این فرایند بازنویسی را با هم قدم به قدم طی کنیم! از صفر تا صد این بازنویسی را با هم خواهیم بود و در تمام مراحل کار کد برنامه را در گیت‌هاب (یا جایی مشابه) منتشر خواهم کرد!

تغییرات برنامه بنیادین خواهد بود! چند هفته‌ای درگیر کار خواهیم شد و امیدوارم در انتهای کار هم برنامه خوبی نوشته بشود و هم همگی با هم چیزهای جدیدی یاد بگیریم!

اما اپ فرایاد چه تغییراتی خواهد کرد؟ مهم‌ترین تغییر برنامه این خواهد بود که برنامه به صورت client/server خواهد شد و اطلاعات کاربران را سایت اختصاصی‌اش ذخیره خواهد کرد. رابط کاربری برنامه هم دو زبانه (یا شاید چند زبانه) خواهد شد. در انتها هم برنامه را علاوه بر کافه‌بازار در گوگل پلی هم منتشر خواهم کرد!

اگر نمی‌دانید فرایاد چیست، فرایاد را از کافه بازار دانلود کنید و توضیحات آن را بخوانید.

سغر هیجان انگیزی خواهد بود! خودم که برای شروع آن لحظه‌شماری می‌کنم!

ch23-part-1-Android-Database-sqlite-cover

آموزش اندروید-فصل ۲۶: پایگاه داده در اندروید (قسمت چهارم)

در سه مطلب قبلی (اینجا و اینجا و اینجا) درباره دیتابیس یا پایگاه داده در اندروید نوشتم. در این مطلب می‌خواهم درباره جنبه‌های پیشرفته‌تری از پایگاه داده صحبت کنم. برای کار همان مثال قبلی که درباره Person بود را ادامه می‌دهم. البته همزمان با امکانات پیشرفته‌تری از اندروید و لیست ویو هم آشنا خواهید شد.

ادامه مطلب

android-weekly-1

هفته‌نامه اسمارت لب ۲#

با دومین هفته‌نامه اسمارت‌لب در خدمت شما هستیم. این هفته‌نامه استثنائا با بخش «درگذشتگان» شروع می‌شود. در هفته‌ای که گذشت چندین و چند درگذشته داشتیم که البته مطالعه علت فوت آن‌ها می‌تواند درس‌های مهمی برای ما داشته باشد!

ادامه مطلب