هنوز یه هفته از زلزله‌ی قبلی نگذشته که دوباره یک ساعت پیش یه زلزله‌ی ۴.۲ ریشتری اومد. اومدن زلزله به آدم استرس و نگرانی میده، ولی بدتر از خود زلزله این صحبت‌هایی هست که بعضیا به استناد این کانال پیش‌بینی زلزله (@pishbiniezelzele21) میکنند. هفته‌ی پیش در مورد این کانال زیاد صحبت میشد اما اصلا فکرنمیکردم موضوع دنباله‌داری باشه و مطمئن بودم که حتما توسط پلیس دستگیر میشه و کانال رو مسدود میکنند. حالا نه تنها کانالش مسدود نشده، حتی ۱۰۰هزار نفر به عضو‌هاش اضافه شدن!!!!!

ادعای پیش‌بینی زلزله

صاحب کانال آقای علی اصغر برهمند هست، ایشون ادعا میکنند اولین کانال پیش بینی علمی زلزله رو دارند که از طریق دریافت‌ اطلاعات ماهواره‌ای ومحاسبات ریاضی وتغییرات تکتونیکی زمین! میتونند با دقت ۷۰ درصد زلزله رو پیش‌بینی کنند. البته من که کانالشون رو بررسی میکردم فقط مختص به ایران نیس و زلزله‌های ایتالیا یا جاهای دیگه رو هم پیش‌بینی میکنند. توی کانالشون گفتند که اگر بهش کمک کنند، دقت پیش‌بینیشو به ۸۵ درصد میرسونه! ادامه …

سایت یوتیوب، یکی از منابع مهم یادگیری برنامه‌نویسی هس! بطور مثال توی پست “منابع آموزشی برای افزایش مهارت در برنامه‌نویسی اندروید” در مورد این صحبت کردم که میشه از طریق یوتیوب به ویدئو‌ی کنفرانس‌های اندروید دسترسی داشت. بخاطر اینکه بعضی از دوستان توی دیدن ویدئو‌ها مشکل داشتند، یه پیام توی کانال تلگرام نوشتم و روش‌هایی که برای دانلود از یوتیوب استفاده میکنم رو معرفی کردم. بعد این پیام، تعدادی از دوستان هم روش‌های دیگه‌ای رو معرفی کردند که بعضی‌هاش خیلی خوب بودند. در ادامه میتونید این روش‌هارو ببینید. (ترتیبشون دلیل خاصی نداره و همه رو چک کنید تا روشی که باهاش راحت‌ترید رو پیدا کنید) ادامه …

در پست قبلی در مورد این صحبت کردیم که با چه رویکرد‌هایی میشه سورس یک اپلیکیشن رو بررسی کرد. اولین اپلیکیشنی که برای بررسی انتخاب شده اسمش کیک‌استارتر هست. اگر تا حالا اسم کیک‌ستارتر رو نشنیدید، ویکی پدیا فارسی در موردش اینجوری توضیح میده:

کیک‌استارتر  (به انگلیسی: Kickstarter)، شرکتی آمریکایی و عام‌المنفعه برای کمک به پروژه‌های نوآورانه در زندگی بشر است که از استارت‌آپ‌هایی با ایده‌های نوین و خلاقانه استقبال می‌کند. ایده‌های جدید در همه زمینه‌ها از فناوری گرفته تا آشپزی در وب‌سایت این شرکت برای جذب سرمایه عمومی تحت پوشش قرار می‌گیرد.

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

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

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

ادامه …

در رابطه با فواید خوندن سورس پروژه‌هایی (میتونه خروجیش اپلیکیشن باشه یا کتابخونه) که توسط افراد دیگه نوشته شده مقاله‌های زیادی توی اینترنت وجود داره و لازم به صحبت بیشتر نیست. فقط اگر بخوام تجربه شخصی خودمو بگم، فکرکنم در حدود ۶۰ ۷۰درصد چیزهایی که بلدم رو با خوندن سورس‌ها یاد گرفتم. مهمترین بهونه‌ای که بعضی برنامه‌نویسا میارن تا اینکار پرفایده رو انجام ندن، اینه که میگن هنوز دانششون برای اینکار کم هس. در صورتی که خب بدیهی هست مثلاً اگر منم سورس اپلیکیشن تلگرام رو بررسی میکنم قطعاً کلی از بخش‌هاشو متوجه نمیشم و هیچ‌وقت هم هدفم این نیست ۱۰۰درصد یه پروژه رو متوجه بشم. سورس‌هارو میشه با دو رویکرد زیر بررسی کرد. ادامه …

