منابع مورد نیاز برای آموزش برنامه نویسی اندروید
در دو سه هفته اخیر چندین ایمیل و کامنت مختلف با محور یکسان در مورد مراحل و منابع مورد نیاز برای خودآموزی اندروید بدستم رسیده بود که ترجیح دادم در یک مطلب با جزییات کامل به آن بپردازم. مطالبی که درپی می آید حاصل تجربه شخصی است من است که لزوماً نسخه عمومی برای همه نیست ولی یکسری موارد وجود دارد که میشود درآن موارد نسخه کلی نوشت. در این مطلب فرض بر آن است که خواننده هیچ دانشی در زمینه برنامه نویسی ندارد ولی علاقه مند به یادگیری برنامه نویسی برای اندروید است.
مرحله اول : جاوا
قدم اول آشنایی کامل با زبان برنامه نویسی جاواست. همانطور که میدانید جاوا در سه نسخه منتشر شده است، J2ME، J2SE و J2EE. نسخه ای که ما برای یادگیری به آن نیاز داریم نسخه J2SE است. سئوال، چه مقدار نیاز داریم به این زبان تسلط داشته باشیم؟ جواب: هرچه بیشتر بهتر ? واقعیت این است که بهتر است بپرسیم کدام بخش این نسخه را لازم نیست یادبگیریم که جواب این است، مطالبی که مربوط به طراحی UI میشود (طراحی GUI با Swing یا JavaFX). بنابراین با سایر موارد میبایست آشنا باشید.
سئوال بعد این میشود که چه منابعی را استفاده کنیم؟ من شخصاً کتاب را پیشنهاد میکنم، آنهم به زبان انگلیسی. البته در Youtube هم میتوانید فیلم های آموزشی به زبان فارسی پیدا کنید. از آنجاکه به نظر من بهترین راه آموزش مطالعه کتاب است چند کتاب را معرفی میکنم که بعضاً ممکن است به زبان فارسی هم ترجمه شده باشد.
۱) Absolute Java، بنظر من بهترین کتابی است که برای جاوا نوشته شده. برای انتخاب اول من این کتاب را پیشنهاد میکنم.
۲) Java How to Program، اگر با سری کتابهای “چگونه به زیان x برنامه بنویسیم” ، آشنا باشید، این کتاب یکی از معروف ترین کتابهای آموزش برنامه نویسی جاوا می باشد که البته به زبان فارسی نیز ترجمه شده است. من دوره دوجلدی آنرا که توسط انتشارات هرمزگان ترجمه و چاپ شده بود حدود ۴-۵ سال قبل خریداری کرده بودم. ولی متاسفانه فقط بخشهایی از این کتاب را ترجمه کرده بودند. اگر مطالعه آن به زبان انگلیسی برایتان مشکل است، انتشارات ناقوس نیز آنرا ترجمه کرده که میتوانید برای اطلاعات بیشتر به صفحه کتاب در سایتشان مراجعه فرمایید (اینجا).
سعی کنید یک یک مثالها را خودتان بنویسید و با نتیجه کتاب مقایسه کنید تا خوب در جریان کار قرار بگیرید. سعی کنید مفاهیم شی گرایی را بخوبی یادبگیرید چراکه بسیار در برنامه نویسی اندروید به آن نیاز خواهید داشت.
در کنار کتابها منابع آنلاین فراوانی وجود دارد که میتوانید به آنها نیز مراجعه کنید. برای نمونه به چند مورد از آنها اشاره میکنم.
۶ نکته برای آموزش هر زبان برنامه نویسی از جمله جاوا:
۱- مفاهیم پایه را به دقت یادبگیرید و موشکافانه بررسی کنید. اگر تازه کار هستید خیلی بدیهی است که اول کار به شما فشار زیادی وارد میشود و احساس گنگی و گیجی بکنید ? پس عقب نشینی نکنید و با جدیت کار را دنبال کنید.
۲- بلافاصله کدها را خودتان بنویسید و تمرین کنید. کتاب برنامه نویسی، کتاب تارخ نیست! که فقط روخوانی و حفظ آن کافی باشد. حتماً جلوی کامپیوتر/ لپتاپ کتاب را مطالعه کنید و هر مثال یا تمرین را خودتان نیز تست کنید. سعی کنید از ()System.out.print زیاد استفاده کنید تا خروجی کار را ببینید.
۳- طرح کلی برنامه ای که میخواهید بنویسید را قبل از شروع به نوشتن آن آماده کنید. برای حل مشکل ابتدا باید الگوریتم کار را معین کنید. این کار باعث میشود تا یک مشکل بزرگ به چندین مشکل کوچک شکسته شود. پر واضح است که حل مشکل کوچک ساده تر خواهد بود. بنابراین با انجام اینکار میتوانید مرحله به مرحله برنامه را بنویسید و با دستور فوق خروجی را مشاهده کنید تا از صحت برنامه ای که تا آن لحظه نوشته اید، مطمئن شوید.
۴- سعی کنید یک بار هم کدها را بر روی کاغذ بنویسید. اگر میخواهید در جاوا استاد شوید این راه بهترین راه حل است. این روش به شما کمک میکند تا یک کامپایلر تمام عیار شوید ? البته این را هم بگویم که در ابتدا خیلی سخت است ولی درآینده نتیجه آنرا خواهید دید (خیلی از شرکت ها در مصاحبه شغلی برای استخدام برنامه نویس، برای تست گرفتن از این روش استفاده می کنند یعنی سناریویی میدهند و برنامه را بر روی کاغذ میخواهند).
۵- هرچه میتوانید منابع برنامه نویسی موردنظرتان (در اینجا جاوا) را بیشتر و بیشتر مطالعه کنید. حتی در گوگل پلاس هم گروه های زیادی هستند که میتوانید به آنها بپیوندید تا از خبرهای جدید و البته مشکلات دیگر برنامه نویس ها آگاه شوید.
۶- نهایتاً اینکه، stackoverflow.com، بر هر درد بی درمان دواست ? هر سئوالی که برایتان پیش آمد را در این سایت جستجو کنید (یا بپرسید)، ظرف چند دقیقه راهنمایی لازم را دریافت خواهید کرد.
مرحله دوم: اندروید
برای آموزش اندروید باز هم راه اولی که پیشنهاد میکنم مطالعه کتاب است. البته جای خوشبختی است که روش های خوب دیگری هم وجود دارد که آنها را نیز می بایست تعقیب کنید که در ادامه به آنها اشاره خواهم کرد. کتاب های پیشنهادی من کتب زیر هستند که مطالعه دو کتاب اول را به همه توصیه میکنم.
– The Busy Coder’s Guide to Android Development، این کتاب بنظر من حکم کتاب مقدس برای اندروید را دارد. به زبان خیلی ساده مطالب توضیح داده شده است و با داشتن تسلط متوسط دانش زبان انگلیسی قادر به خواندن کتاب خواهید بود. اگر از اندروید چیزی نمی دانید و تازه میخواهید وارد برنامه نویسی اندروید شوید، پیشنهاد میکنم اول این کتاب را مطالعه کنید.
– professional android 4 application development، تهیه این کتاب رو بر هر برنامه نویس اندرویدی پیشنهاد میکنم. سطح این کتاب از کتاب قبل بسیار بالاتر است و نوسینده آن Reto Meier است که اطلاعات بیشتر راجع به ایشان را میتوانید از لینک داده شده ملاحظه فرمایید. پیشنهاد میکنم اگر امکان خرید کتاب را دارید حتماً آنرا بخرید که خیلی مفید خواهد بود.
– Android Wireless Application Development، این کتاب و سایر کتابها سطح مشابهی دارند که بعضاً ممکن است مطلبی را بهتر توضیح داده باشند وگرنه همان دو کتاب فوق کاملاض کافی است (البته تا لحظه انتشار این مطلب).
به غیر از کتاب، مستندات اندروید از مهمترین منابعی است که حتماً باید به آن رجوع کنید. این مستندات به سه بخش طراحی (Design)، برنامه نویسی (Develop) و انتشار (Distribute) تقسیم شده که هرکدام شامل زیرمجموعه هایی هستند که هم در آموزش اندروید نقش بسیار پر رنگی دارند و هم منبعی هستند برای رجوع مجدد. پیشنهاد میکنم اگر دسترسی مستقیم به مستندات را ندارید حتما به طریقی به آن وارد شوید تا از مزایای آن آگاه شوید. (دوست عزیزی میگفت برای کروم یا فایرفاکس پلاگینی وجود دارد که Ip کامپوتر شما را تغییر میدهد و شما میتوانید با استفاده از آن به سایت اندروید وارد شوید.)
منبع مهم دیگر فیلم های آموزشی اندروید است که توسط تیم اندروید ساخته میشود (کانال Android Developers در یوتیوب). اگر هم به اینترنت پرسرعت دسترسی دارید میتوانید هفته ای یکبار از طریق Hangout گوگل پلاس با برنامه نویسان اندروید بصورت مستقیم صحبت کنید که خیلی با حاله ? منتها اول باید Android Developers را به حلقه هایتان در گوگل پلاس اضافه کنید.
طراحی بازی
اگر به طراحی بازی برای اندروید علاقه مندید و میخواهید آنرا تحت جاوا یادبگیرید، کتاب فوق العاده خوبی با نام Beginning Android Games وجود دارد که بازی سازی را در محیط های Canvas، OpenGL 2D و ۳D آموزش میدهد. البته Canvas هم دو بعدی است ولی با این تفاوت که از کتابخانه های جاوا و اندروید است نه OpenGl ES.
اگر میخواهید مفاهیم OpenGL ES را بیشتر و عمیق تر درک کنید کتاب Pro OpenGL ES for Android را پیشنهاد میکنم. انصافاً مفاهیم OpenGL ES در این کتاب به خوبی توضیح داده شده است.
من هر دو کتاب بالا را خریده ام و خوانده ام ولی اگر نظر من را بخواهید، اگر میخواهید بازی ساز شوید من پیشنهاد نمیکنم فقط روی جاوا تمرکز کنید. بهتر است از موتورهای بازی سازی که معروف ترین آنها Unity است، استفاده کنید تا با یکبار برنامه نویسی برای سیستم های مختلف بتوانید خروجی بگیرید. مطالعه کتب فوق -البته برای من- بیشتر به این درد میخورد که اگر بخواهم در اپلیکیشنم اکتیویتی داشته باشم که نیاز باشد در آن از OpenGl ES استفاده شود، چگونه این کار را انجام دهم. یا اگر بخواهیم انیمیشنی تحت OpenGL ES بسازیم چگونه این کار را انجام دهیم.
محیط های برنامه نویسی
دو محیط برنامه نویسی بسیار عالی برای جاوا و اندروید وجود دارد که هرکدام خصوصیات و نقاط ضعف مربوط به خود را دارند.
– Eclipse: که فکر میکنم کسی نباشد که با آن آشنا نباشد. حسن آن این است که پشتیبانی گوگل برای اندروید را دارد و نقطه ضعف آن کند بودن در پروژه های بزرگ است. البته از رابط کاربری سرد و بی روحش هم نمیشه به راحتی گذشت.
– IntelliJ IDEA: محیطی است بی نظیر و دوست داشتنی. راستش نمیدانم چرا اندروید اکلیپس را در مقایسه با این محیط انتخاب کرد ولی اگر هنوز مثله من با محیط اکلیپس جفت و جور نشده اید، این محیط را حتماً تست کنید. نقطه ضعفش این است که اندروید از آن پشتیبانی نمیکند ولی نقطه قوت کم ندارد که پیشنهاد میکنم خودتان تستش کنید.
==================
خیلی مطلب طولانی شد ولی لازم بود همه چیز گفته شود. نمی دانم تا چه حد ساده و قابل فهم مطالب را عرضه کرده ام. اگر جایی چیزی از قلم افتاده بود لطفاً از طریق کامنت آنرا با من در میان بگذارید تا در مطلب آنرا اصلاح کنم.
مطالب مرتبط قدیمی: