10 پیش نیاز برای یادگیری برنامه نویسی اندروید

برنامه نویسی

1398/01/12 11:59:00 صبح

این سوال که برای شروع برنامه نویسی اندروید  چقدر جاوا باید یادبگیریم و کدوم مفاهیم جاوا برای برنامه نویسی اندروید کاربرد دارد را زیاد شنیده ایم! البته پاسخ های متفاوت و ضد و نقیضی نیز از دوستان و اطرافیان خود شنیده ایم! در این مقاله قصد داریم یکبار برای همیشه به این سوال پاسخ دهیم و رفع ابهام کنیم.


اندروید یک سیستم عامل است که مبتنی بر هسته لینوکس ساخته شده است که روی دستگاه هایی نظیر تبلت ،گوشی هوشمندو.. اجرا می شود.
توسعه دهندگانی که دوست دارند اندروید را یادبگیرند باید بر مفاهیم Core Java تسلط داشته باشند.


برای اطلاع از زبان برنامه نویسی جاوا پیشنهاد می کنیم مقاله های بیشتری را مطالعه کنید. یک برنامه کاربردی اندروید را می توان با زبان Java یا زبان سی پلاس پلاس توسعه داد. 


جاوا برای مبتدی هایی که قصد دارند اندروید یاد بگیرند بسیار مناسب می باشد.جاوا یک زبان حرفه ای است که برای بهره بردن از قابلیت های اصلی سیستم عامل اندروید استفاده از آن به شدت توصیه شده است.
پیش نیازهایی که برای توسعه برنامه های اندرویدی مهم است و قراره بهتون معرفی کنیم ممکن است برای شما تعجب آور باشد. چرا تعجب آور؟! چرا نمی توانیم به طور مستقیم به سمت برنامه نویسی اندروید پرش کنیم؟! چون من شنیدم که میگن ی خورده جاوا بلد باشی یا شی گرایی رو خونده باشید میتونیم بریم سراغ اندروید!!!!


پاسخ خیلی ساده است!!! اکثر منابع آموزشی برنامه نویسی اندروید عطر و طعم جاوا را دارند! اگر شما دانش کافی در جاوا ندارید، نمی توانید یک اپلیکیشن کامل اندرویدی بسازید. قبل از شروع آموزش برنامه نویسی اندروید شما باید مفاهیم پایه جاوا را بدانید.


خب در کنار Java برای توسعه اپلیکیشن های اندرویدی نیاز به زبان XML داریم. XML یک زبان نشانه گذاری توسعه پذیر است که از طریق آن می توانید اجزای UI (رابط کاربری) برنامه اندرویدی خود را طراحی کنید. یادگیری زبان XML برای برنامه نویسی اندروید امری اجتناب ناپذیر است.


بسیاری از افراد نمی دانند چگونه برنامه نویسی اندروید را شروع کنند. آیا باید با " Hello World" شروع کنیم؟! خیر! مفاهیم Core Java به شما اعتماد به نفس کافی برای یادگیری سریع اندروید را می دهد. مثلا مگه میشه هنوز ریاضی 1 را پاس نکردید! ریاضی 2 را پاس کنید؟! شاید بگید دوتاش رو باهم میخونم!! درسته اما مطمئنا فشار زیادی را تحمل خواهید کرد و اعتماد به نفس پایین تری در مقایسه با کسی که ریاضی 1 را پاس کرده، خواهید داشت. پس ابتدا دانش خود را در زمینه Core Java بالا ببرید بعد مثل شیر به سراغ یادگیری اندروید بروید.


خب تا اینجا دونستیم که برای یادگیری سریع و آسان برنامه نویسی اندروید نیاز به دو زبان Java و XML داریم.در مورد جاوا گفتیم باید نسخه Core Java را یادگرفته باشید.خب سوالی که پیش میاد این است که Core Java مفاهیم زیادی داره دقیقا کدوم مفاهیم از جاوا برای اندروید کاربرد دارد که بصورت هدفمند آن را یاد بگیریم؟ ما مباحثی از جاوا که برای یادگیری اندروید ضروری است را در زیر برای شما گردآوری کرده ایم:



1.مفاهیم شی گرایی جاوا (Java Object oriented concepts):

OOP یا همان برنامه نویسی شی گرایی بخش جدایی ناپذیر از زبان جاوا است، بنابراین هرگز نمی توانیم این مفاهیم را حذف کنیم. مفاهیم شی گرایی جاوا شامل چه مباحثی می شود؟
مفاهیم شی گرایی جاوا شامل مفاهیم زیر می شود:

