سه شنبه ۲۳ شهریور ۰۰ ۱۴:۵۶
برنامه نويسي اندرويد و پيشنيازهاي يادگيري آن چيست؟
اندرويد (Android) در اصل يك سيستم عامل متن باز و محصول شركت گوگل است كه توسط اين شركت رشد و توسعه داده شده و بر پايه هسته لينوكس طراحي و ساخته شده است. يكي از دليلهايي كه اين سيستم به متن باز مشهور شد به خاطر اين است كه سورس آن به صورت عموم در دسترس همه مردم قرار دارد و براي استفاده از آن به هيچ عنوان نيازي به دريافت مجوز يا هزينه خاصي نيست.
همان طوري كه بيان كرديم اين زبان برنامه نويسي يك سيستم عامل متن باز است كه هر كاربري در هر جاي دنيا ميتواند با كمي تغيير در سورس آن، يك برنامه و اپليكيشن جديد با تغييرات جديد به وجود بياورد.
مزيتهاي سيستم عامل اندرويد
يكي از مزيتهاي متن باز بودن اندرويد اين است كه تمام كاربران و توسعهدهندهها در سراسر دنيا ميتوانند از سورس آن استفاده كنند و در ارتقاء بخشيدن اين برنامه به ديگر برنامهنويسها كمك كنند. يكي ديگر از مزيتهاي متن باز بودن اندرويد اين است كه باعث شده تا فقط از آن در سيستم عامل گوشي هاي لمسي و هوشمند استفاده نشود و در ديگر دستگاههاي ديگر مانند تبلتها، ساعتها، تلويزيونها، يخچالها و ديگر دستگاههاي هوشمند هم استفاده شود كه اين نشان از انعطافپذيري برنامه نويسي اندرويد است.
مزيت انعطاف پذيري اين سيستم عامل باعث شده تا برنامهنويسها خيلي سريع تر و راحتتر بتوانند اپليكيشنهاي خودشان را توسعه دهند تا به اين وسيله بتوانند از تمام ويژگيها و توان يك گوشي هوشمند بهره كافي را ببرند. انعطافپذيري به اين معنا است كه سازندهها، توسعهدهندهها و برنامهنويسها هم اين توانايي را دارند كه تغييراتي در برنامه اصلي ايجاد كنند و همچنين اينكه سيستم عامل اندرويد هيچ محدوديتي را براي كاربران به هنگام شخصيسازي برنامهها ايجاد نميكند.
با تعاريفي كه از زبان برنامه نويسي اندرويد به شما ارائه شد بايد عنوان كرد كه ساخت نرم افزار با اين زبان برنامه نويسي ساده و راحت نخواهد بود و در برخي موارد براي تبديل يك ايده به يك برنامه ميبايست كدنويسي و طراحيهاي خاصي را انجام داد. بنابراين بايد برنامه نويسي مختلفي از جمله جاوا، سي شارپ و كاتلين را ياد بگيريد تا بتوانيد نرم افزارهاي اندرويدي را ايجاد كنيد. اما در اين بين بهترين زبان براي توسعه اين نرم افزارها، زبان برنامه نويسي جاوا و كاتلين است چرا كه اين دو برنامه توسط شركت گوگل به عنوان زبان هاي رسمي توسعه اپليكيشن هاي اندرويد معرفي شده است.
پيش نياز برنامه نويسي اندرويد
در همين ابتداي كار بايد عنوان كرد كه يكي از پيشنيازهاي اصلي زبان برنامه نويسي اندرويد اين است كه زبان برنامه نويسي جاوا را ياد بگيريد و اجازه دهيد يك مقدار رُك صحبت كنيم: يكي از راههاي نوشتنهاي اپليكيشنهاي اندرويد اين است كه حتماً برنامه نويسي جاوا بلد باشيد و در كل اين مسيري است كه بايد بگذرانيد.
اما يك نكته ي مهم را فراموش نكنيد:
اگر نگران اين هستيد كه براي يادگيري برنامه نويسي اندرويد حتماً بايد به صورت كامل و صد در صد به زبان برنامه نويسي جاوا مسلط باشيد سخت در اشتباهيد چرا كه براي ساخت يك اپليكيشن همين كه به مفاهيم پايهاي برنامه نويسي جاوا آشنا باشيد كافي است. پس اين را فراموش نكنيد كه پيش نياز زبان برنامه نويسي اندرويد اين است كه حتماً اصول و مفاهيم پايهاي زبان برنامه نويسي جاوا را بلد باشيد.
در كل اگر مايل به يادگيري برنامه نويسي اندرويد هستيد و از زبان برنامه نويسي جاوا هيچ اطلاعي نداريد قطعاً در ادامه راه به مشكل بر ميخوريد و اين ميتواند شمارو سرخورده و دلسرد كند پس حتماً به يادگيري اين پيش نياز اهميت بدهيد.
اگر بتوانيد مفاهيم و اصول اوليه و پايهاي برنامه نويسي جاوا را ياد بگيريد هم اعتماد به نفس بيشتري به دست خواهيد آورد و هم اينكه كار ساخت اپليكيشن خيلي خيلي راحتتر پيش خواهد رفت. شايد با نداشتن دانش جاوا بتوانيد به يك برنامه نويس اندرويد تبديل شويد اما بايد به اين نكته توجه داشته باشيد كه اين امكان هم وجود دارد كه روند طراحي يك اپليكيشن به كندي پيش خواهد رفت و سرعت حركت شما خيلي كمتر ميشود.
اما اگر در همين مسير كه مفاهيم و اصول پايهاي زبان برنامه نويسي جاوا را فرا ميگيريد بتوانيد با زبان XML هم آشنا شويد به طور حتم وضعيت خيلي بهتري را براي ساخت اپليكيشن خواهيد داشت. بايد عنوان كرد كه XML يك زبان نشانهگذاري توسعهپذير است كه به وسيله آن به راحتي ميتوانيد اجزاء (UI رابط كاربري) برنامه و اپلكيشن اندرويد خودتان را طراحي كنيد.
تا به اينجا به اين موارد اشاره كرديم كه پيشنيازهاي زبان برنامه نويسي اندرويد شامل چه مواردي هست و به اين نكته اشاره كرديم كه حتماً بايد زبان برنامه نويسي جاوا حتي اگر به صورت پايهاي هست را فرا بگيريد تا در ادامه مسير به مشكل بر نخوريد.
اما حالا به اين موضوع اشاره ميكنيد كه چه مفاهيمي از زبان جاوا براي زبان برنامه نويسي اندرويد كاربرد دارد:
برنامه نويسي اندرويد را از كجا شروع كنيم؟
اگر تصميم گرفتيد كه براي يادگيري و آشنايي با برنامه نويسي اندرويد قدم برداريد اما نميدانيد كه بايد از كجا شروع به كار كنيد، در ادامه اين مقاله ميتوان به برخي نكات اساسي براي شروع اين برنامه نويسي و ساخت اپليكيشن اشاره كرد تا بهتر بتوانيد تواناييها و مهارتهاي خودتان را در اين مسير ارتقاء ببخشيد.
نكته اول: پيدا كردن مهارت و يادگيري زبانهاي برنامه نويسي مورد نياز
در ايجاد كردن و ساختن يك برنامه و اپليكيشن مخصوص اندرويد به دو مهارت و توانايي و زبان برنامه نويسي وابسته است: اندرويد و زبان برنامه نويسي جاوا. زبان برنامه نويسي جاوا در اصل زباني است كه در اندرويد براي ساخت اپليكيشن مورد استفاده قرار ميگيرد اما در قسمت اندرويد موارد ديگر عرض اندام ميكند كه شامل يادگيري مفاهيم و مباني اندرويد، يادگيري زبان برنامه نويسي XML براي طراحي برنامه و اپلكيشن و استفاده از مفاهيم و مباني برنامه نويسي جاوا است.
زماني كه زبان برنامه نويسي XML و جاوا را فرا گرفتيد به اين نياز داريد كه بتوانيد نحوه ارتباط اين دو زبان را به وسيله قواعد اندرويد ياد بگيريد. شايد تصور كنيد كه يادگيري زبان XML خيلي سخت و دشوار باشد اما بايد عنوان كنيم كه يادگيري اين زبان بسيار ساده و راحت است و پيشنهاد ميكنيم كه حتماً در حين ساخت اپليكيشن اين زبان را ياد بگيريد.
نكته دوم: براي شروع به يادگيري برنامه نويسي اندرويد چه كاري بايد انجام داد؟
اولين قدم براي يادگيري زبان برنامه نويسي اندرويد اين است كه زبان برنامه نويسي جاوا را ياد بگيريد چرا كه در اين بين، راه ميان بري وجود ندارد و شايد اين تنها راه حل شما براي ساخت اپليكيشن باشد.
دو برنامهاي كه از آن اسم برديم به نامهاي اكليپس و اندرويد استوديو هر دو محيطهايي براي توسعه يكپارچه هستند و در حال حاضر اين دو برنامه از بهترينها به شمار ميروند و براي نوشتن برنامههاي جاوا پيشنهاد نمي كنيم كه از برنامههاي ديگر استفاده كنيد به خاطر اينكه IDEهايي كه در اين دو برنامه وجود دارد فقط با يك كليك ساده برنامه شما را كامپايل يا به اصطلاح كدها را به فايلهاي اجرايي تبديل ميكنند و اين در صورتي است كه در برنامههاي ديگر هم بايد يك كد براي اجرا نوشته شود و هم يك كد براي كامپايل.
نكته سوم: مدت زماني كه طول ميكشد تا به يك برنامه نويس اندرويد تبديل شويد
اگر قصدتان اين است كه به صورت حرفهاي به يك برنامه نويس تبديل شويد بايد حداقل دو ماه و روزي 4 ساعت وقت براي مطالعه و تمرين صرف كنيد و هر روز به دنبال يادگيري باشيد. شايد در اوايل كار به خاطر اينكه مبتدي هستيد درك و فهم حل مشكلات به وجود آمده حتي اگر يك مشكل كوچك مثل ذخيره كردن داده، خيلي سخت و دشوار باشد اما به مرور زمان اين مورد هم حل خواهد شد و به يك برنامه نويس حرفهاي اندرويد تبديل خواهيد شد كه درآمد زيادي را نصيب خودتان خواهيد كرد.
نكته چهارم: به دست آوردن بهترين منبع و مرجع براي پاسخگويي به سوالات پيش آمده
قطعاً اگر در برنامه نويسي، مبتدي و حتي حرفهاي هم باشيد سوالات زيادي پيش روي شما خواهد بود كه براي حل كردن اين سوالات ميتوانيد دست به دامن گوگل شويد كه يكي از منابع بزرگ و عظيم از حل مشكلات و پاسخگويي به مشكلات است. اگر به دنبال بهترين پاسخها و حل مشكلات در مورد اندرويد هستيد ميتوانيد به سايت استك اورفلو (Stackoverflow) برويد و اگر باز هم نتيجه دلخواهي كه مد نظرتان هست را به دست نياورديد ميتوانيد از سايت رديت (Reddit) استفاده كنيد.
مفاهيم شيگرايي جاوا ويژه برنامه نويسان اندرويدبه مفاهيم شيگرايي به صورت اختصاصي OOP گفته ميشود كه در اصل يكي از بخشهاي جداناپذير از زبان برنامه نويسي جاوا به شمار ميرود و به همين دليل به هيچ عنوان نميتوان اين مفاهيم را حذف كرد. در زير بخشهايي از مفاهيم شيگرايي را براي شما بيان خواهيم كرد:- اشياء و كلاس يا به اصطلاح Object & Class
- انتزاع يا به اصطلاح Abstraction
- چند ريختي يا به اصطلاح Polymorphism
- ارث بري يا به اصطلاح Inheritance
- كپسولهسازي يا به اصطلاح Encapsulation
- اينترفيسها
- مبحث Overriding
مباني و مفاهيم برنامه نويسي جاوا
در مفاهيم و مباني برنامه نويسي جاوا به تمام كلمات كليدي جاوا از جمله كلمه كليدي static، final، try، catch و غيره و همچنين انواع دادههاي اوليه از جمله Integers ،Floating point ، Boolean اشاره ميشود.
مفاهيم Type casting and Visibility
در اين مفهوم ميتوان عمل casting را اينگونه معرفي كرد: تبديل يك شي از يك نوع خاص به يك شي از نوع ديگر.
يادگيري مفاهيمي همچون آرايهها و عملگرها (Arrays and Operators)
در يادگيري زبان برنامه نويسي اندرويد مفاهيم آرايه و عملگر به دستههاي زير تقسيمبندي ميشوند:
- آرايه تك بعدي (One Dimensional Array)
- آرايه دو بعدي (Multidimensional Array)
- عملگرهاي محاسباتي (Arithmetic operators)
- عملگرهاي انتسابي (Assignment Operators)
- عملگرهاي رابطهاي (Relational Operators)
مفاهيم عبارات كنترلي (Control Statements)
اين نوع عبارات به دو قسمت تقسيمبندي ميشوند:
قسمت اول: عبارات شرطي و انتخابي جاوا مانند switch، If-else ، If
قسمت دوم: عبارات تكرار در جاوا يا همان حلقهها مانند While، do-while، for
مفاهيم اصول كلاس
در برنامه نويسي جاوا كه پيشنياز زبان برنامه نويسي اندرويد هم به حساب ميآيد بخشي به عنوان مفاهيم اصول كلاس وجود دارد كه به قسمتهاي زير دسته بندي ميشوند.
- ايجاد كلاس
- تعريف اشياء
- متدها
- درك static و متدها
- متدهاي دسترسي به كلاس
- سازندهها (Constructors) و زباله روبي (Garbage collection)
مفاهيم و مباني وراثت، اينترفيس و پكيج (Inheritance, Interface and package)
- روش ايجاد اينترفيس
- روش ايجاد پكيج در جاوا
- روش استفاده از كلمه كليدي super
- كلاسهاي انتزاعي يا abstract
- روش به ارث بردن كلاس
مفاهيم چند نخي و مديريت استثناءها (Multithreading and Exception Handling)
- روش ايجاد Thread در جاوا
- مديريت Thread در جاوا
- كار با دستورهاي try-catch
- روش ايجاد چند نخي
مفهوهم Java Annotations and IO
اين بخش از زبان برنامه نويسي جاوا هم به بخشهاي متعددي تقسيمبندي ميشود. از جمله:
InheritedOverrideDeprecatedSuppress WarningsReading writing FilesStreamsمفهوم Generics and Collection Classes
مورد آخر از زبان جاوا كه پيشنياز يادگيري اندرويد است به موارد زير ختم ميشود:
Generic ClassesGeneric InterfacesThe Array List ClassThe Hash Set Classاين مواردي كه در مورد مفاهيم پايهاي جاوا بيان شد در اصل همان پيشنيازهاي زبان برنامه نويسي اندرويد به شمار ميرود تا به اين وسيله اگر مايل به يادگيري برنامه نويسي اندرويد بوديد بتوانيد با استفاده از زبان جاوا نيازهاي اوليه براي ساخت اپليكيشن را برطرف نماييد.
وب سايت آكادمي آمانج(https://amanjacademy.com/) به صورت كامل به سرفصل هاي دوره آموزش برنامه نويسي اندرويد پرداخته است كه مي توانيد به آن مراجعه كنيد.