تقریبا یکسال پیش بود که پست کوتاهی در مورد “منابع الهام بخش برای ساخت UI اپ موبایل” نوشتم و تعدادی سایت رو معرفی کردم ولی یه مشکلی وجود داشت، اونم این بود که همهی UIها با زبان انگلیسی درست شده بودند و معمولا وقتی همین UIها رو با زبان فارسی درست میکنید، درصد زیادی از زیباییشون از دست میدن. برای حل این مشکل با بچههای هارمس تصمیم گرفتیم خودمون زمان بذاریم و از اپهای اندرویدی معروف ایرانی اسکرینشات تهیه کنیم تا در اختیار همهی برنامهنویسان و طراحان فارسیزبان بذاریم. خروجی این تصمیم، سایت UI Screenshots شده که در ادامه بیشتر در موردش توضیح دادم. ادامه …
چند وقت پیش یه AMA (فکرکنم معادل فارسیش میشه “از هرچیزی بپرس”) توی reddit بود که تیم توسعهدهندهی دگر سوالاتی که ازشون پرسیده شده رو جواب دادن. دیشب وقت کردم بخونمش و نکاتی که بنظرم جالب رو بود رو در ادامه نوشتم. البته اگر میخواید خودتون همهی سوال و جوابهارو بخونید، میتونید به لینک زیر برید.
اول بخاطر اینکه دو هفته هس که نمیرسم “لینکهای آخر هفته” رو توی کانال بذارم باید عذرخواهی کنم. دلیلش اینه بخاطر سربازی رفتن کارها فشرده شده و دیگه خیلی وقت نمیکنم که بلاگها و مقالههایی که بنظرم جالب هستند رو بخونم. چون اولویتم کیفیت به کمیت هس، ترجیحم اینه که کلا لینکی نذارم تا اینکه بخوام لینکهایی که هنوز خودم نخوندمو به بقیه معرفی کنم.
حالا برسیم به اصل موضوع که چطوری میشه ارائهی خوبی داشته باشیم. شرایط نسبت به سالهای گذشته تغییر کرده و رویدادهای زیادی توی کشور برگزار میشن، بطور مثال @irlogcat که برای اندروید هس هر ماه داره برگزار میشه. در نتیجه این فرصت برای همه هست که بتونن دانششون رو در اختیار بقیه بذارن، شاید همین الان شما هم داوطلب ارائه توی یکی از این رویدادها باشید یا حداقل تصمیم گرفته باشید در آینده اینکارو بکنید. اما یه نکتهی مهم اینه بخاطر وجود سایتهایی مثل Youtube و بالا رفتن سرعت اینترنت خیلی از کسایی که توی رویدادهای داخلی شرکت میکنند، ارائههایی که خارج از ایران برگزار میشن رو هم دیدن و انتظارشون بالاتر رفته. برای همین بهتره اگر میخوایم جایی ارائه بدیم، سعی کنیم با تمرین کیفیت ارائهمون رو بالاتر ببریم و به ارائههای خوب خارجی نزدیک کنیم.
یکی از نکات عجیبی که من توی توییتر میبینم، اینه که خیلیا به این قضیه افتخار میکنند که مثلا یکساعت قبل ارائه اسلایدهارو درست کردن و بعد رفتن ارائه دادن یا فقط یه روز برای آمادهسازی کل ارائه وقت گذاشتند. بنظر من این قضیه بیشتر از اینکه نشون بده یه نفر خیلی باحال و خفن هس، نشون میده برای اونا که میخوان ارائهاش رو ببینن اهمیت قائل نیس. در این رابطه مقالهی “How to Prepare a Talk” که در ادامه لینکشو میذارم یه نکته جالب گفته، اونم اینه که میگه برای آمادهسازی یه ارائه حداقل باید ۲۰ساعت وقت بذارید! بعد خودش مثال زده که اگر احساس میکنید این زمان خیلی زیاده، اینجوری فکرکنید که ۵۰۰نفر ارائهی ۳۰دقیقهای شمارو میبینند (حضوری،آنلاین یا بعدا ضبط شده)، اگر ۵۰۰*۳۰ رو حساب کنید میشه ۱۵۰۰۰دقیقه نفر-دقیقه که همون ۲۵۰نفر-ساعت هست. حالا واقعا ارزش نداره شما ۲۰ساعت وقت بذارید تا ۲۵۰ساعت بقیه الکی هدر نره؟!
همه جای مقاله “How to Prepare a Talk” که خوبه ولی یه بخش دیگشم برام خیلی جالب بود، همیشه فکرمیکردم من عجیبم که خوشم نمیاد روی کاغذ نکتهای بنویسم و همراه خودم برای ارائه ببرم! (چون اینو به عنوان توصیهی خوب برای ارائه زیاد شنیدم)، دلیلشم اینه که سعی میکنم اینقدر تمرین کنم تا با دیدن اسلایدها نکاتی که میخوام بگم یادم بیاد و اگرم نکتهای یادم رفته! کلا دیگه یادم بره، نه اینکه توی کاغذ یه چیزی ببینم که نوشته باشم بگم ولی یادم نیاد!!!!! درواقع دوس ندارم دیگه درگیر یه کاغذ بشم و میخوام تمرکزم همون ارائه دادن باشه. حالا وقتی این مقاله رو خوندم، فهمیدم من عجیب نیستم! واقعا این روشی هس که بعضیا استفاده میکنند. تا حالا به کسی اینکاری که خودم میکردمو توصیه نمیکردم، از این به بعد به بقیه پیشنهاد میدم چون ارائه دادن رو راحتتر میکنه.
حتما اگر ارائه دادن رو دوست دارید یا میخواید ارائه بدید این مقالهی طولانی رو بخونید. نکاتش خیلی بیشتر از این هست که من بتونم دونه دونه بنویسم و بهتره برید خودشو بخونید. هرچقدر ازش تعریف کنم، کم هس. تک تک نکتههایی که در مورد مراحل آمادهسازی یه ارائه میگه واقعا تاثیرگذار و کاربردیه. کاشکی به جای اون مطالبی که توی درس “درس شیوه ارائه مطالب علمی وفنی” داخل دانشگاه میگن (البته از همه دانشگاهها خبر ندارم،برای ما که مسخره بود)، از این جور مقالهها معرفی کنن. لینک مقاله “How to Prepare a Talk”:
هنوز یه هفته از زلزلهی قبلی نگذشته که دوباره یک ساعت پیش یه زلزلهی ۴.۲ ریشتری اومد. اومدن زلزله به آدم استرس و نگرانی میده، ولی بدتر از خود زلزله این صحبتهایی هست که بعضیا به استناد این کانال پیشبینی زلزله (@pishbiniezelzele21) میکنند. هفتهی پیش در مورد این کانال زیاد صحبت میشد اما اصلا فکرنمیکردم موضوع دنبالهداری باشه و مطمئن بودم که حتما توسط پلیس دستگیر میشه و کانال رو مسدود میکنند. حالا نه تنها کانالش مسدود نشده، حتی ۱۰۰هزار نفر به عضوهاش اضافه شدن!!!!!
ادعای پیشبینی زلزله
صاحب کانال آقای علی اصغر برهمند هست، ایشون ادعا میکنند اولین کانال پیش بینی علمی زلزله رو دارند که از طریق دریافت اطلاعات ماهوارهای ومحاسبات ریاضی وتغییرات تکتونیکی زمین! میتونند با دقت ۷۰ درصد زلزله رو پیشبینی کنند. البته من که کانالشون رو بررسی میکردم فقط مختص به ایران نیس و زلزلههای ایتالیا یا جاهای دیگه رو هم پیشبینی میکنند. توی کانالشون گفتند که اگر بهش کمک کنند، دقت پیشبینیشو به ۸۵ درصد میرسونه! ادامه …
سایت یوتیوب، یکی از منابع مهم یادگیری برنامهنویسی هس! بطور مثال توی پست “منابع آموزشی برای افزایش مهارت در برنامهنویسی اندروید” در مورد این صحبت کردم که میشه از طریق یوتیوب به ویدئوی کنفرانسهای اندروید دسترسی داشت. بخاطر اینکه بعضی از دوستان توی دیدن ویدئوها مشکل داشتند، یه پیام توی کانال تلگرام نوشتم و روشهایی که برای دانلود از یوتیوب استفاده میکنم رو معرفی کردم. بعد این پیام، تعدادی از دوستان هم روشهای دیگهای رو معرفی کردند که بعضیهاش خیلی خوب بودند. در ادامه میتونید این روشهارو ببینید. (ترتیبشون دلیل خاصی نداره و همه رو چک کنید تا روشی که باهاش راحتترید رو پیدا کنید) ادامه …
در پست قبلی در مورد این صحبت کردیم که با چه رویکردهایی میشه سورس یک اپلیکیشن رو بررسی کرد. اولین اپلیکیشنی که برای بررسی انتخاب شده اسمش کیکاستارتر هست. اگر تا حالا اسم کیکستارتر رو نشنیدید، ویکی پدیا فارسی در موردش اینجوری توضیح میده:
کیکاستارتر (به انگلیسی: Kickstarter)، شرکتی آمریکایی و عامالمنفعه برای کمک به پروژههای نوآورانه در زندگی بشر است که از استارتآپهایی با ایدههای نوین و خلاقانه استقبال میکند. ایدههای جدید در همه زمینهها از فناوری گرفته تا آشپزی در وبسایت این شرکت برای جذب سرمایه عمومی تحت پوشش قرار میگیرد.
ما به سایت و اپلیکیشن iOSش کار نداریم و فقط سورس اندروید رو بررسی میکنیم. اگر دوس دارید اول خود اپلیکیشن رو ببنیید، میتونید از گوگل پلی دانلود کنید. سورس اپلیکیش اندروید کیک استارتر داخل این ریپو گیتهاب هست. برای بررسی سورس اپلیکیشن مجبور نیستید که سورس رو بیلد کنید یا حتی دانلودش بکنید ( البته معمولا دانلود کردن کار رو خیلی راحتتر میکنه). من خودم از سایت گیتهاب استفاده کردم و چیزی دانلود نکردم.
خب حالا وقتشه که کار رو شروع کنیم. در ادامه نکتههایی که از جاهای مختلف سورس کیک استارتر یادگرفتم رو مینویسم.
توجه: اشکال نداره اگر این نکتههایی که من نوشتم براتون خیلی سخت یا شاید حتی خیلی آسون باشه، اینها فقط نکتههایی هستند که من از بررسی سورس کیکاستارتر یاد گرفتم. حالا احتمال داره شما وقتی خودتون سورس رو بررسی کنید به نکتههای دیگهای توجه کنید یا چیزهای دیگهای بنظرتون جالب باشه.
در رابطه با فواید خوندن سورس پروژههایی (میتونه خروجیش اپلیکیشن باشه یا کتابخونه) که توسط افراد دیگه نوشته شده مقالههای زیادی توی اینترنت وجود داره و لازم به صحبت بیشتر نیست. فقط اگر بخوام تجربه شخصی خودمو بگم، فکرکنم در حدود ۶۰ ۷۰درصد چیزهایی که بلدم رو با خوندن سورسها یاد گرفتم. مهمترین بهونهای که بعضی برنامهنویسا میارن تا اینکار پرفایده رو انجام ندن، اینه که میگن هنوز دانششون برای اینکار کم هس. در صورتی که خب بدیهی هست مثلاً اگر منم سورس اپلیکیشن تلگرام رو بررسی میکنم قطعاً کلی از بخشهاشو متوجه نمیشم و هیچوقت هم هدفم این نیست ۱۰۰درصد یه پروژه رو متوجه بشم. سورسهارو میشه با دو رویکرد زیر بررسی کرد. ادامه …
گاهی پیش میاد به عنوان برنامهنویس اندروید نیاز میشه که یک کتابخونهی جاوا رو تست کنید. مثلا فکرکنید میخواید ویژگی خاصی رو توی 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 برای دریافت توکن ارسال بشه. ادامه …
چند وقت پیش در بلاگم پستی با تیتر “سوالات متداول توسعهدهندگان تازه کار اندروید” نوشتم. سوال ۸ام اون پست “چطور میشه برنامهنویسی اندروید رو یاد گرفت؟” بود که جوابشو بصورت خلاصه نوشته بودم. این مقاله درواقع جواب کامل اون سوال هست و داخلش منابعی رو که خودم در سه سال گذشته ازشون استفاده کردم و برنامهنویسی اندروید یاد گرفتم رو بهتون معرفی میکنم. در طول این سه سال گذشته در هیچ شرکت یا تیم اندرویدی نبودم و فقط از منابع داخل این پست برای یادگیری اندروید استفاده کردم. در ادامه میتونید با این منابع و روشی که ازشون استفاده میکنم آشنا بشید.