شخصا برام درست کردن رابط کاربری خوشگل خیلی خیلی سخت هست. جدای اینکه بهترین کار اینه کسی باشه و بهش بگید براتون طرح کار رو بکشه😃 بعضی وقتا مجبورید خودتون اینکارو بکنید. در این مواقع یکی از راه‌ها اینه که از کارهای بقیه الگو بگیرید. امروز لیستی از سایت‌هایی که توی این راه بهتون کمک میکنند رو معرفی میکنم. ادامه …

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

گوگل توی همایش IO امسال ORM خودشو به اسم Room برای اندروید معرفی کرد. این ORM یه قسمت از پازل Architecture Components هست که شامل LiveData , ViewModel و … میشه. در ادامه نحوه‌ی استفاده شو توضیح میدم. ادامه …

آدم هر چقدر از مظلومیت برنامه‌نویسای اندروید بگه، کم گفته. حداقل یک روز کامل درگیر این بودم که چرا اکتیویتی پخش کننده‌ی ویدیو توو برنامه‌ام، موقع چرخش گوشی دوباره از اول ساخته میشه😐.  وقتی مشکل رو حل کردم، به سه دلیل تصمیم گرفتم که داستانش رو کامل بنویسم: ۱- با گفتنِ رنجی که کشیدم، آروم‌تر بشم😃 ۲- شاید به برنامه‌نویس‌های تازه‌کار کمک کنه که در مواجهه با مشکلات چیکار کنند ۳- اگر در آینده کسی همین مشکل منو داشت، بتونه با خوندن این پست درستش کنه.

ادامه …

همینطور که از عنوان پست معلومه، اسم جنریتور حِلما هست و نسخه‌ی ۰٫۰٫۱ با نام generator-helma-mvp در npm منتشر شده. پروژه opensource هست و سورسش رو هم توی گیت‌هابم گذاشتم:

https://github.com/abbas-oveissi/generator-helma-mvp

اول تصمیمم این بود که تا مدت زیادی خودم استفاده کنم و بعد که دیگه هیچ مشکلی نداشت، منتشرش کنم. ولی بعد نظرم عوض شد، چون الان اگه کسی دوست داشت میتونه از روی سورس برای خودش جنریتور دیگه‌ای درست کنه و یا حتی توی همین پروژه همکاری کنه. مورد دوم رو در بخش همکاری بیشتر توضیح میدم. ادامه …

وقتی برنامه‌نویسی اندروید رو تازه شروع کرده بودم، برای انجام پروژه‌ها از گزینه‌ی new project اندروید استودیو استفاده می‌کردم. بعد از مدتی احساس کردم که اینجوری زمان زیادی رو الکی هدر میدم، چون موقع شروع هر پروژه باید کارهای تکراری زیادی مثل اضافه کردن dependencyها، تغییر فایل‌ build.gradle، کپی کردن کلاس‌های کمکی مثل تاریخ شمسی و … رو انجام می‌دادم.

برای حل این مشکل، یک پروژه‌ ساختم و همه‌ی کارهای مقدماتی رو داخلش انجام دادم. در ادامه از این پروژه به عنوان پایه‌ی پروژه‌های جدید بعدی استفاده می‌کردم. یعنی ازش‌ یک نسخه کپی می‌گرفتم و اسامی داخل پروژه مثل package name رو عوض می‌کردم. این روش دو تا ضعف داشت:

  1. خود این راه‌حل زمانگیر بود و باید اسامی رو همه جای پروژه تغییر داد.
  2. گاهی پیش میاد یکی دو جا از دست آدم در بره و همه‌ی اسامی درست تغییر نکنند که باعث میشه اپ کرش کنه و نیاز به عیب‌یابی داشته باشه.

ادامه …

بالاخره بعد از وقفه‌ای که به دلیل کارهای دانشگاه پیش اومد، تونستم نسخه‌ی آزمایشی وب‌سرویس فیلم‌ها رو آماده کنم. ایده‌ی ساخت این وب‌سرویس زمانی به ذهنم رسید که خودم برای ساخت نمونه کد ارتباط با وب‌سرویس در گیت‌هاب به مشکلات زیادی خوردم و وب‌سرویس جامعی پیدا نمی‌کردم. بعضی از وب‌سرویس‌ها یا ما رو تحریم کردن یا اینکه فیلتر شدن، بعضی‌هاشون استاندارد وب‌سرویس‌های Rest رو رعایت نکرده بودن، خیلی‌هاشون هم به api_key نیاز داشتند که این قضیه نمونه کد آموزشی رو برای افراد مبتدی پیچیده‌ میکنه. البته من برنامه‌نویس بک‌اند نیستم و برای رفع نیاز خودم این پروژه رو شروع کردم، اما بعدا تصمیم گرفتم عمومیش کنم تا اگه کسی مثل من مشکل داشت، بتونه ازش استفاده کنه. در ضمن برای کسایی که میخوان ارتباط با وب‌سرویس رو یاد بگیرن میتونه خیلی مفید باشه. ادامه …

telegram

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

تقریبا ۲ ماهی هست که کانال رو درست کردم و با توجه به زمانی که برای نوشتن هر پیام مجبورم بذارم، نمیدونم تا کِی می‌تونم ارسال پیام بصورت متناوب رو ادامه بدم. در این مدت تلاش کردم حداقل هر دو سه روز یک پیام جدید در کانال بفرستم. امیدوارم که این کانال مفید باشه و باعث افزایش اطلاعات خودم و افرادی عضو داخلش بشه.

برای عضویت روی لینک زیر کلیک کنید.

https://t.me/aoveissi

تقریبا ۶ ماهی از نوشتن قسمت قبلی این پست می‌گذره. تو این مدت مثال‌های مختلفی از پیاده سازی معماری MVP توی اندروید رو بررسی کردم و با دیدن روش بقیه‌ی دولوپرها تغییراتی رو روی مثال MVPم در گیت هاب دادم. توی این پست به صورت خلاصه تغییرات و دلیل‌هاش رو براتون توضیح میدم. اینجوری هم شما می‌تونید راحت‌تر سورس پروژه رو بررسی کنید و هم اگه نظری در مورد دلیل تصیمیماتم داشتید، میتونید توی نظرات بنویسید.
اولین تغییری که با باز کردن سورس پروژه حتما متوجه می‌شید، اضافه شدن پکیچ‌های جدید به اسم di و interactors و pojos به پروژه هست. به ترتیب دلیل اضافه شدن و کارشون رو میگم. ادامه …

بعد از صحبتی که در مورد یه سری لینک مفید با آقای طحانی داشتم، موضوع این پست به ذهنم رسید. وقتی که از بیشتر افراد میپرسی “چرا لازمه بقیه‌ی دولوپرها رو بشناسیم؟” جواب میدن چون باعث میشه بتونیم پروژه‌های بیشتری بگیریم و درآمدمون رو افزایش بدیم.  در این مورد شکی نیست، اما من توی این پست میخوام از بُعد دیگه‌ای به این سوال جواب بدم. میخوام در مورد تاثیر این شناخت روی بالا بردن دانش برنامه‌نویسی حرف بزنم و از راه‌هایی که خودم برای آشنایی با بقیه استفاده میکنم صحبت کنم.

b

ادامه …