مسیر برنامه نویسی اندروید
در این مقاله قرار است راجع به مسیر برنامه نویسی اندروید و نحوه شروع یادگیری برنامه نویسی اندروید صحبت کنم. سوالاتی که ممکن است قبل از شروع برنامه نویسی برایتان پیش آمده باشد، از جمله:
1. برنامه نویسی اندروید چیست؟
2. بهترین زبان برنامه نویسی اندروید چیست. (تفاوت برنامه نویسی hybrid و native )
3. نرم افزار مورد نیاز برنامه نویسی اندروید چیست
4. سخت افزارهای مورد نیاز برای برنامه نویسی اندروید چیست
5. بهترین منبع و روش یادگیری برنامه نویسی اندروید چیست؟ آموزشگاه یا کتاب یا پکیج های ویدیویی آموزشی یا خودیادگیری؟
6. چقدر از زبان کاتلین/جاوا برای یادگیری برنامه نویسی اندروید لازم است؟
بنابراین اگر شما در حال حاضر برنامه نویسی اندروید را شروع کرده اید، ممکن است این مقاله برای شما مفید نباشد.
بدون هر گونه هَجو! برویم سراغ اولین سوال:
برنامه نویسی اندروید چیست؟
به ساده ترین زبان می توان گفت فرایند ایجاد و توسعه یک برنامه که بتواند روی سیستم عامل اندروید اجرا شود، برنامه نویسی اندروید گفته میشود.
در ساده ترین حالت، شما با استفاده از یک زبان برنامه نویسی مثل کاتلین، و با استفاده از نرم افزاری مثل اندروید استودیو، برنامه ای طراحی و کدنویسی می کنید و سپس با زدن دکمه ای، کدهای شما تبدیل به فایل APK می شود. فایل APK فایلی است که می توانید آنرا در اپ استورهایی مثل کافه بازار و مایکت انتشار دهید. همینطور می توانید این فایل را بر روی دیوایس های اندرویدی خودتان یا مشتریانتان نصب کنید.
بهترین زبان برنامه نویسی اندروید چیست؟
و اما جواب سوال دوم: شاید در مسیر یادگیری برنامه نویسی اندروید، نام زبان های برنامه نویسی مختلفی را شنیده باشید (که خود این باعث میشود یک شخص تازه کار سردرگم شود). جواب کوتاه و سریع من به عنوان یک متخصص این است که برای توسعه برنامه برای هر پلتفرمی، از ابزارو زبان Native خودش استفاده کنید. مثلا برای اندروید از کاتلین، برای آی او اس از سوئیفت و برای برنامه نویسی ویندوزی از سی شارپ استفاده کنید.
حالا برویم سراغ جواب با توضیحات کامل:
برای درک بهتر زبان های برنامه نویسی مختلف در توسعه برنامه های اندرویدی، باید با دو واژه زیر آشنا شوید:
1. برنامه نویسی هیبرید (Hybrid)
2. برنامه نویسی Native
برنامه نویسی هیبرید
در این روشِ برنامه نویسی، برنامه شما با استفاده از HTML، CSS و جاوا اسکریپت و یا تکنولوژی های مرتبط با وب (مثل react native) نوشته می شود.
به هر حال اگر مسیر برنامه نویسی اندروید شما از این راه گذشت، باید مزایا و معایب این روش را بدانید.
به صورت خلاصه، مزیت عمده برنامه نویسی هیبرید در این است که شما می توانید یک بار code base را نوشته و سپس برای پلتفرم های مختلف مثل اندروید استفاده کنید. منظور از code base همان کدی است که منطق برنامه شما را در بر دارد.
البته این مزیت هیبرید بودن اپ ها چندان در ایران کاربردی نیست. چرا که اکثر کاربران ایرانی از سیستم عامل اندروید استفاده می کنند.
در مقابل، عیب برنامه نویسی هیبرید در این است که به صورت بهینه از سخت افزار کاربر نمی تواند استفاده کند. در نتیجه، در برنامه های هیبرید، انتظار عملکرد بالا را نداشته باشید. از طرفی، برنامه نویسان هیبرید، دسترسی کاملی به سخت افزار کاربر ندارند. در واقع به همان سخت افزارهایی هم که دسترسی خواهید داشت، به صورت غیر مستقیم خواهد بود که خود این باعث کاهش سرعت برنامه ها خواهد شد.
نکته: برنامه نویسی اندروید بر اساس تکنولوژی هیبرید، مبتنی بر ابزارهای وب است. شما می توانید از Angular، React Native، جاوا اسکریپت، فریمورک ionic، فلاتر و … استفاده کنید که هر کدام معایب و مزایای خود را دارد.
برنامه نویسی Native
به زبانی ساده، برنامه نویسی Native یعنی استفاده از زبان برنامه نویسی و ابزارهایی که توسعه دهنده هر پلتفرم در اختیار ما قرار داده است.
به عنوان مثال، گوگل (مالک و توسعه دهنده اندروید)، زبان کاتلین و محیط توسعه اندروید استودیو را به عنوان ابزار رسمی توسعه برنامه های اندرویدی معرفی کرده است.
مزیت استفاده از ابزارهای Native در این است که شما می توانید از حداکثر پتانسیل دیوایس کاربر استفاده کنید. همینطور امنیت برنامه ها در این روش بالاتر است. از طرفی سرعت اجرای برنامه های نوشته شده با استفاده از ابزار Native بالا است. علاوه بر اینها، شما به تمام امکانات سخت افزار کاربر به صورت مستقیم دسترسی دارید.
همینطور وقتی شما از محیط توسعه اندروید استودیو استفاده کنید، به امکاناتی دسترسی خواهید داشت که در دیگر محیط های توسعه وجود ندارد.
بنابراین اگر می خواهید یادگیری برنامه نویسی اندروید را شروع کنید، کاتلین پیشنهاد من است. البته ممکن است بپرسید پس جاوا چه میشود؟ زبان جاوا تا قبل از کاتلین، زبان رسمی توسعه برنامه های اندرویدی بود. ولی گوگل تصمیم گرفت بنا به دلایل حقوقی که با اوراکل پیدا کرد و همینطور بهینه بودن زبان کاتلین، جاوا را کنار گذاشته و زبان کاتلین را معرفی کند.
نکته: هواداران دو آتشه جاوا ممکن است از این موضوع ناراضی باشند! ولی داشتن تعصب در فیلد برنامه نویسی اشتباه کامل است. چه برنامه نویسانی که روی زبان پاسکال یا دِلفی تعصب داشتند و امروز مجبور هستند با زبان های جدید کار کنند! زبان برنامه نویسی تیم فوتبال نیست که همیشگی باشد.
البته نباید منکر این شد که برنامه نویسی اندروید با جاوا کامیونیتی فوق العاده ای داره و واقعا حیف شد که این مسائل برای گوگل پیش اومد.
نرم افزار مورد نیاز برنامه نویسی اندروید چیست؟
و اما سوال سوم، چه محیط توسعه ای برای نوشتن برنامه نویسی اندروید نیاز است؟ جواب این سوال کوتاه است. اگر کاتلین را انتخاب می کنید، اندروید استودیو
اندروید استودیو کاملیترین محیط توسعه برنامه نویسی اندروید است. ابزارهایی که برای نوشتن سریع کدها وجود دارد، ایمولاتوری که شبیه ساز یک دیوایس اندرویدی است و می توانید برنامه هایی که می نویسید را روی آن اجرا کنید، ابزارهایی که برای تست برنامه هایتان وجود دارد، آنالیزوری که برای آنالیز فایل های APK در آن است و بسیاری امکانات دیگر، که همه و همه در راستای تسهیل در نوشتن برنامه های اندرویدی است.
سخت افزارهای مورد نیاز برای برنامه نویسی اندروید چیست
و اما سوال چهارم، چه سخت افزاری برای برنامه نویسی اندروید مناسب است. اگر در نظر دارید سیستم جدیدی خریداری کنید، حتما رم 8 گیگ به بالا، حداقل پردازش گر i5 و حافظه SSD سفارش دهید.
ولی اگر توانایی خرید سیستم مناسبی ندارید (مخصوصا با قیمت های این روزها!) می توانید حافظه سیستم تان را از هارد به SSD ارتقا دهید. معجزه می کند!
اگر مجبور هستید با امکانات فعلی شروع کنید، پیشنهاد می شود از گوشی اندرویدی تان به جای ایمولاتور استفاده کنید.
نکته برای بعضی از دوستان تازه وارد: هر چند مطمئن هستم خیلی ها این مورد را میدانند، ولی SSD هارد نیست. نوعی حافظه است. یک بار در یکی از سایت های ارائه دهنده خدمات سرور، چیزی شبیه زیر دیدم:
نوع هارد دیسک | SSD |
بهترین منبع و روش یادگیری برنامه نویسی اندروید چیست؟ آموزشگاه یا کتاب یا پکیج های ویدیویی آموزشی یا خودیادگیری؟
و اما سوال پنجم، که خیلی ها می پرسند. بهترین روش یادگیری برنامه نویسی اندروید چیست؟
در ابتدا روش پیشنهادی خودم را می گویم. از این روش می توانید برای یادگیری هر زبان برنامه نویسی استفاده کنید.
ابتدا یک دوره ویدیویی مناسب در رابطه با برنامه نویسی اندروید پیدا کنید. بعد از یادگیری و اتمام دوره، شروع کنید کتاب هایی به زبان انگلیسی در این رابطه بخوانید. یک کتاب خوب (معمولا از انتشارات Apress) پیدا کنید و مجددا شروع به یادگیری کنید.
اینبار قرار است هم برنامه نویسی اندروید یاد بگیرید و هم اصطلاحات و کلمات تخصصی در زمینه برنامه نویسی اندروید.
بعد از اتمام یک کتاب، شروع کنید به نوشتن برنامه هایی برای استفاده از آموخته هایتان. هر کجا هم به مشکل خورید، می توانید به راحتی از گوگل و با سرچ به زبان انگلیسی، مشکل خود را حل کنید. مطالعه کتابی که پیشنهاد دادم در این مرحله فوق العاده به کار خواهد آمد.
همینطور مطالعه کتاب و یادگیری کلمات تخصصی در حیطه برنامه نویسی اندروید به شما کمک می کند از فیلم های آموزشی رایگان در یوتیوب استفاده کنید.
حالا روش دوم، اگر حال کتاب خواندن ندارید، سعی کنید دو یا سه پکیج مناسب پیدا کنید و به ترتیب (بر اساس سطح هر پکیج) مشاهده کنید.
اگر دقت کرده باشید صحبتی راجع به آموزشگاه نکردم. عواملی مثل هزینه بالا، رفت و آمد و مکتوب نبودن آموزش (با کیفیت فیلم های آموزشی) را کنار می گذارم. مهمترین دلیلی که آموزشگاه رفتن را پیشنهاد نمی کنم به این دلیل است که برنامه نویسی فیلدی نیست که بتوان در 10 جلسه یا 15 جلسه آن را به اتمام رساند.
همینطور در کلاس های برنامه نویسی معمولا سطح افراد یکسان نیست و این باعث می شود که روند آموزشی خیلی کند و در سطحی پایین پیش رود.
یک استثنا:
عده ای شاید نیاز داشته باشند که فقط و فقط سراغ کاتلین بروند و کاتلین را بدون گرفتار شدن در پیچیدگی های برنامه نویسی اندروید یاد بگیرند. و پس از یادگیری کاتلین، سراغ برنامه نویسی اندروید بروند.
حتی می توانند با زبان های ساده تر شروع کنند مثل پایتون، چرا که در شروع کار ممکن است توانایی حل خطاهای برنامه نویسی اندروید را نداشته باشید. بنابراین ابتدا با یکی از ساده ترین و کاربردی ترین زبانها مثل پایتون شروع کنید و بعدا که به درک مناسبی از برنامه نویسی رسیدید، یادگیری برنامه نویسی اندروید را شروع کنید.
ولی خواهش می کنم به هیچ عنوان سراغ زبانی مثل C یا C++ نروید!
چقدر از زبان کاتلین (یا جاوا) در مسیر برنامه نویسی اندروید لازم است؟
یک نکته خیلی خیلی مهم در مسیر برنامه نویسی اندروید این است که بدانید چه مباحثی از زبان کاتلین یا جاوا مورد نیاز است. اینجا هم زبان کاتلین و هم زبان جاوا را مثال می زنم، چون به هر حال ممکن است شما تصمیم خودتان را گرفته باشید که به جای پیشنهاد من که کاتلین هست، جاوا را انتخاب کنید.
ببینید، خوشبختانه برای برنامه نویسی اندروید نیازی نیست شما بر همه زبان کاتلین یا جاوا تسلط پیدا کنید. برای شروع، تسلط بر این مفاهیم کافی است:
1. آشنایی با انواع داده
2. آشنایی با حلقه های تکرار
3. آشنایی با دستورات شرطی
4. آشنایی با فانکشن ها
5. آشنایی با کلاس ها و آبجکت ها (لطفا برای شروع اصراری بر تسلط کامل بر مباحث شی گرایی نداشته باشید، همینکه بر کلاس و آبجکت تسلط پیدا کنید کافی است)
6 آشنایی با آرایه ها و کالکشن ها
7 آشنایی با مدیریت استثنا
بعد از اینکه با این مفاهیم آشنا شدید می توانید یادگیری برنامه نویسی اندروید را شروع کنید. نکته اینکه می توانید بعد از یادگیری اولیه برنامه نویسی اندروید، سطح به سطح بر دانش خود اضافه کنید. در واقع منظورم این است که سعی نکنید در یک مرحله بر کل برنامه نویسی اندروید مسلط شوید. باید به ذهن خود اجازه بدهید که مفاهیم را با گذشت زمان و پله به پله در ذهنتان جاسازی کند!
نتیجه گیری:
بهترین مسیر برنامه نویسی اندروید از نظر بنده به صورت خلاصه به این صورت است:
از زبان کاتلین و محیط توسعه اندروید استودیو استفاده کنید. شروع کنید به یادگیری زبان کاتلین. در نظر داشته باشید که هیچ پیشنیازی لازم ندارید. سعی کنید در ابتدا با فیلم های آموزشی برنامه نویسی اندروید پیش بروید و کم کم با مطالعه منابع زبان انگلیسی، به سمتی بروید که خودتان استاد خودتان شوید. ولی اگر بر زبان انگلیسی تسلط ندارید سعی کنید از حداقل دو یا سه منبع خوب فارسی استفاده کنید. استفاده از پکیج های چند استاد مسلط، به شما دید خوبی نسبت به برنامه نویسی می دهد.
در نهایت ممکن است بخواهید بدانید:
- درآمد برنامه نویسی اندروید و همینطور روش های کسب درآمد از برنامه نویسی اندروید چیست؟
- چقدر زمان برای یادگیری برنامه نویسی اندروید لازم است؟
که می توانید مقالات قبلی را مطالعه کنید.
درباره بهنام خانی
زمانی که تصمیم گرفتم برنامه نویسی را شروع کنم، متوجه شدم که نیاز است زمان زیادی را صرف پیدا کردن منابع مختلفی کنم و با کنار هم قرار دادن مطالب این منابع و کشف ارتباط مطالب با هم، در مورد برنامه نویسی تخصص پیدا کنم. بنابراین بعد از اینکه برنامه نویسی را یاد گرفتم و چند سالی پروژه های مختلف نرم افزاری را پیاده سازی کردم، تدریس را هم به عنوان یک علاقه شروع کردم. پس از چند سال تدریس، تصمیم به ساخت آموزش های ویدیویی گرفتم که بتوانم با زبانی ساده، سریع و کاربردی، حاصل مطالعات و تجربیات بازار کار را در اختیار علاقه مندان به طراحی سایت و اپلیکیشن قرار دهم.
نوشته های بیشتر از بهنام خانی2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
امکان ارسال نظر وجود ندارد.
سلام خسته نباشید
برنامه نویسی اندروید میگن اپن سورسه. یعنی مثل وردپرس هست؟
میگن یه برنامه ای اومده که بدون حتی یک خط کدنویسی برنامه اندروید بسازی
میشه کمی توضیح بدید
سلام بله اگ سورس هست. اون برنامه رو باهاش آشنایی ندارم اسمش رو بگید هر چند کلا این مدل برنامه ها رو فراموش کنید. شما رو محدود به ساختن چند تا اپ ساده می کنن.