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

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

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

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

ادامه …

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

telegram

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

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

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

https://t.me/aoveissi

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

b

ادامه …

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

بحران نرم افزار چیست؟

بحران نرم افزار یا Software Crisis عبارتی است که در روزهای آغازین علوم کامپیوتر، برای نمایش پیچیدگی بالای ساخت برنامه های کاربردی و بهینه ی کامپیوتری در مدت زمان مشخص به کار می رفت. پیشرفت شگرف سخت افزار همراه با ضعف روش های تولید نرم افزار در کنترل پیچیدگی ساخت آن، بحران نرم افزار را به وجود آورد.

علائم بحران نرم افزار چیست؟

  • عدم بهره گیری کامل از قدرت سخت افزار
  • ناتوانی روش های تولید نرم افزار در پاسخگویی به افزایش تقاضا
  • هزینه های هنگفت تولید نرم افزار
  • عدم تحویل به موقع
  • عدم تامین نیازمندی های کاربر
  • کیفیت پایین و پایدار نبودن نرم افزار

ادامه …

چند روز پیش یکی از دوستان من را با کانال DevTips در یوتیوب آشنا کرد. این کانال متعلق به یکی از برنامه نویسان گوگل به نام Travis Neilson است. اولین فیلمی که از این کانال دیدم مربوط به کارهایی هست که ایشان در یک روز معمولی انجام می دهد. اگر برایتان جالب است بدانید یک برنامه نویس گوگل در یک روز چه کارهایی انجام می دهد، حتما این فیلم را مشاهده کنید.

به صورت اتفاقی در صفحه ی اصلی این کانال، فیلم دیگری توجهم را جلب کرد. آقای Travis این فیلم را در پاسخ به نظر یک کاربر ساخته است که از ایشان درخواست کرده بود تا در رابطه با پیداکردن شغل در حوزه ی کامپیوتر نکاتی را بیان کنند. به نظر من یکی از بهترین فیلم هایی است که برنامه نویسان و کسانی که در حوزه ی نرم افزار کار می کنند باید آن را ببینند. مدت زمان فیلم ۸دقیقه است و به لطف دوست دیگری می توانید آن را به همراه زیرنویس فارسی مشاهده کنید. ادامه …

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

مهمترین دلیل وسوسه ای که همواره برنامه نویسان را به سمت کدنویسی بیشتر هدایت می کند، حس لذت بردن از کدنویسی است و تقریبا همه ی برنامه نویسان در این حس مشترک هستند. البته عوامل دیگر مانند اینکه هر برنامه نویس خود را بهترین می داند و فکر می کند کسی بهتر از او نمی تواند کدنویسی کند هم تاثیرگذار است.

در گذشته برنامه ها بسیار ساده تر از زمان حال بودند و دو برنامه نویس با کمک هم سیستم عامل می نوشتند! اما روز به روز به پیچیدگی های برنامه ها افزوده شده و دیگر یک برنامه نویس نمی تواند همه ی دانش های موجود را یاد گرفته و به تنهایی پروژه های بزرگ را انجام دهد. مهمترین نکته که باید به آن دقت شود این است که «به ما برای کدنویسی و یا لذت بردن از کدنویسی پولی داده نمی شود، بلکه برای حل مشکلات مشتری با استفاده از یک نرم افزار پول می گیریم»

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