مفاهیم مورد نیاز برای آموزش برنامه نویسی اندروید

برنامه نویسی اندروید در حال حاضر به عنوان یکی از پرطرفدارترین مهارت های دنیای دیجیتال و برنامه نویسی در دنیا مطرح می‌شود و هر ساله افراد زیادی عزم خود را برای شروع مسیر یادگیری برنامه نویسی اندروید جزم می‌کنند.برای شروع هر مسیری قطعا باید بدانیم این مسیر از کجا شروع شده و چه تاریخچه ای دارد و اساسا چیست، اما از آنجا که در بستر اینترنت مطالب، پادکست ها و ویدئوهای زیادی در مورد تاریخچه اندروید، شکل گیری هسته مرکزی و البته توسعه آن وجود دارد من تصمیم گرفتم از پرداختن به این موضوع صرف نظر کرده و این مرحله تئوری و البته خواندنی را به خودتان واگذار کنم و بجای آن در این قسمت شما را با اصطلاحات مهم در حوزه زبان برنامه نویسی اندروید آشنا سازم.به طور حتم، عدم وجود زبان مشترک و فهم اصطلاحات مهم ادامه مسیر را برای شما دانشجویان عزیز سخت خواهد کرد.پس به شما توصیه می‌کنم؛ مفاهیم و اصطلاحات مهم برنامه نویسی اندروید را به صورت کامل خوانده و از آن لذت ببرید.کیت توسعه نرم افزاری (SDK)کیت توسعه نرم افزاری یا همان Software Development Kit که از آن به عنوان کیت توسعه نرم افزاری یاد می‌شود مجموعه ای از ابزارهایی است که برای بالابردن سهولت برنامه نویسی در یک محیط یا پلتفرم خاص طراحی و در اختیار برنامه نویسان قرار داده شده است.SDK به برنامه نویس این امکان را می‌دهد تا او بتواند برای نرم افزارخود، چهارچوب، پلتفرم، سیستم کامپیوتر، کنسول گیمینگ و از همه مهم تر سیستم عامل ایجاد نماید. SDK در اندروید نیز در حقیقت همان کیتی است که گوگل در اختیار توسعه دهندگان اندروید قرار داد تا آن ها بتوانند راحت تر اپلیکیشن خود را طراحی کنند.نکته: پس قبل از شروع هر کاری نیاز است تا شما SDK اندروید را بر روی سیستم خود نصب کرده و با استفاده از ابزارهای موجود ایده خود را پیاده سازی کنید.نکته۲: شما به عنوان برنامه نویس اندروید اگر قصد دارید از جاوا استفاده کنید باید کیت Java Development Kit یا همان JDK را دانلود کنید برای این مهم شما می توانید از توسعه دهندگان گوگل و یا سایت جاوا اقدام به این کار کنید. (در حال حاضر شما با مفهوم JDK نیز آشنا شدید.)کیت توسعه بومی(NDK)کیت توسعه بومی یا Native Development Kit، به برنامه نویسان و کاربران این اجازه را می‌دهد که کدهایی که به زبان C و ++C نوشته شده است را در اپلیکیشن خود اجرا کنند.لازم به ذکر است که NDK در حال حاضر زیر مجموعه SDK بوده و برنامه نویس، هنگام نصب اندروید استودیو (در ادامه به آن می‌پردازیم) و SDK، نرم افزارها و ابزارهای مختلفی را نیز همزمان تصب می‌کند.نکته: مهم ترین ویژگی NDK در اپلیکیشن های مالتی مدیا می‌باشد چرا که برنامه نویس می‌تواند از این طریق سرعت اجرای برنامه را بهشکل قابل توجهی بهبود ببخشد.Gradleگرادل یکی از رایج ترین مفاهیم و البته الفاظی است که برنامه نویسان اندروید از آن استفاده می‌کنند. در اصل گرادل به معنی گرفتن خروجی از سیستم (اپلیکیشن طراحی شده) می‌باشد.از مزیت های گرادل می‌توان به امکان شخصی سازی آن اشاره کرد. بدین صورت که شما می‌توانید کدهای خود را در فایل خود وارد کرده و خروجی مدنظر خود را به آسانی دریافت نمایید.نکته: در اندروید استودیو افزونه ای به اسم گرادل وجود دارد که شما می‌توانید از طریق آن به آسانی از برنامه خود خروجی دریافت کنید. این افزونه به زبان groovy نوشته شده است و این موضوع کار برنامه نویس اندروید را بسیار راحت کرده است، چرا که دیگر نیاز به یادگیری این زبان برنامه نویسی نمی‌باشد.(از مزایای اندروید استودیو)شناسه اپلیکیشن اندروید (Manifest)شناسه اپلیکیشن اندروید یا مانیفست که اصطلاح بسیار رایجی در بین برنامه نویسان است، در اصل نشان دهنده جزییات مربوط هویت اپلیکیشن می‌باشد، در اصل مانیفست یک فایل در میان اپلیکیشن های اندرویدی است که در آن اطلاعات متفاوتی بیان می‌شود.مانیفیست فایل بسیار حساسی است البته به این معنا که هر خطایی در ان می‌تواند روند اجرای یک اپلیکیشن را با مشکل مواجه سازد. در داخل مانیفست همانطور که گفته شد تمام جزییات اپلیکیشن قرار میگیرد مثل تم، پوسته کلی، دستورات خاص و…در ادامه به بررسی بسته ها و فایل هایی که داخل مانیفیست قرار گرفته و شما باید با آن ها آشنا شوید، می‌پردازیم.نام بسته (Package name)نام بسته مثل اثر انگشت ما انسان ها برای تمام اپلیکیشن های اندروید متفاوت است و هر اپلیکیشنی اسم بسته خاص خود را دارد، در اصل اسم بسته همان چیزی است که نرم افزارهای دیگری مثل گوگل پلی یا کافه بازار از آن برای انتخاب و نشان دادن برنامه شما به دیگران استفاده می‌کنند.این اسم توسط خود تیم برنامه نویس انتخاب شده و اغلب ترکیبی از سه اسم می‌باشد.وب سرویس یا APIوب سرویس یا Application Programming Interface یک مرز مشترک بین دو سرویس و سیستم مجزا از هم می باشد. API در اصل کدی است که توسط برنامه نویسان نوشته شده و به دیگر برنامه ها این اجازه را می‌دهد تا بتوانند به آن متصل شده و با آن تعامل کنند.برای اینکه کمی این مفهوم برای شما ملموس تر شود آن را با یک مثال پیگیری می‌کنم. بر فرض مثال اپلیکیشنی با یک API مشخص برنامه نویسی می‌شود این بدان معنی است که این برنامه در گوشی اندروید با یک ورژن خاص فقط اجرا می‌شود. به زبان ساده ورژنی که ما در زبان عام از آن برای اندروید یاد می‌کنیم مثلا اندروید ۱۰ در زبان برنامه نویسی به شکل API بیان می‌شود.نکته: API در اندروید وابسته به SDK می باشد.مفاهیم MinSdkVersion و TargetSdkVersionبرنامه نویس باید یک حداقل API را در اپلیکیشن خود و در مانیفست تنظیم کند تا برنامه در API های پایین تر یا همان نسخه های پایین تر اندروید قابل اجرا نباشد، این موضوع همان MinsdkVersion می‌باشد.از طرفی اپلیکیشن ها گرچه ممکن است در نسخه های بالاتر و یا پایین تر اندروید کار کنند اما این نکته حائز اهمیت است که هر اپلیکیشنی قطعا برای یک نسخه خاص طراحی شده است، این نسخه خاص همان Targetsdkversion می باشد.نکته: برنامه نویسان هر دو این تغییرات را می توانند از طریق مانیفست تنظیم کنند.Activityاکتیویتی در اصل به هر یک از صفحات اپلیکیشن اندرویدی اطلاق می‌شود، این صفحات در برنامه یا همان اپلیکیشن اندرویدی کنار هم قرار گرفته و از طریق دکمه های مختلف به هم منتقل می شود. مثل یک بازی که بخش تنظیمات، حساب کاربری، ورود به بازی و … دارد. یک activity از دو بخش مجزا تشکیل شده است:۱) Class۲) Xmlکدهای نوشته شده به زبان برنامه نویسی جاوا که پشت پرده و موتور فعالیت یک برنامه هستند در class قرارگرفته وآن بخش از اپلیکیشن که ما در حال مشاهده و استفاده از آن هستیم در xml قرار دارد.در اصل یک متخصص اندروید، کدهای مریوطه را در جاوا یا همان class قرار داده و ظاهر برنامه، قرارگیری المان های مختلف، رنگ و … را در بخش xml ذخیره می‌کند.Emulator شبیه ساز یکی از پر استفاده ترین بخش ها در طراحی اپلیکیشن اندروید می‌باشد و برای توسعه دهندگان اپلیکیشن یک نیاز اساسی است. همانطور که در این مقاله عرض کردم برنامه نویسان اپلیکیشن هنگام طراحی بارها و بارها از اپ خود خروجی می‌گیرند تا ببینند عملکرد اپلیکیشن به چه صورت می‌باشد.برای این مهم دو راه اساسی وجود دارد؛ تست کردن اپلیکیشن روی یک دستگاه واقعی!، استفاده از شبیه سازاگر دقت داشته باشید تقریبا تمام طراحان اپلیکیشن دو مانیتور پیش روی خود دارند و یک مانیتور را کاملا به بخش emulator اختصاص داده اند.نکته: از بهترین برنامه های شبیه ساز که سرعت قابل قبولی داشته و به ما دستگاه های مختلفی برای تست اپلیکیشن را ارائه می‌دهد می‌توان به genymotion اشاره کرد.اندروید استودیو نیز این ویژگی را در پکیج خود دارد اما سرعت و قدرت genymotion بسیار بیشتر از شبیه ساز گوگل می‌باشد.Android studio و eclipseاندروید استودیو و همچنین eclipse به عنوان دو تا از معروف ترین و قدرتمند ترین محیط های توسعه اندروید در بین برنامه نویسان، مورد استفاده قرار می‌گیرد.گرچه در گذشته eclipse حرف اول را در برنامه نویسی اندروید میزد، اما اندروید استودیو در سال های اخیر با آپدیت های مختلف توانسته به شکل قابل توجهی گوی سبقت را از رقیب خود برباید.در ادامه به بین برخی از برتری های android studio نسبت به eclipse می‌پردازیم:در android studio خطایابی و رفع آن آسان تر است.طراحی رابط کاربری در android studio بسیار راحت تر است.در محیط android studio بررسی منابع مصرفی رم و پردازنده بسیار کامل است.و …نکته: البته لازم به ذکر است که شما برای استفاده و به اصطلاح ران کردن android studio بر روی سیستم خود باید سیستمی قدرتمند با ویژگی های سخت افزاری بالایی داشته باشید.جمع بندیدر این مقاله ما سعی کردیم شما را با اصلی ترین و مهم ترین مفاهیم و اصطلاحات دنیای برنامه نویسی اندروید آشنا سازیم. اگرچه اصطلاحات و مفاهیم اندروید به این تعداد ختم نمی‌شود، اما اگر شما قصد ورود به دنیای برنامه نویسی اندروید را دارید این اصطلاحات پیشنیاز کار شما می‌باشد. در مقالات بعدی، تیم آموزش برنامه نویسی جاوا اندروید آمانج با محتواهای ارزشمند و البته کاربردی شما را در مسیر یادگیری الفبای برنامه نویسی اندروید همراهی خواهد نمود.علی سخا / آکادمی امانج