چطور برنامه نویسی اندروید یاد بگیریم و پت و مت نشیم؟! راهنمایی برای مبتدی ها و بقیه

این مقاله حاصل یک سال از زندگی منه که سعی کردم اندروید یاد بگیرم. اشتباهات زیادی داشتم و بعضی مواقع مجبور شدم از صفر شروع کنم. شاید بعضی نکات یا منابع رو فراموش کرده باشم که به مرور اصلاح میکنم پس به این صفحه برگردید.اگر نکته یا منابعی سراغ دارید که من نگفتم هم خوشحال میشم بگید.یکسال از وقتی اندروید رو شروع کردم میگذره و احساس میکنم هنوز مبتدی هستم. دو تا دلیل اصلی داره：اندروید واقعا دنیای بزرگیه و هرچی توش سیر کنی هنوز چیز های هیجان انگیزی باقی موندهاشتباهاتی که اون اوایل داشتم خیلی من رو عقب انداخت. مثل پت و مت یک کاری میکردم و بعدا میزدم خرابش میکردم. شاید سه بار مجبور شدم از صفر شروع کنم. اخر مقاله میگم چرا.تو این مقاله هم کاری میکنم که بیشتر از اندروید لذت ببرید و هم اشتباهات من رو تکرار نکنید.یادگیری اندروید کار سختی نیست.دروغ گفتم ：) کار سختیه اما اگر از منابع درست استفاده کنید و حساب شده پیش برید و حسابی تمرین کنید این سختی میتونه تبدیل به لذت بشه. قدم اول： یک سفر کوتاه به کاتلینکاتلین در اصل اسم یک جزیره و البته زبان رسمی جدید گوگل برای برنامه نویسی اندروید هست. کاتلین نسبت به جاوا مزیت های زیادی داره و در کل حداقل با جاوا شروع نکنید. شاید یعدا نیاز به جاوا باشه ولی نه فعلا.اگر از قبل با جاوا اشنایی دارید که یادگیری کاتلین خیلی راحته. اگر هم نه با داکیومنت های خود سایت یا دوره های مختلف میتونید یاد بگیرید.من خودم با کتاب kotlin in action یاد گرفتم و فقط فصل اولشو خوندم و بقیه چیز هارو از سایت رسمی یاد گرفتم. چون خودم به اصطلاح خرکی یاد گرفتم نمیتونم دوره ای رو پیشنهاد کنم ولی دوره خوب زیاده نگران نباشید. تا مفاهیم شی گرایی یاد بگیرید و بقیه چیز هارو میشه در حین کار یاد گرفت.این قسمت بسته به سابقه و تلاش شما از یک هفته یا یک ماه وقت میگیره.قدم دوم： نصب اندروید استودیواندروید استودیو محیط رسمی برنامه اندروید است. البته با نصب پلاگین هایی روی intellij یا اکلیپس هم میتونید با اندروید کار کنید ولی انتخاب درستی نیست. بهینه ترین راه همین اندروید استودیو هست. نصبش هم اصلا سخت نیست(برعکس بعضی ها میگن سخت ترین بخش اش هست).کافیه برید به اینجا و با توجه به سیستم عامل تون اونو دانلود کنید.نزدیک یک گیگ حجم داره. یادتون باشه که به خاطر تحریم های نامردانه باید با تحریم شکن به این سایت برید. بعدا میگم چطور تحریم هارو دور بزنید.پکیج های مورد نیاز به صورت خودکار دانلود و نصب میشه اما ：قبل از باز کردن اندروید استودیو یه جوری تحریم ها رو دور بزنید. چه با VPN چه با شکن!شکن یه چیزیه(دقیق نمیدونم چیه) که باهاش راحت میتونید با تغییر دادن DNS تحریم ها رو دور بزنید. من با شکن نمیتونم تو یوتیوب برم ولی توی اندروید استودیو و سایت اندروید خوب کار میکنه. برید به سایت shecan.ir و طبق اموزش های خود سایت عمل کنید.قدم سوم ： انتخاب منابع مناسبسعی کنید یک منبع اصلی داشته باشید و طبق اون پیش برید. توی این بخش خیلی دقت کنید که ممکنه پت و مت بشید. از منابع فرعی هم به عنوان مکمل استفاده کنید.منابع اصلیدوره های سایت udacity.comدوره های اندروید این سایت یکی از بهترین منابع ویدیویی(هم با جاوا و هم با کاتلین) هستند که بعضی از اونها توسط گوگل تهیه شده و به شدت پیشنهاد میشه.کتاب android programming the big nerd ranch guide ویرایش چهارم این کتاب ارزشمند که کتاب مورد علاقه من هم هست با اختلاف بهترین کتاب اموزشی اندروید هست و با کاتلین اموزش میده. البته برای خوندن این کتاب خیلی زیاد به منابع فرعی نیاز پیدا میکنید که به نظرم یکی از مزیت هاش محسوب میشه.منابع فرعیسایت توسعه دهندگان اندرویدسایت developer.android.com داکیومنت های کاملی داره که هرچه حرفه ای تر میشید کاربرد این سایت هم براتون بیشتر میشه. معمولا بهترین و کامل ترین اموزش ها رو در این سایت پیدا میکنید.انجمن توسعه دهندگان اندروید در مدیومانجمن توسعه دهندگان اندروید در مدیوم مقاله های اموزشی خوبی منتشر میکنه. نویسنده های این مقاله ها برنامه نویس های گوگل هستند.انجمن های androidPub و mindOrks در مدیوم هم انجمن های خوبی هستند که میتونید دنبال کنید.چطور از منابع استفاده کنیم؟پیشنهاد من اینه که یکی از منابع اصلی رو دنبال کنید چون ساختار منسجم تری دارند و هر وقت نیاز به اطلاعات بیشتر داشتید از منابع فرعی یا هرچیزی تو اینترنت بود استفاده کنید . ولی انسجام رو حفظ کنید.بعضی از منابع فرعی که معرفی کردم به قدری کامل هستند که نیازی بهش ندارید. فقط تا حدی بخونید که بتونید کتاب یا دوره اصلی رو دنبال کنید. و تمرین کنید و تمرین و تمرین. برنامه هایی که طبق اموزش ساختید رو کامل کنید و کم کم راه خودتون رو پیدا کنید.چطور تمرین کنیم؟بهترین راه اینه که یک پروژه شخصی برای خودتون تعریف کنید . چیزی تو مایه های notebook میتونه شروع خوبی باشه. در حین یادگیری پروژه رو کامل کنید و حتی یکم فراتر برید و یک چیز خلاقانه اضافه کنید.هر منبعی که دنبال میکنید کد های چیزی در حین اموزش درست کردید رو برای دانلود یا توی گیت هاب گذاشته. هر از چند وقت نگاهی به کد ها بندازید و سعی کنید بخونیدش . هم یاد اوری خوبیه و هم یاد میگیرید چطور کد بخونید.اگر سیستم ضعیفی دارید از لینوکس استفاده کنیدبرای اجرا درست اندروید استودیو به تنهایی به ۴ گیگ رم نیاز دارید. اگر بخواین چیز هایی مثل مرورگر و موزیک پلیر هم باز باشه به حداقل ۸ گیگ رم نیاز دارید. اگر سیستم ضعیفی دارید میتونید از لینوکس استفاده کنید. توزیع های سبکی مثل lubuntu وجود داره که به راحتی کار شما رو راه میندازه به علاوه از جذابیت های لینوکس هم بهره مند میشید.خود اندروید هم بر پایه لینوکس ساخته شده . پس یکم لینوکس در اینده به دردتون میخوره. به من اعتماد کنید.از کجا کد های ساده پیدا کنیم؟هر وقت چیز جدیدی یاد گرفتید باید باهاش تمرین کنید و در یک پروژه واقعی استفاده کنید. اما اگر ذهنیتی ندارید که چی باید بسازید میتونید از کد ها و برنامه های ساده ای که با اهداف اموزشی نوشته شده رو بخونید.منبع اول اول سایت androidhive.com هست. توی این سایت تقریبا با همه کامپوننت ها و کتابخونه های اندروید میتونید یک پروژه ساده پیدا کنید و به همراه توضیحات بخونید.منبع دوم من کد های خود گوگل هست . این ریپوزیتوری مجموعه ای از برنامه های ساده است که توسط تیم اندروید گوگل تهیه شده . البته بگذارید یکم که سطح تون بالا تر رفت از این منابع استفاده کنید.چطور مثل پت و مت نشیم؟پت و مت رو که یادتون هست. اوایل کار های من شبیه این دو بزرگوار بود. میخواستم یه چیزی درست کنم ولی یه جای دیگه رو خراب میکردم. بیشتر هم برمیگشت به منابع نادرست و روش نادرست.هرچیزی که به نظر خوبه خوب نیستخیلی برام پیش اومده که یه کتابی رو شروع کنم و کلی بخونم ولی اخرش بفهمم کلا من رو به بیراهه برده در حالی که موقع خوندن کتاب حس میکردم خیلی باحاله! نمونه بارزش هم اموزش مقدماتی اندروید فرادرس هست. وقتی نگاه میکردم واقعا کیف میکردم که یه چیزی دارم میسازم... من دیگه خدای اندرویدم ... . بعد از اینکه کتابی رو که در بالا معرفی کردم رو شروع کردم دیدم اون مدرس عزیز فقط وقت من رو هدر میداده. فقط یک سری کامپوننت رو بی هدف اموزش میداده در حالی که در دنیای واقعی با مساعل جدی تری روبه رو هستیم. قصد بی احترامی به اون بزرگوار رو ندارم . اتفاقا من رو در شروع راه انداخت ولی...خلاصه اینکه هر منبعی که به نظرتون خوبه شاید زیرمیزی داره شما رو گمراه میکنه.بدون تمرین هیچی یاد نمیگیریماندروید پر از کلاس های شبیه به هم , مسیر های نسبتا بلند برای انجام دادن بعضی کار ها و البته مجموعه مفاهیمی هست که به هم وابسته هستند و لزوما درک اونها ساده نیست.پس باید کلی تمرین کنید ملکه ذهنتون بشه. اگر فقط یک کتاب خوندید و تمرین نکردید خودتون میبینید که هیچی یاد نگرفتید. اگر این دو اصل رو رعایت کنید هیچوقت کارتون به شروع از صفر نمیرسه