مسیر یادگیری برنامه نویسی اندروید خطی نیست و نمیتوان به صورت سر راست و مشخص نقشه راهی رسم کرد. چیزهای زیادی هستند که باید یاد بگیرید و در این مسیر باید تلاش و پشتکار زیادی داشته باشید. در ادامه مواردی که به نظرم در برنامه نویسی اندروید مهم است را لیست میکنم.
1- قدم اول، انتخاب یک قندشکن مناسب!
متاسفانه گوگل در راستای تحریمهای نرمافزاری، دسترسی کاربران ایرانی به توسعه اندروید را قطع کرده است و مثلا اگر شما بخواهید به سایت توسعه دهندگان گوگل مراجعه کنید پیغام عدم دسترسی مواجه می شوید:
بنابراین برای کار با کتابخانه های اندروید و خیلی از موارد دیگر شما یه یک قند شکن مناسب نیاز دارید. از قندشکنهای رایگان میتوان به hotspot و windscribe اشاره کرد که برای ورود به این سایت ها و دانلود نرم افزارها به قندشکن نیاز دارید!
(امیدوارم که متوجه دلیل استفاده از کلمه قند شکن شده باشید D:)
2- الگوریتم و فلوچارت
اگر تا به حال تجربه کار با هیچ زبان برنامهنویسی نداشتهاید حتما در یک دوره فشرده الگوریتم و فلوچارت و هنر مساله حل کردن را یاد بگیرید. فلوچارتها دید بسیار مناسبی برای یادگیری زبانهای برنامهنویسی به شما میدهد.
3- نصب اندروید استودیو
اولین قدم مهم در شروع یادگیری برنامه نویسی اندروید، نصب اندروید استودیو است. در سایت android-studio.ir نصب اندروید استودیو را به دو روش آنلاین و آفلاین به خوبی توضیح داده است. مطالب این لینک را به دقت مطالعه کنید و شروع به نصب کنید. اگر در نصب مشکل داشتید به احتمال زیاد در قسمت دیدگاهها سوالتان پاسخ داده شده است.
4- زبان جاوا یا کاتلین را یاد بگیرید
برای شروع برنامه نویسی در اندروید استودیو نیاز به یادگیری یکی از دو زبان جاوا یا کاتلین دارید. در سایت 7learn مقایسه خوبی بین دو زبان جاوا و کاتلین انجام داده است که در اینجا به صورت مختصر نقل قول میشود:
کاتلین یکی از زبان های جدید برنامه نویسی است که سال 2011 توسط JetBrains معرفی شد. کاتلین با تکیه بر جاوا توسعه پیدا کرده و این قابلیت را دارد که کدهای جاوا را نیز پوشش دهد. در کاتلین می توان از کتابخانه های جاوا استفاده کرد. همچنین می توان کدهای آن را، درون کدهای جاوا قرار داد. هدف توسعه دهندگان این زبان، سریع تر کردن روند توسعه، برای برنامه نویسانی است که بخواهند از زبانی غیر از جاوا استفاده کنند. این زبان که به یکی از رقبای اصلی جاوا در توسعه اندروید تبدیل شده در طی این سال ها محبوبیت خوبی به دست اورده و توانسته تا حدودی جاوا را به دومین گزینه برنامه نویسان تبدیل کند. این مورد هم باید در نظر داشت که جاوا در مقایسه با کاتلین منابع زیادی برای یادگیری دارد و انجمن های فعال آن، می توانند در بسیاری از موارد پاسخ سوال های شما را به راحتی در اختیارتان قرار دهند.
5- زبان نشانه گذاری XML
همانطور که گفتیم یادگیری برنامه نویسی اندروید به صورت خطی نیست. به این معنی که مثلا نمیتوانید ابتدا جاوا را یاد بگیرید و بعد از آن به سراغ یادگیری xml بروید. اینها در کنار هم معنی پیدا میکنند. به صورت ساده میتوان گفت در xml شما به طراحی ui و هر آنچه که کاربر در اپلیکیشن شما میبیند میپردازید. در این زبان است که شما علاوه بر طراحی شیک برای نرم افزارتان باید رسپانسیو بودن نرمافزار را هم در نظر بگیرید. یعنی نمایش درست نرم افزار در گوشیها و تبلتها با سایزها مختلف.
6- مفاهیم مهم برنامه نویسی اندروید را مطالعه کنید
مطالب زیادی است که باید یاد بگیرید. یادگیری این مطالب از یک جهت جذاب است و آن این است که اپلیکیشن هایی که دید بهتری نسبت به اپلیکیشنهای کاربردی که روی گوشی تان دارید پیدا میکنید. مثلا نرم افزار اسنپ چگونه مسیریابی میکند، نرمافزارهای پیام رسان چگونه پیام ها را ارسال و دریافت میکنند و … . در اینجا لیستی از مفاهیم ضروری که نیاز دارید یاد بگیرید را لیست میکنم:
- در مورد چرخه حیات (یا Activity Lifecycle )اطلاعات کسب کنید.
- درباره Intent، Services و Broadcast Receiver مطالعه کنید.
- دیباگ کردن برنامه را یاد بگیرید
- در مورد Garbage Collection و Memory Leak مطالعه کنید.
- روش های ذخیره سازی دیتا را مطالعه کنید و کار با SQLite را یاد بگیرید.
- کتابخانه های مهم اندروید را شناسایی کنید (Picasso ، Volley، Gson و …)
7- یک پروژه واقعی برای خودتان تعریف کنید.
در ابتدای مسیر شما باید یک سری مقدمات و مفاهیم اولیه از برنامه نویسی اندروید یاد بگیرید. نمیتوانید از همان اول شروع به تعریف پروژه کنید. با متدهای کلاسیک آموزشی که در سایتها و کتابهای آموزشی موجود است این مقدمات را یاد بگیرید و بعد از اینکه به مفاهیم اولیه مسلط شدید یک پروژه برای خود تعریف کنید و سعی کنید در قالب انجام دادن این پروژه مطالب جدید را بیاموزید. طبیعتا یک برنامه نویس با تجربه در کنار شما تاثیر به سزایی در موفقیت و یادگیری شما خواهد داشت.