به شما تبریک میگوییم، شما جزو کسانی هستید که میخواهید پیش نیاز یادگیری برنامه نویسی اندروید را یاد بگیرند و اولین قدم خود را در مسیر توسعه اپلیکیشنهای اندرویدی بردارند. معمولا افراد زیادی ایده هایی دارند که میخواهند آنها را در قالب نرم افزارهای اندرویدی پیاده سازی کنند. همچنین برخی دیگر از افراد علاقه مند به برنامه نویسی و توسعه اپلیکیشنهای اندروید هستند. اما هیچکدام از آنها نمیدانند که باید از کجا باید شروع کنند.
معمولا این سوال برای این افراد پیش میآید که برای ساخت یک نرم افزار اندرویدی چه پیش نیازهایی را باید داشته باشند و مدت زمان یادگیری زبانهای برنامه نویسی اندروید چقدر خواهد بود. در این مقاله به معرفی پیش نیازهای یادگیری برنامه نویسی اندروید و تمام آنچه برای شروع نیاز خواهید داشت میپردازیم.
قبل یادگیری برنامه نویسی اندروید شما نیاز دارید که با مفاهیم ابتدایی و الفبای برنامه نویسی آشنا شوید. ما در مجموعه آموزشی سون لرن دوره ای تحت عنوان الفبای برنامه نویسی تهیه کردیم که مناسب افرادی است که تمایل دارند وارد دنیای شیرین برنامه نویسی شوند.
هر پلتفرمی برای توسعه اپلیکیشنهای خود نیاز به توسعه دارد. همانند پلتفرمهای IOS و ویندوز، اندروید نیز دارای اپلیکیشنهای مختلفی است که هر کدام ویژگیها و کاربردهای خود را داشته و کاربران این سیستم عامل در سراسر دنیا از آن استفاده میکنند. در واقع شما با استفاده از زبانهای برنامه نویسی مختلف، میتوانید اپلیکیشنهای مد نظر خود را پیاده سازی کرده و آن را روی تمامی دستگاههایی که دارای سیستم عامل اندروید هستند اجرا کنید. ما در این مقاله سعی داریم به معرفی پیش نیازهای برنامه نویسی اندروید و بهترین زبان برنامه نویسی اندروید بپردازیم.
پیش نیازهای برنامه نویسی اندروید به دو دسته پیش نیازهای فنی و غیرفنی تقسیم میشوند. از جمله مهمترین پیش نیازهای غیرفنی برای ورود به دنیای برنامه نویسی میتوان به داشتن انگیزه و هدف گذاری مناسب، آشنایی با زبان انگلیسی، آشنایی با کامپیوتر و اینترنت اشاره کرد.
در این مقاله قصد داریم بعضی از پیش نیازهای فنی و غیر فنی مربوط به برنامه نویسی اندروید را بیان و معرفی کنیم. پیش نیازهای فنی که در ادامه به آن اشاره میکنیم را میتوانید به صورت تدریجی فرابگیرید. به عنوان مثال مبحث شی گرایی، مبحثی نسبتا سنگین و در عین حال کاربردی است که باید در حین انجام پروژههای اندرویدی آن را فرا بگیرید.
قبل از شروع برنامه نویسی اندروید، باید مطئمن باشید که کامپیوتر و یا لب تاپ نسبتا خوبی برای اجرای اندروید استودیو داشته باشید. اندروید استودیو یک Integrated development environment که به صورت خلاصه IDE است که توسط شرکت JetBrains برای توسعهی اپلیکیشنهای اندرویدی تولید و منتشر شده است.
نرم افزار اندروید استودیو نرم افزاری نسبتا سنگین بوده که برای اجرا و استفاده از آن نیاز به سیستمی نسبتا خوب دارید. در مقاله زیر درمورد سیستم مورد نیاز و طریقه نصب این نرم افزار به صورت مفصل صحبت کردهایم.
یکی از مهمترین مسائل در برنامه نویسی، توانایی جستجو است. از گذشته تا الان در هنگام کدنویسی و توسعهی نرم افزار به مشکلات و باگهایی برمیخوریم که جواب آن را نمیدانیم و یا مبحث جدیدی را باید فرا بگیریم، از این رو توانایی جستجو کردن یکی از مهمترین بخشهای برنامه نویسی محسوب میشود. سوال کردن از برنامه نویسان دیگر تا حدی خوب است اما آنها یا همه چیز را نمیداند و یا زمان توضیح آن را به شما ندارند، همچنین شاید شما کسی را به عنوان برنامه نویس نداشته باشید که از آن سوالهایتان را بپرسید. در چنین مواقعی جستجو اولین و بهترین گزینه است.
مسئله مهمی که قابل توجه است، انتخاب نیتیو و یا فریمورک برای توسعه اپلیکیشنهای اندرویدی است. امروزه هر دو موضوع بازار کار و متخصصین خود را دارند و انتخاب این میتواند بسته به شرایط و سلایق مختلف متفاوت باشد. در ادامه به توضیح مختصر این دو موضوع میپردازیم:
فریمورک اندروید یک چارچوب نرم افزاری است که با استفاده از زبان برنامه نویسی مخصوص به خود میتواند اپلیکیشنهای اندرویدی را تولید کند. اما فریمورکها بیشتر از یک هدف را نشانه گذاری کردهاند. فریمورکها امکانی را به وجود آوردند که میتوانید با یکبار کدنویسی، برای چندین پلتفرم خروجی بگیرید. به عنوان مثال شما برای اپلیکیشنهای اندرویدی خود برنامه نویسی میکنید و در آخر میتوانید خروجی IOS نیز بگیرید. این امکانی فوق العادست که فریمورکهایی نظیر فلاتر، ری اکت نیتیو و… فراهم کردهاند.
همانطور که از اسم آن مشخص است، زبانی است که توسط شرکت سازنده اندروید پیشنهاد میشود. تمرکز اندروید بر روی این زبان بوده و بیشتر لایبراریهای معروف با این زبان نوشته شدهاند. توسعه اپلیکیشن با استفاده از زبان نیتیو مزایایی به نسبت استفاده از فریمورک را دارد که به چندین مورد در ادامه اشاره میکنیم:
قبل از این که شروع به برنامه نویسی کنید باید زبان برنامه نویسی مناسبی را انتخاب کنید. بین زبانهای مختلف تفاوتهایی وجود دارد که این تفاوت باعث پیچیدگی و متنوع بودن زبانها میباشد. اما در انتها بستگی به شما دارد که به کدام زبان علاقه دارید و میخواهید با کدام یک از آنها برنامه نویسی اندروید را انجام دهید.
ما در این مقاله سعی کردهایم چندین زبان برنامه نویسی اندروید را در اینجا به صورت مختصر توضیح دهیم و شما میتوانید با بررسی کردن هر کدام از آنها و تحقیق بیشتر در مورد هر کدام، بهترین زبان را برای برنامه نویسی اندروید انتخاب کنید.
قبل از معرفی زبانهای برنامه نویسی اندروید، میخواهیم این زبانهارا به دو بخش تقسیم کنیم:
زبان کاتلین یکی از زبانهای نیتیو اندروید است. این زبان در ژانویه سال 2012 توسط شرکت جت برینز رونمایی شده و در حال حاضر به عنوان زبان اصلی برنامه نویسی اندروید شناخته میشود. این زبان بر روی ماشین مجازی جاوا اجرا شده و یکی از اهداف این زبان، همکاری با زبان جاوا است تا بتوانید اپلیکیشنهای خود را هم با جاوا و هم کاتلین کدنویسی کرده و مشکلی در اجرای اپ نداشته باشید. زبان کاتلین امکانات بسیار زیادتری به نسبت جاوا در اختیار برنامه نویسان اندروید قرار میدهد. کاتلین با طراحی اپریتورهای (Operator) مختلف، کدنویسی را برای برنامه نویسان اندروید بسیار راحتتر کرده است. همچنین زبان کاتلین هم به صورت شی گرا و هم به صورت فانکشنال (Functional) قابل برنامه نویسی است.
قبل از رونمایی از زبان کاتلین، زبان جاوا به عنوان زبان نیتیو اندروید شناخته شده بود. با رونمایی از کاتلین این دو زبان درکنارهم به عنوان زبان نیتیو در اندروید شناخته شدند. در حال حاضر هر دو زبان در اپلیکیشنهای مختلف مورد استفاده قرار گرفتهاند. بیشتر لایبراریهای معروف و پر کاربرد با زبان جاوا کدنویسی شدهاند اما به دلیل سازگاری زبان کاتلین و جاوا میتوانید از لایبراریهایی که با زبان جاوا نوشته شدهاند در زبان کاتلین استفاده کنید. همچنین از دیگر ویژگیهای زبان جاوا به شی گرا بودن این زبان میتوان اشاره کرد.
در مرحله اول یادگیری زبان جاوا و بعد مهاجرت به زبان کاتلین، یکی از مسیرهایی است که میتوانید انتخاب کنید. زیرا با درک زبان جاوا و طریقهی کارکرد این زبان، یادگیری زبان کاتلین برای شما بسیار راحت خواهد بود. همچنین به دلیل اینکه بیشتر لایبراریها و کلاسهای اندرویدی به زبان جاوا نوشته شده اند، درک این مفاهیم و کلاسها برای شما راحتتر خواهد بود.
تا به اینجا متوجه شدیم که زبانهای نیتیو اندروید، جاوا و کاتلین هستند. امروزه اکثر اپلیکیشنهای بزرگ و کوچک در دنیا از این دو برای برنامه نویسی و توسعهی اپلیکیشنهای خود استفاده میکنند. اما فریمورکها و زبانهای آنها بخش بعدی است که میخواهیم معرفی کنیم. با ما همراه باشید.
فلاتر یکی از فریمورکهای محبوب برای برنامه نویسی اندروید است که گوگل نیز روی آن سرمایه گذاری کرده است. این فریمورک با استفاده از زبان دارت قابل استفاده بوده و میتوان با آن اپلیکیشنهای اندرویدی را توسعه داد. این فریمورک در سال 2015 توسط گوگل معرفی و رونمایی شد. با استفاده از زبان دارت میتوان برای اپلیکیشنهای اندرویدی، IOS، اپلیکیشنهای ویندوزی، اپلیکیشنهای لینوکسی و برای وب برنامه نویسی کرد.
زبان جاوا اسکریپت یکی از زبانهای محبوب در زمینههای مختلف است که کامیونیتی بسیار بزرگی دارد. این زبان در سال 1995 رونمایی شد و رفته رفته در زمینههای مختلف نفوذ کرده و در حال حاضر محبوبیت جهانی دارد. بر خلاف اسم این زبان، زبان جاوا اسکریپت با زبان جاوا هیچ ارتباطی ندارد. این زبان در فریمورک ری اکت نیتیو که توسط شرکت فیسبوک طراحی و توسعه داده شده استفاده میشود. این فریمورک هم همانند فریمورک فلاتر میتواند خروجی اندروید، IOS، ویندوز و یا وب داشته باشد.
زبان سی شارپ توسط شرکت ماکروسافت در سال 2000 معرفی شد. این زبان همانند زبان جاوا شی گرا بوده و دارای Syntax مشابه است. فریمورک زامارین یک فریمورک تحت مالکیت ماکروسافت است که با استفاده از زبان سی شارپ برای اندروید، IOS و ویندوز خروجی میگیرد. این فریمورک به نسبت فریمورکهای دیگر اندروید محبوبیت آن چنانی ندارد.
شاید با معرفی زبانهای برنامه نویسی در قسمت قبل، برای انتخاب زبان مورد نظرتان مقداری سردرگم شده باشید. انتخاب زبان برنامه نویسی برای کسانی که قصد ورود به دنیای برنامه نویسی دارند، میتواند امری دشوار باشد. زبانهای برنامه نویسی صرفا ابزارهایی هستند که برای پیاده سازی ایدههای برنامه نویسان به کار میروند. بنابراین اگر هدف و قصدمان از برنامه نویسی را بدانیم، آنقدرها هم که تصور میکنید، انتخاب زبان امری پیچیده نیست.
شاید انتخاب زبانهای برنامه نویسی غیر رسمی برای افرادی که به سایر زبانهای برنامه نویسی تسلط دارند، امری منطقی باشد. زیرا میخواهند با زبانی که میدانند وارد دنیای برنامه نویسی موبایل شوند. مثلا کسانی که برنامه نویس سی شارپ هستند میتوانند از تکنولوژی زامارین استفاده کنند. زیرا دیگر نیاز به صرف زمان برای یادگیری زبانی جدید نخواهند داشت و در کمترین زمان میتوانند اپلیکیشنهای اندرویدی را توسعه دهند.
اما برای کسانی که تصمیم دارند به یک متخصص اندروید تبدیل شوند و فقط به توسعه نرم افزارهای اندروید بپردازند، بهترین انتخاب زبان جاوا یا کاتلین خواهد بود. زیرا قطعا در فرآیند توسعه نرم افزارهای اندرویدی با مشکلات و سوالات زیادی رو به رو خواهند شد. معمولا جواب اینگونه چالشها را در اسناد کتابخانهها، مثالهای گوگل، سایتهای پرسش و پاسخ مانند Stackoverflow و… پیدا خواهید کرد. اما به دلیل اینکه زبان جاوا به عنوان زبان رسمی اندروید قدمت بیشتری در توسعه این سیستم عامل داشته است، اکثر این منابع از زبان جاوا استفاده میکنند.
ما در مجموعه آموزشی سون لرن دوره ای جامع برای یادگیری برنامه اندروید تهیه کرده ایم که پیشنهاد میکنیم برای آموزش برنامه نویسی اندروید به صفحه این دوره مراجعه نمایید.
اگر بخواهیم به این سوال پاسخ دهیم میتوانیم بگوییم که زمان خاصی برای حرفهای شدن در تخصصی مثل برنامه نویسی وجود ندارد. نمیتوان گفت که مثلا شما الان اگر برنامه نویسی را شروع کنید، دقیقا در x ماه و y روز و z ساعت دیگر به یک برنامه نویس حرفهای تبدیل میشوید! زیرا سرعت حرفهای شدن در هرکاری کاملا به شما و شرایط شما بستگی دارد. شما میتوانید در ۳ ماه در یک زبان برنامه نویسی حرفهای شوید و یا میتوانید همین کار را در ۳ سال انجام دهید. سرعت طی کردن این مسیر کاملا دست شماست!
ممکن است شخصی زمان آزاد زیادی داشته باشد و بتواند روزانه ۸ ساعت مفید برای یادگیری و تمرین برنامه نویسی وقت بگذارد. از آن طرف شخص دیگری باشد که دانشجو یا شاغل است و روزانه ۴ ساعت میتواند یادگیری و تمرین مفید داشته باشد. طبیعی است که نفر اول، زودتر به هدفی که دارد میرسد و زودتر میتواند مسیر تبدیل شدن به یک برنامه نویس حرفهای را طی کند. اما در بخش بعدی این مطلب برای شما یک برنامهی پیشنهادی ۶ ماهه طراحی کردهایم که با استفاده از آن بتوانید تنها با صرف زمان ۲-۳ ساعت به صورت روزانه به یک سطح خیلی خوب در برنامه نویسی اندروید برسید.
مسیری که در زیر معرفی شده است، با این پیشفرض نوشته شده است که شما هیچ پیش زمینهای در برنامه نویسی ندارید. اگر حس میکنید که مثلا برنامهی ماه اول برای شما خیلی آسان است، میتوانید از برنامه آن سریعتر عبور کنید و تمرینهای ماههای دیگر را شروع کنید. در زیر برنامهی ۶ ماههی پیشنهادی سون لرن برای تبدیل شدن به یک برنامه نویس اندروید را باهم مرور میکنیم:
در اولین قدم شما باید زبان مورد نظر خود را انتخاب و شروع به یادگیری کنید. برای یادگیری منابع مختلفی در سطح اینترنت وجود دارند که میتوانید با کمی جستجو آنها را بیابید. هنگام یادگیری زبان برنامه نویسی شاید بعضی از مفاهیم را درک نکنید، اصلا نگران نباشید. این یک امر طبیعیست. سعی کنید تا جایی که امکان دارد آن مفهوم را درک کنید و سپس به سراغ موضوع بعدی بروید. به مرور زمان و کدنویسی بیشتر متوجه مفهوم هر یک خواهید شد. سعی داشته باشید در کنار یادگیری حتما تمرین و تکرار داشته باشید زیرا مفاهیم با تمرین و تکرار در ذهن شما خواهند ماند.
نکته: در نظر داشته باشید که به عنوان مثال طریقهی کدنویسی با زبان کاتلین در اندروید و غیر از اندروید متفاوت است. سعی کنید طریقه برنامه نویسی با زبان کاتلین در اندروید را فرابگیرید چراکه در موضوعات مختلف زبانها طریقه پیاده سازی مختلف دارند.
اولین پیش نیاز برنامه نویسی اندروید، مقدمات و مفاهیم پایهی برنامه نویسی است. مفاهیمی در برنامه نویسی وجود دارد که پایه و اساس تمام زبانهای برنامه نویسی هستند. برای مثال اصلا مهم نیست که شما با چه زبانی میخواهید برنامه نویسی کنید، شما در هر صورت با مفاهیم زیر در تمام زبانهای برنامه نویسی مواجه خواهید شد. این مفاهیم عبارتند از :
شما در ماه دوم باید مفاهیم مربوط به پیش نیاز برنامه نویسی اندروید را به خوبی درک کنید. اول از همه دربارهی تاریخچه برنامه نویسی کمی جستجو کنید تا یاد بگیرید که برنامه نویسی چیست، نرم افزارها چطور نوشته میشوند، برنامه نویسی چه زمینههایی دارد، کدها چطور اجرا میشوند و… . پس از آن که با این مقدمات آشنا شدید، کافی است به دنبال یادگیری مفاهیم بالا باشید.
ممکن است در حین مطالعهی این مفاهیم کمی سردرگم شوید و دقیقا متوجه کاربرد آنها نشوید، اما اصلا نگران نباشید! هدف از این مطالعات تنها آشنایی شما با مفاهیم پایهای و پیش نیاز برنامه نویسی اندروید میباشد. زیرا در ادامه بصورت کامل یاد خواهید گرفت که کاربرد هرکدام از این مفاهیم در نرم افزارهای واقعی چیست و چطور باید آنها را بکار بگیرید.
حال که زبان و مفاهیم کلی و پایه را فراگرفتید زمان آن است که شروع به برنامه نویسی اندروید کنید. همانطور که در مقاله اشاره شد برای برنامه نویسی به زبان نیتیو نیازمند نرم افزار اندروید استودیو میباشید. بعد از نصب این نرم افزار برای روی سیستم عامل خود، میتوانید شروع به برنامه نویسی کنید.
نکته: بعضی از فریمورکهایی که نام برده شد نیازمند نرم افزار مختص به خود هستند. با کمی جتسجو در اینترنت میتوانید آن را دانلود و بر روی سیستم عامل خود نصب کنید.
در این دو ماه شما سعی میکنید که به صورت مقدماتی برنامهها و اپلیکیشنهای سادهای را پیاده سازی کنید. به یاد داشته باشید که نیاز نیست اپلیکیشنهایی با امکانات زیاد برنامه نویسی کنید زیرا شاید بعضی از قسمتها هنوز برای شما آشنا نباشد.
سعی کنید برای این دوماه یک منبع آموزشی خوب پیدا کرده و با استفاده از آن به تمرین و برنامه نویسی بپردازید. زیرا منبع آموزشی خوب باعث میشود سرعت یادگیری و رشد شما در این زمینه چندین برابر شود.
بعد از اینکه برنامه نویسی برای اندروید را با زبان انتخابی خود یاد گرفتید و به ساخت برنامههای ساده اندرویدی مسلط شدید، زمان آن فرا رسیده که مباحثی که یاد گرفتهاید را کمی کاربردیتر و حرفهایتر دنبال کنید. در فرآیند یادگیری برنامه نویسی هیچ چیز مثل ساخت پروژههای تمرینی و کاربردی به شما کمک نمیکند! شما میتوانید هفتهها زمان بگذارید و به کاربرد یک مفهوم برنامه نویسی فکر کنید یا از طرفی دیگر میتوانید همان مفهوم را بصورت عملی در یک پروژه استفاده کنید و دقیقا متوجه شوید که آن مفهوم در دنیای واقعی چه کارهایی برای شما انجام میدهد.
هنگامی که شما مباحث مقدماتی و متوسط برنامه نویسی اندروید را یاد گرفتید، از آن زمان به بعد کار شما فقط باید انجام پروژههای تمرینی و تستی باشد. همیشه باید برای خودتان پروژههای مختلفی را تعیین کنید و انجام دهید. نکتهی مهمی که در خصوص پروژههای تستی وجود دارد این است که هر پروژهای که تعریف میکنید باید دارای یک چالش بزرگ برای شما باشد. برای مثال ممکن است که شما تا کنون با پایگاه داده در برنامه نویسی اندروید کار نکرده باشید، پس باید پروژهای تعریف کنید که پایگاه داده داشته باشد.
همچنین به عنوان مثال ممکن است که شما به مبحث مدیریت فایلها در اندروید مسلط نباشید، پس باید پروژهای تعریف کنید که از این قابلیت استفاده کند تا بتوانید در حین انجام آن پروژه، به مبحثی که در آن تسلط نداشتید، اشراف پیدا کنید. در واقع هر پروژه باید برای شما مجموعهای از علامت سوالها و مسئلههایی باشد که به دنبال حل آن باشید. اینکار شما را مجبور به یادگیری و رو به رو شدن با چالشهای جدید میکند. بعد پیاده سازی چندین پروژه مختلف به مهمترین نکات برنامه نویسی اندروید مسلط میشوید و میتوانید اپلیکیشنهایی با چالش بیشتر طراحی و توسعه بدهید.
با ادامه این روند و به مرور زمان قطعا به یک برنامه نویس حرفهای تبدیل خواهید شد. در مسیر تبدیل شدن به یک برنامه نویس حرفهای، هیچ چیزی مهمتر از تجربه نیست. آن چیزی که یک برنامه نویس عادی را از یک برنامه نویس حرفهای متمایز میکند، تجربه و دانش تخصصی است که شما این دو فاکتور را در طول زمان کسب خواهید کرد.
نکتهای که در خصوص دنیای برنامه نویسی وجود دارد این است که هیچ انتهایی ندارد! دنیای برنامه نویسی هرروز درحال گسترش و پیشرفت است. بنابراین برای حرفهایتر شدن در برنامه نویسی شما میتوانید کارهای زیادی انجام دهید و به روشهای مختلفی دانشی که یاد گرفتهاید را به کار گیرید. برخی از این روشها عبارتند از:
اندروید و برنامه نویسی آن روز به روز درحال گسترش و تغییر است. سرعت این تغییرات بیش از پیش در حال افزایش است، بنابراین اگر میخواهید همیشه یک برنامه نویس حرفهای باشید، یادگیری باید جزو عادتهای اصلی شما باشد. اگر فقط به دنبال یک دانش اولیه باشید و دیگر به سراغ آپدیت و بروز کردن خودتان نروید، بعد از مدتی دانش شما قدیمی و بدون کاربرد میشود.
با توجه به این موضوع کم کم متوجه خواهید شد که در حال حذف شدن از دور رقابت هستید. یکی از مهمترین عادتهایی که تمام برنامه نویسان حرفهای دارند، این است که عاشق یادگیری چیزهای جدید هستند و از این کار لذت میبرند. پس اگر میخواهید به یک برنامه نویس اندروید حرفهای تبدیل شوید، برنامهای که در این مقاله معرفی شد را دنبال کنید. همچنین اگر میخواهید بصورت حرفهای به یک برنامه نویس اندروید تبدیل شوید و آیندهی شغلی خود را تضمین کنید، پیشنهاد میکنیم که دورهی متخصص اندروید سون لرن را از دست ندهید.
ببخشید خیلی طولانی شد ...ممنون میشم توضیح بفرمایید.
بهتر بود که دوره جاوا در اندروید یا موارد مشابه رو انتخاب میکردید چون جاوا خیلییی مورد داره که تو اندروید کمتر به کار میاد از اون طرف شما نیاز دارید تا چندساعتی آموزش اندروید استودیو ببینید.
پس بجز جاوا به زبان دیگری نیاز نخواهید داشت اما وقتی اندروید استودیو رو نصب کردید، چندتا قسمت رایگان اندروید استودیو از یوتیوب ببینید و اگر دیدید هنوز مسلط نیستید، یک دوره کوتاه اندروید استودیو رو ببینید.