•   Object & Classes (اشیا و کلاس)
• Abstraction (انتزاع)
• Encapsulation (کپسوله سازی)
• Polymorphism(چندریختی)
• Inheritance (ارث بری)
• Overriding 
• Interfaces


لازم به ذکر است ما تمام مفاهیم شی گرایی جاوا را بصورت ساده در این سایت آموزش داده ایم.



2.مبانی جاوا

این بخش به همه کلمات کلیدی جاوا ، نظیر کلمه کلیدی static ، کلمه کلیدی final ،try،catch  و... اشاره دارد.
انواع داده های اولیه نظیر Integers, Floating point, Boolean.



3.Type casting and Visibility 

عمل casting در واقع یعنی یک شی از یک نوع خاص را به یک شی از نوع دیگر تبدیل کنیم. به مثال زیر توجه کنید:
 
int  a=123;
short  b=(short) a;
 
 

در مثال بالا متغیر a از نوع int  می باشد. قراره که مقدار متغیر a را درون متغیر b بریزیم. اما چون متغیر a  از نوع int  و متغیر b از نوع short هستش مستقیم این امکان وجود ندارد! و تنها با عمل Casting می توانیم متغیر a را به short تبدیل کرده و آنگاه می توانیم مقدار متغیر a را درون b بریزیم.  
البته اینجا قرار نبود اموزش بدم!!! و هر چیزی جا و مکانی داره! :-) اما برای درک بهتر نسبت به مفهوم casting لازم بود. البته این نکته را در نظر بگیرید که هر شی از نوع خاص را نمی توان به شی از نوع دیگری casting کنیم. مثال زیر توجه کنید:
 
int a = 123;
String  b = (String) a;
 
در مثال بالا امکان casting برای دو متغیر a و b وجود ندارد! چرا که نمیشه متغیر از نوع int   را با عمل casting داخل متغیری از نوع String ریخت.
خب همه اینا رو گفتیم که به اصل مطلب زیر برسیم:
جایی که می توانیم روی دو شی عمل casting انجام دهیم می گوییم Casting compatible و در جایی که نمی توانیم رو دو شی عمل casting را انجام دهیم می گوییم Casting  incompatible خب که چی؟!
تمام این توضیحات رو دادیم که بگیم یادگیری مفاهیم Casting compatible و Casting  incompatible برای اندروید ضروری است!!!!
همچنین مفاهیم انواع Access modifiers نظیر Public, Private, and Protected پیشنیاز یادگیری اندروید هستند.
در کل مفاهیم زیر برای یادگیری اندروید ضروری است:
• Casting compatible and incompatible Types.
• Access modifiers : Public, Private, and Protected.


4.آرایه ها و عملگرها (Arrays and Operators):

•    One Dimensional Array ( آرایه یک بعدی)
• Multidimensional Array (آرایه چند بعدی نظیر آرایه دو بعدی)
• Arithmetic operators (عملگرهای محاسباتی)
• Relational Operators (عملگرهای رابطه ای)
• Assignment Operators (عملگرهای انتسابی)



5.عبارات کنترلی (Control Statements):

عبارات شرطی و انتخابی جاوا نظیر If, If-else, switch
عبارات تکرار در جاوا یا همون حلقه ها نظیر While, do-while, for



6.اصول کلاس

• ایجاد کلاس
• متدهای دسرسی به کلاس
• تعریف اشیا
• سازنده ها (Constructors) و زباله روبی (Garbage collection)
• متدها
• درک static و متدها



7.Inheritance, Interface and package (وراثت، اینترفیس و پکیج )

• روش به ارث بردن کلاس
• روش استفاده از کلمه کلیدی super

• روش ایجاد اینترفیس
• کلاس های انتزاعی یا abstract
• روش ایجاد پکیج در جاوا



8.Multithreading and Exception Handling (چندنخی و مدیریت استثناها)

• روش ایجاد Thread در جاوا
• مدیریت Thread در جاوا
• Try.. catch

•    روش ایجاد چندنخی


9.Java Annotations and IO

• @Inherited
• @Override
• @Deprecated
• @SuppressWarnings
• Reading writing Files (خواندن و نوشتن فایل)
• Streams


10.Generics and Collection Classes 

• Generic Classes
• Generic Interfaces
• The ArrayList Class
• The HashSet Class