برخلاف سری قبلی که خیلی طول کشید تا نسخه‌ی جدیدی از حِلما منتشر بشه، ایندفعه توی کمتر از یک هفته نسخه‌ی ۰٫۲٫۰ هم منتشر شد. دلیلش اینه که در نسخه‌ی قبلی، داخل پروژه‌ اندرویدی که حِلما تولید میکرد از قابلیت‌های آخرین نسخه‌ی کتابخونه‌‌ی دگر۲ (نسخه‌ی ۲.۱۱) استفاده نمیشد و نیاز بود تا حِلما به‌روز بشه. مهمترین تغییر این نسخه‌ی حلما استفاده از ماژول اندروید کتابخونه دگر هست که شکل تزریق وابستگی‌ها به اکتیویتی و فرگمنت رو کاملا عوض میکنه. در ادامه میتونید لیست تغییرات جدید رو ببینید. ادامه …

اگر پروژه‌هاتون رو براساس الگوی معماری MVP درست میکنید، احتمالا از ساخت فایل‌های اضافه برای هر اکتیویتی یا فرگمنت خسته شدید. اینجاس جنریتور میتونه کلی از کارتون کم کنه! و این وظیفه رو به عهده بگیره. خودم از وقتی که نسخه‌ی خیلی اولیه جنریتور رو منتشر کردم، ازش استفاده میکنم. مزیت جنریتور در ساخت فایل‌های مرتبط با MVP و … نسبت به روش‌های دیگه اینه هم سریع‌تر هست و هم اینکه مثل روش کپی پیست باگ تولید نمیکنه (مثلا پیش نمیاد یادتون بره یه فیلد رو rename کنید).

توی این مدت یه سری مشکلات داخلش پیدا کردم. بین پروژه‌ها دو روزی فرصت شد تا برای بهبود و توسعه‌اش وقت بذارم. البته مهمترین مشکل نسخه‌ی قبل نداشتن راهنما برای استفاده بود. در ادامه تغییرات جدید و نحوه‌ی استفاده از جنریتور رو براتون توضیح میدم. ادامه …

در قسمت قبل نحوه‌ی استفاده از Component.Builder@ و BindsInstance@ رو توضیح دادم، توی این پُست قراره در مورد دو نکته‌ی بعدی بنویسم. اگر میخواید به سورس کامل دسترسی داشته باشید به ریپوی SearchMovies برید.

ادامه …

خیلی وقت بود در مورد dagger2 (دگر۲) چیزی  نخونده بودم تا اینکه دوباره فرصت شد مقاله‌های جدیدی بخونم و ۳ تا نکته‌ی جدید ازشون یاد بگیرم. این سه نکته رو در قالب دو پُست بلاگ توضیح میدم. برای اینکه کاربردشون رو بهتر نشون بدم، هر نکته رو در قالب یک کامیت روی پروژه‌ی SearchMovies اعمال کردم.

ادامه …

گاهی پیش میاد به عنوان برنامه‌نویس اندروید نیاز میشه که یک کتابخونه‌ی جاوا رو تست کنید. مثلا فکرکنید میخواید ویژگی خاصی رو توی dagger2 یا retrofit امتحان کنید اما تا بخواید پروژه اندروید بسازید و هر بار منتظر بشید تا build بشه! خیلی وقتتون گرفته میشه.

در این موارد ساختن یه پروژه‌ی console application جاوا میتونه خیلی کمک کنه. اینجوری درگیر lifecycle اکتیویتی یا درست کردن فایل xml و … هم نمیشید و می‌تونید تمرکزتون رو روی اون موضوعی که میخواید تست کنید بذارید. فقط اگر پروژه‌ی معمولی جاوا بسازید باید خودتون فایل‌ jar کتابخونه‌هایی که نیاز دارید رو پیدا کنید و چیزی مثل gradle توی اندروید نیست تا کمکتون بکنه. برای حل این مشکل میشه از maven استفاده کرد، بهش dependecyهاتون رو شبیه gradle در یک فایل ‍xml معرفی میکنید و بقیه کار رو به اون میسپرید. بعدش میتونید خیلی راحت از کتابخونه‌ها توی کدتون استفاده کنید.

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

ادامه …

چندماه از وقتی که وب‌سرویس MoviesApi رو با هدف آموزشی درست کردم میگذره. توی این مدت فرصت نشده بود تا قابلیتی بهش اضافه کنم. بالاخره دیروز بعد چند ساعت کلنجار رفتن با لاراول تونستم امکان احراز هویت از طریق oAuth رو براش درست کنم. مزیتش اینه اگر کسی میخواد احراز هویت از طریق oAuth با password grant type  رو توی اندروید، iOS یا هر زبان دیگه‌ای یاد بگیره، میتونه با این وب‌سرویس تمرین کنه. برای پیاده‌سازی oAuth از Passport استفاده کردم و فقط یه تغییر کوچیک دادم که نیاز نباشه client_secret و client_id برای دریافت توکن ارسال بشه. ادامه …