نقشه راه برنامه نویسی اندروید – از صفر تا صد مسیر پیشرفت

۲۳۴۹ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۲۵ دقیقه
نقشه راه برنامه نویسی اندروید – از صفر تا صد مسیر پیشرفت

«نقشه راه» (Roadmap) برنامه‌ای استراتژیک شامل مراحل اساسی برای دستیابی به هدف یا نتیجه مطلوب است. از نقشه راه در هر حوزه‌ای می‌توان استفاده کرد. محبوبیت برنامه نویسی اندروید در سال‌های اخیر به قدری افزایش یافته است که تقریباً اکثر افراد در مورد آن چیز‌هایی شنیده‌اند. از این رو، با وجود چالش‌های بسیار در این مسیر، عده زیادی تصمیم می‌گیرند که وارد دنیای برنامه نویسی موبایل و توسعه اندروید شوند. در این نوشته، تحت عنوان نقشه راه برنامه نویسی اندروید به گام‌های اساسی در مسیر یادگیری برنامه نویسی اندروید پرداخته‌ایم. اولین ایستگاه در نقشه راه برنامه نویسی اندروید، انتخاب محیط توسعه و زبان برنامه نویسی است. علاوه بر این، به موضوعاتی همچون آشنایی با ساختار اپلیکیشن اندروید، اصول طراحی رابط کاربری (User Interface | UI)، انتخاب معماری مناسب اپلیکیشن و بسیاری از گام‌های دیگر در نقشه راه برنامه نویسی اندروید پرداخته شده است.

فهرست مطالب این نوشته

اندروید چیست؟

اندروید سیستم عامل و پلتفرم برنامه نویسی است که در درجه اول به عنوان سیستم عامل پایه تلفن‌ها و تبلت‌ها شناخته می‌شود. علاوه بر این، سایر سیستم عامل‌ها همچون ویندوز 11 و «سیستم عامل کروم» (Chrome OS) به صورت بومی از برنامه‌های اندروید پشتیبانی می‌کنند.

غول موتور جستجو یعنی شرکت گوگل صاحب سیستم عامل موبایل اندروید است. با این وجود، اندروید «منبع آزاد» (Open-Source) به حساب می‌آید و گوگل آن را آزادنه برای همه، حتی برای استفاده تجاری در دسترس قرار داده است. همین مسئله باعث تفاوت و تمایز اندروید نسبت به سایر رقبا همچون iOS، ویندوز مایکروسافت و macOS شده است که همگی انحصاری هستند. اندروید با در اختیار داشتن 70 درصد بازار سیستم عامل موبایل به عنوان محبوب‌ترین سیستم عامل جهان شناخته می‌شود.

اندروید چیست

هدف از یادگیری برنامه نویسی اندروید چیست؟

امروزه، با توجه با همه‌گیر شدن استفاده از گوشی‌های هوشمند و به دنبال آن، بالا بودن درصد استفاده از سیستم عامل اندروید در این دستگاه‌ها، نیاز به برنامه نویس اندروید ماهر بیش از گذشته احساس می‌شود. اپلیکیشن‌های اندرویدی امروزه به بخش جدایی ناپذیر زندگی ما تبدیل شده‌اند و برای بسیاری از مقاصد نظیر سرگرمی، امور مالی، برنامه‌ریزی، کاربردی، سفر و رفت‌وآمد مورد استفاده قرار می‌گیرند.

با این حساب یک توسعه‌دهنده ماهر اندروید می‌تواند تنها با یک اپلیکیشن مشکلات میلیون‌ها نفر را برطرف کند. با وجود 5.9 میلیون برنامه نویس اندروید در سراسر جهان، به دلیل تقاضای زیاد در این حوزه از برنامه نویسی، بازهم بسیاری از کسب و کار‌ها با کمبود فرد متخصص مواجه هستند. پس می‌توان گفت در شرایط کنونی با وجود فرصت‌های شغلی زیاد برای برنامه نویس اندروید، انتخاب این شاخه کاملاً منطقی و درست است. پس اگر تصمیم به یادگیری برنامه نویسی اندروید گرفته‌اید، باید بدانید که با در دست داشتن نقشه راه برنامه نویسی اندروید خیلی سریع‌تر و بدون دغدغه می‌توان وارد این شاخه پر تقاضا و جذاب شد.

نقشه راه چیست؟

«نقشه راه» (Roadmap) برنامه‌ای استراتژیک برای تعریف هدف یا نتیجه مطلوب است و شامل مراحل اصلی یا نقاط عطف برای رسیدن به آن می‌شود. علاوه بر این، نقشه راه به عنوان ابزار ارتباطی و سندی سطح بالا به منظور بیان تفکر راهبردی و چرایی هدف نیز در نظر گرفته می‌شود. به عنوان مثال، در این نوشته، نقشه راه برنامه نویسی اندروید معرفی شده است که شامل گام‌های اساسی در مسیر یادگیری برنامه نویسی اندروید می‌شود.

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

نقشه راه چیست

یادگیری برنامه نویسی اندروید چقدر طول می کشد؟

اگر صادقانه بیان شود، مدت زمان زیادی برای یادگیری برنامه نویسی اندروید نیاز است. با این حال، تبدیل شدن به برنامه نویس و توسعه دهنده اندروید نباید بیشتر از تبدیل شدن به هر نوع توسعه دهنده دیگری طول بکشد. به طور کلی تسلط بر مفاهیم اساسی حدوداً شش ماه طول می‌کشد و اگر برنامه نویسی اندروید به صورت عمیق‌تر و با بهترین روش‌ها دنبال شود، ممکن است چند سال زمان ببرد.

این زمان ممکن است طولانی به نظر برسد، اما با داشتن نقشه راه برنامه نویسی اندروید که مدون و بهینه باشد، همه چیز بسیار راحت‌تر خواهد شد. در این مطلب سعی شده است تا حد امکان بهترین نقشه راه برنامه نویسی اندروید ارائه شود تا به ساده‌ترین، سریع‌ترین و بهترین شکل ممکن بتوان به یک برنامه نویس حرفه‌ای اندروید تبدیل شد.

نقشه راه برنامه نویسی اندروید

اگر به تبدیل شدن به برنامه نویس اندروید به عنوان مقصد سفر خود بنگریم، در این مسیر جذاب نیاز است تا گام به گام اصولی را به ترتیب فرا بگیریم. اصلی‌ترین بخش در این سفر نیز داشتن نقشه راه برنامه نویسی اندروید است که به طور دقیق گام‌های اساسی در این حوزه را پوشش دهد. در ادامه این نوشته تمام بخش‌های اساسی در مسیر یادگیری برنامه نویسی اندروید فهرست شده‌اند.

انتخاب IDE مناسب اولین گام در نقشه راه برنامه نویسی اندروید

اولین ایستگاه در نقشه راه برنامه نویسی اندروید انتخاب «محیط توسعه یکپارچه» (Integrated Development Environment | IDE) است. IDE نرم‌افزاری کاربردی است که امکانات جامعی را برای برنامه نویسان کامپیوتر به منظور توسعه نرم‌افزار فراهم می‌کند.

انتخاب محیط توسعه مناسب اولین گام نقشه راه برنامه نویسی اندروید

توسعه‌دهندگان از IDE برای نوشتن، مدیریت و پیاده‌سازی کدهای خود در حین اجرای برنامه استفاده می‌کنند. در زمینه نوشتن و ویرایش کدها نیز IDEها عملکردهای بسیار خوبی مانند «تکمیل خودکار کدها» (Auto Complete) و «هایلات کردن سینتکس» (Syntax Highlighting) را برای برنامه نویسان فراهم می‌کنند. زمانی که IDE سینتکس زبان برنامه نویسی مورد استفاده را تشخیص می‌دهد، نشانه‌‌هایی بصری را اضافه می‌کند؛ با شفاف‌سازی بصری عناصر مختلف در IDEها، خواندن کدها بسیار آسان‌تر می‌شود.

در IDE همچنین قابلیت پیش‌بینی کدنویسی وجود دارد و کدهایی که ممکن است مد نظر برنامه نویس باشد به او پیشنهاد داده می‌شود تا فرد ناچار به تایپ کردن کدها تا انتها نشود که همین مورد به راحت‌تر شدن کدنویسی کمک می‌کند. بر همین اساس، IDE در محدوده مورد نظر می‌تواند نام کلاس‌ها، متد‌ها، فیلدها و کلمات کلیدی را تکمیل کند. بعد از آشنایی با ویژگی‌ها و امکانات متعدد IDEها، در ادامه محبوب‌ترین IDEها در برنامه نویسی اندروید فهرست شده‌اند.

معرفی محیط توسعه اندروید استودیو برای برنامه نویسی اندروید

انتخاب IDE ایده‌آل برای برنامه نویسی اندروید کار آسانی نیست. قبل از انتخاب باید چندین فاکتور مختلف را در نظر گرفت. با این حال توصیه می‌شود در نقشه راه برنامه نویسی اندروید از IDE اندروید استودیو استفاده شود. زیرا این IDE به صورت رسمی به عنوان بهترین IDE برنامه نویسی اندروید انتخاب شده است. در ادامه «اندروید استودیو» (Android Studio) را مورد بررسی قرار می‌دهیم؛ اندروید استودیو محیط رسمی توسعه اندروید است که بر اساس نرم‌افزار IntelliJ IDEA توسط شرکت JetBrains ساخته شده است.

اندروید استودیو

اندروید استودیو شامل همه ابزار‌های لازم برای توسعه برنامه‌های اندرویدی با کیفیت بالا است. در ادامه، برخی ويژگی‌هایی از اندروید استودیو ارائه شده‌اند که باعث صرفه‌جویی در زمان توسعه و افزایش بهره‌وری می‌شوند.

  • سیستم ساخت مبتنی بر Gradle
  • پشتیبانی از سرویس Google Cloud Platform
  • امکان توسعه برنامه برای تمام دستگاه‌های اندرویدی
  • طیف گسترده‌ای از فریمورک‌ها و ابزار‌های تست
  • امکان اعمال تغییرات در برنامه بدون کامپایل مجدد
  • پشتیبانی از زبان برنامه نویسی ++C
  • دارای ویرایشگر «چیدمان» (Layout)
  • مجهز به «شبیه‌ساز» (Emulator) سریع
  • دارای ویرایشگر کد هوشمند
  • کاملاُ رایگان

انتخاب زبان برنامه نویسی در نقشه راه توسعه اندروید

بعد از تعیین محیط توسعه، ایستگاه بعدی در نقشه راه برنامه نویسی اندروید انتخاب زبان برنامه نویسی مناسب است. با اینکه برای برنامه نویسی اندروید زبان‌های زیادی وجود دارد، اما تنها دو زبان کاتلین (Kotlin) و جاوا (Java) به عنوان زبان بومی رسمی برای توسعه اندروید توسط گوگل معرفی شده‌اند.

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

زبان برنامه نویسی جاوا Java

زبان جاوا اولین زبان رسمی برای برنامه نویسی اندروید به حساب می‌آید و همچنین، اولین برنامه‌های اندرویدی با زبان جاوا توسعه داده شده‌اند. زبان جاوا به مدت یک دهه تنها زبان رسمی و بومی برای برنامه نویسی اندروید بود تا اینکه در سال 2019 میلادی (1398 شمسی) گوگل زبان کاتلین را به عنوان دومین زبان رسمی برای توسعه برنامه‌های اندرویدی معرفی کرد.

زبان برنامه نویسی جاوا برای اندروید

جاوا زبانی شی‌گرا و «منبع آزاد» (Open-Source) است. اگرچه جاوا زبانی به نسبت قدیمی محسوب می‌شود، اما همچنان دلایل محکمی برای استفاده از آن در برنامه نویسی اندروید وجود دارد و بسیاری از تیم‌های برنامه نویسی هنوز از جاوا برای توسعه برنامه‌های اندرویدی استفاده می‌کنند. در ادامه، دلایل استفاده از زبان جاوا بیان شده است.

  • تقریباً روی هر سیستمی کار می‌کند.
  • برای وب‌سایت‌ها و برنامه‌های موبایل کاربرد دارد.
  • منبع آزاد است.
  • شی‌گرا است.
  • جامعه برنامه نویسی گسترده‌ای دارد.

برای برنامه نویس «تازه‌کار» (Junior) یادگیری جاوا مهارت بسیار خوبی به حساب می‌آید، اما ضروری نیست. در ادامه، زبان کاتلین مورد بررسی قرار خواهد گرفت. باید گفت کاتلین هم مبتنی بر جاوا است و براساس زبان جاوا توسعه داده شده است. بنابراین با یادگیری جاوا می‌توان کاتلین را هم بهتر یاد گرفت و توصیه می‌شود حداقل آشنایی مقدماتی با این زبان بدست آید.

زبان برنامه نویسی کاتلین

زبان برنامه نویسی کاتلین، توانست عنوان زبان رسمی توسعه اندروید را بعد از حدود 10 سال که در اختیار جاوا بود، از آنِ خود کند. در حال حاضر، کاتلین بعد از جاوا به عنوان دومین زبان رسمی برنامه نویسی اندروید شناخته می‌شود.

زبان کاتلین برای برنامه نویسی اندروید

البته در انتخاب کاتلین جای تعجبی نیست، زیرا این زبان در سال 2011 میلادی (1390 شمسی) توسط شرکت JetBrains توسعه یافته و از آن زمان تا کنون پیوسته در حال توسعه مداوم بوده است. در ادامه، ویژگی‌های اصلی کاتلین را فهرست کرده‌ایم.

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

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

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

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

در سال‌های اخیر با گسترش روزافزون گوشی‌های هوشمند مبتنی بر سیستم عامل اندروید، بسیاری از مشاغل و کسب و کار‌ها درصدد استخدام نیروی برنامه نویس اندروید برآمده‌اند. از همین رو، با توجه به تقاضای زیاد برای استخدام برنامه نویس اندروید و همچنین، فرصت‌های شغلی گسترده برای این ردیف شغلی، بسیاری از افراد به دنبال فراگیری برنامه نویسی اندروید و کسب درآمد از آن هستند. علاوه بر این، با یادگیری برنامه نویسی اندروید می‌توان ایده‌های خلاقانه بسیاری را پیاده‌سازی کرد.
در پلتفرم فرادرس، دوره‌های آموزشی مرتبط با برنامه نویسی اندروید در «مجموعه آموزش‌های اندروید» قابل دسترسی هستند. در مجموعه آموزش‌های برنامه نویسی اندروید فرادرس، علاوه بر 3 دوره آموزش مقدماتی، تکمیلی و پیشرفته اندروید، دوره‌های پروژه محور و دوره‌هایی هم برای کاربرد‌های خاص یا بخش‌های مهم مربوط به توسعه اندروید، مانند ارتباط با پایگاه داده نیز در دسترس علاقه‌مندان قرار دارند. در طول این مطلب سعی شده است با معرفی دوره‌های مرتبط از این مجموعه، یک مسیر یادگیری مشخص در نقشه راه برنامه نویسی اندروید براساس دوره‌های آموزشی فرادرس به مخاطبان ارائه شود.

گام سوم نقشه راه برنامه نویسی اندروید آشنایی با ساختار اپلیکیشن اندروید

نقطه توقف بعدی در نقشه راه برنامه نویسی اندروید، آشنایی با ساختار اپلیکیشن است. مهندسان خودرو بدون شناختن قطعات تشکیل دهنده خودرو نمی‌توانند خودرویی بسازند. همین موضوع در خصوص برنامه نویسان اندروید نیز صادق است. اجزای اصلی برنامه اندرویدی عبارتند از:

  • Activity
  • Fragment
  • Intent
  • Service
  • Manifest
  • «منابع» (Resources)

در ادامه این بخش هر کدام از اجزای اصلی برنامه اندرویدی به طور دقیق‌تر در زیربخش‌هایی جداگانه شرح داده شده‌اند.

Activity در برنامه نویسی اندروید

بهترین راه برای درک نحوه کار «Activity» (فعالیت) در اندروید، نگاه کردن به صفحه یک اپلیکیشن اندرویدی است. اکتیویتی «ماژولی» (Module) مستقل از عملکرد برنامه به حساب می‌آید و امکان استفاده از آن به طور کامل در سایر برنامه‌ها نیز وجود دارد.

همه اکتیویتی‌های برنامه «چرخه حیات» (Lifecycle) مخصوص به خود را دارند که مفهومی مهم در مدیریت اکتیویتی‌ها و منابع به حساب می‌آید. کلاس اکتیویتی دارای مجموعه‌ای از «متد‌های بازگشتی» (Callback Method) است که تغییر وضعیت چرخه حیات اکتیویتی را اطلاع رسانی می‌کند. در ادامه، مهم‌ترین متدهای بازگشتی در چرخه حیات اکتیویتی ارائه شده است.

  • onCreate(): این متد در زمان ساخت اکتیویتی برنامه فراخوانی می‌شود. کار‌هایی نظیر ساخت ویو‌های برنامه که تنها یک بار انجام می‌شوند، در این بخش باید آورده شوند.
  • onStart(): این متد بعد از فراخوانی متد onCreate() و زمانی فراخوانی می‌شود که اکتیویتی برای کاربر قابل مشاهده است.
  • onResume(): در این بخش اکتیویتی برنامه آماده تعامل با کاربر است.
  • onPause()  : فراخوانی این متد به معنای خارج شدن کاربر از اکتیویتی جاری است. به عنوان مثال، هنگام خارج شدن کاربر از برنامه برای پاسخگویی به تماس این متد فراخوانی می‌شود و در زمان بازگشت مجدد به برنامه متد onResume() فراخوانی خواهد شد.
  • onStop()  : زمانی که کاربر به طور کامل از اکتیویتی خارج شده و وارد اکتیویتی دیگری می‌شود، این متد فراخوانی خواهد شد.
  • onDestroy()  : در زمان از بین رفتن و بستن اکتیویتی توسط کاربر، این متد فراخوانی می‌شود.

Fragment در برنامه نویسی اندروید

بهترین ترجمه برای «Fragment» در معنای لغوی آن، می‌تواند عبارت «بخش یا قطعه» باشد. در واقع، فرگمنت‌ها را می‌توان به عنوان زیر‌مجموعه یا بخشی از اکتیویتی در نظر گرفت. هر اکتیویتی از چند فرگمنت تشکیل می‌شود و هر فرگمنت نیز می‌تواند در چندین اکتیویتی استفاده شود. بنابراین، فرگمنت‌ها به تنهایی قابلیت اجرا ندارند و به اکتیوتی والد خود برای اجرا وابسته هستند.

استفاده از فرگمنت‌ها در طراحی رابط کاربری (UI) یکی از بهترین و کارآمدترین شیوه‌ها است، زیرا به کمک آن‌ها اکتیویتی‌ها به چندین بخش کوچک‌تر تقسیم می‌شوند. همچنین، زمانی که نیاز به استفاده از یک رابط در صفحه‌نمایش‌های مختلف مانند تبلت‌ها وجود داشته باشد، به کار بردن و استفاده از فرگمنت بهترین انتخاب است.

فرگمنت و اکتیویتی در اندروید

در تصویر بالا، اکتیویتی مشخص شده به کمک فرگمنت به چندین بخش تقسیم شده است.

 

Intent در اندروید

اصطلاح «Inten» در لغت به معنای «قصد و هدف» است. در برنامه نویسی اندروید نیز با استفاده از اینتنت‌ها به سیستم عامل اندروید اعلام می‌کنیم که قصد انجام چه کاری را داریم. اینتنت‌ها را می‌توان به عنوان پیوند دهنده یا حلقه اتصال اکتیویتی‌ها در برنامه در نظر گرفت. با استفاده از Intent امکان جابجایی از یک اکتیویتی به اکتیویتی دیگر یا از یک صفحه به صفحه‌ای دیگر وجود دارد. در اندروید، 3 نوع اینتنت مختلف وجود دارد.

  1. «Explicit Intent» (اینتنت‌های صریح): این اینتنت‌ها مقصد مشخصی دارند و با ارجاع به نام کلاس مورد نظر باعث اجرای اکتیویتی می‌شوند. به عنوان مثال، جابجایی بین اکتیویتی‌های برنامه با استفاده از این نوع اینتنت انجام می‌شود.
  2. «Implicit intent» (اینتنت‌های ضمنی): در این نوع اینتنت‌ها، مقصد مشخص نیست و بدون نیاز به نام کلاس می‌توان از آن‌ها استفاده کرد. زمانی که قصد انجام کاری را داریم ولی مهم نیست که این کار با چه سرویس یا اکتیویتی انجام شود، از این نوع اینتنت استفاده می‌شود. به عنوان مثال، ارسال sms با استفاده از این نوع اینتنت انجام می‌شود، زیرا تنها هدف مهم است و اهمیتی ندارد که این کار با چه نرم‌افزاری انجام شود.
  3. «Broadcast Intent» (اینتنت پراکنش): این نوع اینتنت‌ها هدف یا کار مشخص شده را به تمام برنامه‌های گیرنده ارسال می‌کنند. به عنوان مثال، برنامه می‌تواند به تمام اپلیکیشن‌های موجود در گوشی اطلاع دهد که اطلاعات مشخصی در حال حاضر موجود شده‌اند.

اینتنت‌ها کاربردهای زیادی در برنامه نویسی اندروید دارند. در ادامه، مهم‌ترین کاربردهای اینتنت آورده شده است.

  • اجرای اکتیویتی
  • راه‌اندازی سرویس جدید
  • ارسال پیام به Broadcast Receiver

سرویس ها در توسعه اندروید

سرویس‌ها (Services) در اندروید یکی از مهم‌ترین بخش‌ها هستند. سرویس‌ها شامل تمام فرایند‌هایی هستند که باید در پس‌زمینه برنامه و دور از چشم کاربر انجام شوند. در واقع، سرویس‌ها فاقد هر گونه رابط کاربری هستند. در اندروید سرویس‌ها به 2 دسته کلی تقسیم می‌شوند.

  • Background Services: این سرویس‌ بدون اطلاع کاربر در پس‌زمینه برنامه اقدام به پردازش اطلاعات می‌کند حتی در صورتی که کاربر از برنامه استفاده نکند.
  • Foreground Services: این سرویس‌ نیز با وجود اینکه در پس‌زمینه برنامه اقدام به پردازش اطلاعات می‌کند، اما با استفاده از «اعلان» (Notification) این مورد را به کاربر اطلاع می‌دهد. به عنوان مثال، اعلانی که کاربر در هنگام گوش دادن به موسیقی دریافت می‌کند و به کمک آن امکان کنترل برنامه بدون استفاده از رابط کاربری را دارد.

Manifest در توسعه اپلیکیشن اندروید

یکی از مهم‌ترین فایل‌هایی که در هر اپلیکیشن اندرویدی وجود دارد و تمام بخش‌های اصلی برنامه را فهرست می‌کند، فایل AndroidManifest.xml  است. در واقع، این فایل حکم شناسنامه اپلیکیشن را دارد. مولفه‌ها و اطلاعات پایه اپلیکیشن در این فایل وجود دارند، از جمله این مولفه‌ها می‌توان به موارد زیر اشاره کرد:

  • نام برنامه
  • آیکون برنامه
  • دسترسی‌های اپلیکیشن
  • اکتیویتی‌ها
  • سرویس‌ها

این موارد اصلی‌ترین اطلاعات در خصوص هر پروژه اندرویدی به حساب می‌آیند.

منابع در اپلیکیشن اندرویدی

در هنگام ساخت اپلیکیشن اندرویدی فارغ از بحث کدنویسی و طراحی رابط کاربری مواردی وجود دارند که می‌توان از آن‌ها در جهت هر چه بهتر کردن رابط کاربری استفاده کرد. منظور از منابع (Resources) در پروژه تمام رشته‌ها، فونت‌ها، رنگ‌ها و تصاویری هستند که در اپلیکیشن مورد استفاده قرار می‌گیرند. از فایل‌های منبع برای طراحی رابط کاربری می‌توان استفاده کرد.

یادگیری اصول طراحی رابط کاربری در نقشه راه برنامه نویسی اندروید

یکی از مهم‌ترین بخش‌های نقشه راه برنامه نویسی اندروید درک اصول طراحی رابط کاربری است. به زبان ساده، رابط کاربری همانند چهره برنامه است و اولین بخشی از برنامه به حساب می‌آید که کاربر آن را می‌بیند. همچنین، رابط کاربری راه ارتباطی بین برنامه و کاربر محسوب می‌شود. به همین دلیل است که یادگیری اصول طراحی رابط کاربری از اهمیت فوق‌العاده‌ای در نقشه راه برنامه نویسی اندروید برخوردار است.

با وجود اهمیت موضوع رابط کاربری و لزوم طراحی اصولی و درست آن، نیازی به نگرانی در این خصوص نیست، زیرا اندروید بسیاری از اجزای پیش‌ساخته‌ای را ارائه می‌دهد که به ایجاد برنامه کمک می‌کنند. به عنوان مثال، می‌توان با استفاده از XML یا کتابخانه «جت‌پک» (Jetpack) فایل‌های «طرح‌بندی» (Layout) برنامه را ساخت. بهترین راه برای یادگیری اصول طراحی رابط کاربری، شناخت بخش‌های تشکیل‌دهنده آن است. دو بخش اصلی تشکیل دهنده رابط کاربری «طرح‌بندی» (Layout) و «ویجت» (Widget) نام دارند. در ادامه نوشته، این دو بخش به صورت جزئی‌تر بررسی خواهند شد.

Layout در طراحی رابط کاربری اندروید

اصلی‌ترین بخش رابط کاربری فایل‌های Layout یا طرح‌بندی برنامه هستند. این فایل‌ها همانند اکتیویتی و فرگمنت ساختار کلی برنامه را تعریف می‌کنند. هر فایل Layout از تعدادی «نما» (View) تشکیل می‌شود که کاربر می‌تواند با آن‌ها تعامل داشته باشد. همان‌طور که در تصویر زیر نیز مشخص است، از اجتماع چند View در کنار یکدیگر ViewGroup ایجاد می‌شود.

ساختار ویو در رابط کاربری

 Widget در طراحی رابط کاربری اندروید

«ویجت‌ها» (Widget) به عنوان مهم‌ترین بخش ساختار رابط کاربری شناخته می‌شوند. برای بیان ارتباط میان View و Widget در رابط کاربری به این صورت می‌توان عنوان کرد که Viewها در واقع کادرهایی مستطیلی روی صفحه هستند و محتوای مشخصی را نمایش می‌دهند. این محتوای نمایش داده شده در صفحه که می‌تواند تصویر، متن، دکمه یا هر چیز دیگری باشد، به عنوان ویجت شناخته می‌شود. برخی از پرکاربردترین ویجت‌ها در اندروید عبارتند از:

  • TextView: متن تعیین شده را در صفحه نمایش می‌دهد.
  • Button: امکان تعامل کاربر با برنامه را فراهم می‌کند.
  • ImageView: برای نمایش تصویر در برنامه کاربرد دارد.
  • EditText: می‌توان متن یا اطلاعات مورد نیاز را از کاربر دریافت کرد.
  • CheckBox: امکان انتخاب یا عدم انتخاب گزینه مشخص شده را فراهم می‌کند. به عنوان مثال، بخش پذیرفتن قوانین در ابتدای برنامه‌ها از این انتخاب‌گر استفاده می‌کند.
  • Spinner: لیستی کشویی است که امکان انتخاب از بین چند گزینه را فراهم می‌کند.
  • RecyclerView: زمانی که قرار است داده‌های زیادی همانند لیست محصولات در برنامه نشان داده شود، یکی از بهترین انتخاب‌ها استفاده از RecyclerView است.

ادامه نقشه راه برنامه نویسی اندروید با یادگیری اصول برنامه نویسی ناهمگام

مبحث مهم بعدی در نقشه راه برنامه نویسی اندروید آشنایی با اصول «برنامه نویسی ناهمگام» (Asynchronous Programming) است. برای درک این شیوه از انواع برنامه نویسی، بهتر است ابتدا تفاوت بین «برنامه نویسی همگام» (Synchronous Programming) و برنامه نویسی ناهمگام بیان شود.

تفاوت برنامه نویسی همگام با برنامه نویسی ناهمگام چیست؟

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

برنامه نویسی همگام و ناهمگام

به عنوان مثال، برنامه نویس قصد دارد تا اطلاعاتی با حجم نسبتاً بالا را از «رابط برنامه نویسی اپلیکیشن» (Application Programming Interface | API) یا پایگاه داده (Database) محلی دریافت و سپس از این اطلاعات در برنامه استفاده کند. در این شرایط مطمئناً بسته به سرعت اتصال و حجم اطلاعات دریافتی زمانی طول خواهد کشید و در این مدت زمان، امکان قفل شدن برنامه تا پایان فرایند وجود دارد. در نتیجه، برای کاهش این زمان و جلوگیری از ایجاد خلل در برنامه، می‌توان از نشانگر پیشرفت استفاده کرد تا کاربر در جریان انجام کار قرار گیرد.

پس از پایان فرایند نیز 2 نتیجه ممکن وجود دارد: در صورت موفقیت در دریافت داده‌ها، این اطلاعات روی صفحه نمایش نشان داده می‌شوند یا پیغام خطا برای اطلاع کاربر و تلاش مجدد برای دریافت اطلاعات صادر می‌شود. در مثال بالا، تمام موارد ذکر شده با استفاده از تکنیک‌های برنامه نویسی ناهمگام امکان‌پذیر است. برخی از مهم‌ترین مفاهیم در خصوص برنامه نویسی ناهمگام در ادامه فهرست شده‌اند.

  • Android Services
  • Callbackها
  • برنامه نویسی واکنشی
  • Coroutines در کاتلین

برنامه نویسی واکنشی

«برنامه نویسی واکنشی» (Reactive Programming) یا واکنش‌گرا یکی از الگو‌های برنامه نویسی شی‌گرا است. این الگوی برنامه نویسی به جریان داده‌ها و انتشار تغییرات مربوط می‌شود. به عنوان مثال، الگوهای RxKotlin و RxJava موجود در دو زبان برنامه نویسی کاتلین و جاوا شامل مجموعه‌ای از کلاس‌ها و عملگر‌ها هستند که امکان کنترل جریان داده‌ها و منعکس کردن رویداد‌ها را فراهم می‌کنند.

Coroutine در کاتلین

همزمان با رشد کاتلین، امکان جذاب دیگری با نام «کوروتین» (Coroutines) در این زبان معرفی شد. البته مفهوم کوروتین زیاد جدید نیست و بسیاری از زبان‌های برنامه نویسی قبلاً این امکان را در اختیار توسعه‌دهندگان قرار داده‌اند. نکته جالب در خصوص کوروتین‌ها این است که امکان نوشتن کد‌های ناهمگام را به گونه‌ای فراهم می‌کنند که مشابه با کدهای همگام به نظر برسند.

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

 

یادگیری اصول اندروید جت پک در ادامه نقشه راه برنامه نویسی اندروید

اندروید جت‌پک (Android Jetpack) مجموعه‌ای از کتابخانه‌ها است که به منظور تسهیل در فرایند توسعه و ساخت اپلیکیشن‌های اندرویدی در سال 2018 میلادی (1397 شمسی) معرفی شد و تغییرات اساسی در زمینه ساخت برنامه‌های اندرویدی ایجاد کرد. این مجموعه کتابخانه به توسعه‌دهندگان اندروید در موارد زیر کمک می‌کند:

  • بهترین روش برای پیاده‌سازی رابط کاربری است.
  • میزان استفاده از کد‌های استاندارد را کاهش می‌دهد.
  • کد نوشته شده با تمام نسخه‌ها و دستگاه‌های اندرویدی سازگاری خواهد داشت.

برای درک بهتر این که Android Jetpack چگونه عمل می‌کند، در ادامه، برخی از مولفه‌های مهم موجود در آن بررسی خواهد شد.

LiveData در جت پک

به بیان ساده، زمانی که با توجه به تعامل کاربر با برنامه یا تغییرات رخ داده در پایگاه‌ داده نیاز باشد تا رابط کاربری به‌روزرسانی شود، LiveData مورد استفاده قرار می‌گیرد. به عنوان مثال، در یک برنامه اندرویدی به محض انتخاب محصولات مختلف و افزودن آن‌ها به سبد خرید توسط کاربر، مبلغ نمایش داده شده در بخش سبد خرید باید به‌روزرسانی شود.

LiveData بخشی آگاه از چرخه حیات قسمت‌های مختلف برنامه مانند اکتیویتی‌ها و فرگمنت‌ها است و همچنین، کلاسی از نوع «قابل مشاهده» (Observable) به حساب می‌آید. اطلاعات موجود در LiveData توسط سایر بخش‌های برنامه قابل مشاهده هستند. به بخش‌هایی که اطلاعات LiveData را مشاهده می‌کنند، مانند اکتیویتی‌ها و فرگمنت‌ها در اصطلاح «مشاهده کننده» (Observer) می‌گویند.

زمانی که داده‌های موجود در شی Observable تغییر می‌کنند، این موضوع به اشیا دیگر اطلاع داده می‌شود که این موجب به‌روزرسانی رابط کاربری برنامه خواهد شد. مهم‌ترین مزایای LiveData عبارتند از:

  • یکپارچگی شدید به وجود آمده بین داده‌ها، واسطه‌ها و لایه‌های رابط کاربری را از بین می‌برد.
  • نشت‌های ناشی از ارسال نتایج توسط «واسط‌ها» (Interfaces) به رابط کاربری را حذف می‌کند.

ناوبری یا مسیریابی در اندروید

امروزه به ندرت برنامه‌ اندرویدی یافت می‌شود که تنها از یک صفحه تشکیل شده باشد. اکثر برنامه‌ها از چندین صفحه مختلف تشکیل شده‌اند که کاربر با کلیک روی دکمه‌ها و بخش‌های دیگر برنامه امکان جابجایی بین صفحات را دارد.

قبل از معرفی Android Jetpack، پیاده‌سازی ناوبری در برنامه اندروید عمدتاً با فرایند‌های کدنویسی پیچیده انجام می‌شد. اما در خصوص برنامه‌های بزرگ و دارای صفحات مختلف پیاده‌سازی ناوبری و سازماندهی آن کاری سخت و پیچیده بود. این شرایط با معرفی مولفه «ناوبری» (Navigation) در اندروید جت‌پک به شکل قابل توجهی بهبود یافت.

ناوبری در اپلیکیشن

همان‌ طور که در تصویر بالا مشخص است، مولفه Navigation باعث می‌شود تا ناوبری و مسیریابی در برنامه بسیار آسان به نظر برسد.

منظور از Dependency Injection چیست؟

در مهندسی نرم‌افزار «تزریق وابستگی» (Dependency Injection) تکنیکی برای کدنویسی در بهترین و بهینه‌ترین حالت است تا در آینده تغییرات لازم در کد با کمترین هزینه انجام شود.

نحوه کار به این صورت است که در این روش یک شی وابستگی‌های شی دیگر را تامین می‌کند. بنابراین، اساساً معنای آن این است که کلاس X  از برخی عملکردها و توابع کلاس Y  استفاده می‌کند. در این حالت گفته می‌شود که کلاس X  به کلاس Y  وابسته است.هدف اصلی استفاده از تزریق وابستگی تولید «کدهای اصولی» (Clean Code) است، یعنی کدی که ساده، خوانا و قابل فهم باشد. مزایای استفاده از تزریق وابستگی عبارتند از:

  • قابلیت استفاده مجدد از کدهای نوشته شده
  • آسان شدن رفع خطاهای احتمالی
  • تسهیل فرایند تست نویسی
  • خوانا‌تر شدن کد

گام بعدی در نقشه راه اندروید ذخیره سازی اطلاعات در اندروید

یکی از بخش‌های مهم در نقشه راه برنامه نویسی اندروید، انتخاب گزینه مناسب جهت ذخیره‌سازی اطلاعات برنامه است. در گام نخست، باید مشخص کرد که چه نوع داده‌ای و با چه مقداری قرار است در برنامه ذخیره شود. اگر قرار است تنها یک «رشته» (String) یا مقدار از نوع «منطقی» (Boolean) در برنامه ذخیره شود، در نتیجه، می‌توان از DataStore استفاده کرد. در مقابل اگر حجم بیشتری از اطلاعات قرار است ذخیره شود، استفاده از پایگاه داده‌های SQLite و Room پیشنهاد می‌شود. در ادامه، به صورت دقیق‌تر به بررسی روش‌های ذخیره‌سازی پرداخته خواهد شد.

Preferences DataStore چیست؟

Preferences DataStore روشی برای ذخیره‌سازی اطلاعات کم‌ حجم است. در این روش اطلاعات به صورت «زوج مرتب‌ کلید و مقدار» (Key-Value Pair) ذخیره می‌شوند. برای ذخیره‌سازی با این روش به یک کلید از نوع «رشته» (String) نیاز است و در مقابل مقدار متناظر با این کلید می‌تواند از نوع «منطقی» (Boolean)، «عدد صحیح» (Int)، «عدد اعشاری» (Float) یا «رشته» (String) باشد. DataStore جایگزین Shared Preferences شده است. در ادامه، مزایای استفاده از Preferences DataStore به جای Shared Preferences آورده شده است.

  • با استفاده از جریان، وضعیت فعلی داده‌ها را نشان می‌دهد.
  • برای ذخیره‌سازی تغییرات دیگر نیازی به استفاده از توابع application و commit نیست.
  • ایمنی بیشتری را ارائه می‌دهد.

Room چیست؟

کتابخانه Room به عنوان «نگاشت رابطه به شی» (Object Relational Mapping | ORM) برای پایگاه داده SQLite در اندروید توسط گوگل طراحی شده است. از کتابخانه Room برای ذخیره و مدیریت مقادیر قابل توجهی از داده‌های ساختار یافته استفاده می‌شود.

Room را می‌توان به عنوان لایه‌ای انتزاعی بر روی پایگاه داده SQLite تصور کرد که کدهای نوشته شده در آن به کدهای SQLite تبدیل می‌شود. در نتیجه، با استفاده از Room می‌توان با سرعت بیشتری پایگاه داده ایجاد و با آن کار کرد. عناصر کلیدی که در خصوص این کتابخانه کاربردی وجود دارد و باید آن‌ها را فرا گرفت، عبارتنداز:

  • پایگاه داده Room: شی ایجاد شده توسط پایگاه داده Room، رابطی را برای ایجاد دسترسی به پایگاه داده SQLite ایجاد می‌کند. ذکر این نکته ضروری است که هر برنامه باید تنها یک «موجودیت» (Instance) از نوع کتابخانه Room داشته باشد. با استفاده از همین موجودیت می‌توان به تمام جداول موجود در پایگاه داده SQLite دسترسی داشت.
  • شی دسترسی به داده (Data Access Object | DAO): این شی شامل دستورات SQL مورد نیاز برای درج، بازیابی و حذف داده‌ها در پایگاه داده SQLite است.
  • موجودیت‌ها (Entities): کلاس داده‌ای است که ساختار جدول در پایگاه داده را مشخص می‌کند. این کلاس نام جدول، نام ستون‌ها، نوع داده‌ها و کلید اصلی هر جدول را تعریف می‌کند.

اتصال اپلیکیشن به اینترنت ادامه نقشه راه توسعه اندروید

امروزه کمتر اپلیکیشنی را می‌توان یافت که به صورت آنلاین کار نکند، در نتیجه اتصال به اینترنت و دریافت اطلاعات از سرور یا API به یکی از ملزومات برنامه نویسی اندروید تبدیل شده است. در این بخش از نقشه راه برنامه نویسی اندروید به تکنولوژي‌های موجود برای اتصال اپلیکیشن به اینترنت و کار با وب سرویس‌ها پرداخته شده است.

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

«درخواست‌های شبکه» (Network Requests) برای دسترسی یا تغییر داده‌های دریافتی از API توسط اپلیکیشن به سرور ارسال می‌شوند. پیاده‌سازی قابلیت ارتباط بین اپلیکیشن اندروید و وب سرویس مورد نظر به صورت دستی کاری دشوار و پیچیده است زیرا در این حالت باید تمام بخش‌های مربوط برای ارتباط با سرور نظیر ارسال درخواست‌ها، مدیریت خطا‌ها و سایر موارد را به طور کامل مدیریت کرد. در نتیجه، برای ارتباط با سرور باید از کتابخانه‌هایی استفاده کرد که توسط شرکت‌های معتبر ارائه شده‌اند. در ادامه، به طور دقیق هر کدام از این کتابخانه‌ها بررسی خواهند شد.

کتابخانه Retrofit

Retrofit کتابخانه‌ای بسیار قدرتمند در زمینه ارتباط با وب سرویس‌ها و اتصال به سرور در اندروید است. این کتابخانه در واقع سرویسی امن از نوع REST برای اندروید با هدف آسان‌تر کردن ارتباط با سرور است. رتروفیت از OkHttp برای ساخت درخواست‌های HTTP استفاده می‌کند. رتروفیت دارای ویژگی‌های زیادی نظیر افزودن هدر‌های سفارشی و مشخص کردن نوع درخواست‌ است که از این طریق امکان پیاده‌سازی آسان‌تر وب سرویس را فراهم می‌کند.

رتروفیت در اندروید

کتابخانه Gson

Gson یکی از کتابخانه‌های موجود در جاوا است که برای تبدیل اشیا در جاوا به فرمت داده‌ای «جیسون» (Json) کاربرد دارد. علاوه بر این، امکان تبدیل رشته Json به شی جاوا نیز با استفاده از آن وجود دارد. این کتابخانه در زبان برنامه نویسی کاتلین نیز قابل استفاده است.

کتابخانه Moshi

Moshi نیز کتابخانه‌ای جدید در اندروید، برای تبدیل فرمت داده‌ای Json در زبان برنامه نویسی کاتلین و جاوا است. این کتابخانه، تجزیه Json به کلاس‌های جاوا و کاتلین را آسان‌تر می‌کند.

انتخاب معماری مناسب برای اپلیکیشن در نقشه راه برنامه نویسی اندروید

در ادامه طی کردن مسیر یادگیری و توقف در ایستگاه‌های مختلف نقشه راه برنامه نویسی اندروید، مورد مهمی با عنوان انتخاب معماری مناسب برای اپلیکیشن مورد بررسی قرار خواهد گرفت. تا قبل از معرفی Android Jetpack، گوگل رویکرد یا ساختار مشخصی را برای توسعه اپلیکیشن‌های اندروید توصیه نمی‌کرد. گوگل تنها ابزار‌ها و کیت‌های توسعه مختلف را معرفی می‌کرد و در عین حال نیز به توسعه‌دهندگان اجازه می‌داد تا از بهترین ابزار‌ها به سلیقه خودشان استفاده کنند.

در حال حاضر گوگل به توسعه‌دهندگان توصیه می‌کند تا در برنامه‌های خود صفحات مختلف را به عنوان محتوا در تنها یک اکتیویتی نمایش دهند و از ساخت اکتیویتی‌های مختلف پرهیز کنند. همچنین، توصیه دیگر گوگل این است که حوزه‌های مختلف مسئولیت در برنامه توسط ماژول‌های جداگانه تفکیک شوند. این مورد تحت عنوان «تفکیک وابستگی‌ها» (Separation of Concerns) نیز شناخته می‌شود.

موارد عنوان شده در بالا، تحت عنوان «معماری اپلیکیشن» (Application Architecture) مورد بررسی قرار می‌گیرند. معماری اپلیکیشن، نقشه راه و بهترین روش‌ها را به توسعه‌دهندگان پیشنهاد می‌دهد تا بر اساس آن بتوانند اپلیکیشنی با ساختار مناسب پیاده‌سازی کنند. انتخاب معماری مناسب برای ساختار اپلیکیشن، ایستگاه بسیار مهمی در نقشه راه برنامه نویسی اندروید به حساب می‌آید. در ادامه، محبوب‌ترین معماری‌ها در برنامه نویسی اندروید فهرست شده‌اند:

  • MVVM
  • MVP
  • MVC
  • VIPER

با توجه به وجود معماری‌های گوناگون برای اپلیکیشن اندروید، دست برنامه نویس در انتخاب ساختار مناسب باز است. در ادامه این بخش از معرفی نقشه راه برنامه نویسی اندروید، محبوب‌ترین معماری اپلیکیشن اندروید یعنی MVVM مورد بررسی قرار خواهد گرفت.

معماری MVVM در اندروید چیست؟

الگوی معماری MVVM یکی از جدیدترین الگو‌های معماری اندروید است که توانسته در سال‌های گذشته با رفع اشکالات الگو‌های قبلی نظیر MVP و MVC خود را به عنوان انتخاب شماره یک توسعه‌دهندگان اندروید معرفی کند. معماری MVVM دارای سه لایه با نام‌های View ،Model و ViewModel است که بر همین اساس منطق طراحی «رابط کاربری» (UI) را از «منطق تجاری» (Business Logic) برنامه تفکیک می‌کند. 3 لایه موجود در معماری MVVM عبارتند از:

  • Model: این لایه با استفاده از ساختار‌هایی ساده، داده‌های برنامه را نگه‌داری می‌کند. این لایه برای دریافت و ذخیره‌سازی داده به طور مشترک با لایه ViewModel کار می‌کند.
  • View: این لایه وظیفه نمایش عناصر موجود در رابط کاربری را روی صفحه نمایش بر عهده دارد و همچنین، لایه ViewModel را از تعاملات کاربر با برنامه مطلع می‌سازد.
  • ViewModel: اطلاعات دریافتی از لایه Model را به مقادیری قابل نمایش در لایه View تبدیل می‌کند.

معماری MVVM با استفاده از این 3 لایه عمل تفکیک وظایف را به خوبی انجام می‌دهد. در این معماری لایه View با کاربر در ارتباط است و تعاملات کاربر را به لایه ViewModel اطلاع می‌دهد. سپس لایه ViewModel به لایه Model اطلاع می‌دهد تا عمل ذخیره‌سازی داده و دریافت داده‌های جدید را انجام دهد.

معماری MVVM در برنامه نویسی اندروید

انجام فرایند تست در نقشه راه توسعه اندروید

ایستگاه مهم بعدی در نقشه راه برنامه نویسی اندروید، فرایند تست اپلیکیشن نام دارد. فرایند تست یکی از بخش‌های مهم «چرخه حیات توسعه نرم‌افزار» (Software Development Life Cycle) است. با اجرای مداوم تست‌های مختلف روی برنامه می‌توان از صحت عملکردی و قابلیت‌های آن قبل از انتشار اطمینان حاصل کرد. تست برنامه مزایای زیر را به همراه دارد.

  • باعث صرفه‌جویی در هزینه‌ها می‌شود.
  • امنیت را افزایش می‌دهد.
  • کیفیت محصول ارائه شده را بهبود می‌بخشد.

 

انواع تست در اندروید

با توجه به موضوع مورد بررسی، تست‌های مختلفی در اندروید وجود دارند:

  • تست عملکردی (Functional Testing)
  • تست واحد (Unit Test)
  • تست دسترسی پذیری (Accessibility Testing)
  • تست سازگاری (Compatibility Testing)
  • تست کارایی (Performance Testing)

پیکربندی اپلیکیشن اندروید

آشنایی با پیکربندی اپلیکیشن اندروید، ایستگاه پایانی در نقشه راه برنامه نویسی اندروید است. سیستم ساخت اندروید (Android Build System) کد اصلی و منابع برنامه را کامپایل کرده و آن‌ها را در فایل APK بسته‌بندی می‌کند.

اندروید استودیو از Gradle که جعبه ابزاری پیشرفته است برای خودکارسازی و مدیریت فرایند ساخت استفاده می‌کند. Gradle و افزونه اندروید مستقل از اندروید استودیو اجرا می‌شوند. در این صوریت می‌توان فرایند ساخت برنامه‌های اندروید را خارج از اندروید استودیو و با استفاده از «خط فرمان» (Command Line) انجام داد. در ادامه، مهم‌ترین مفاهیم موجود در مبحث پیکربندی اپلیکیشن اندروید مورد بررسی قرار می‌گیرد.

  • Build Types: این بخش ویژگی‌های خاص اپلیکیشن همچون امضای برنامه را در زمان ساخت و بسته‌بندی توسط Gradle تعریف می‌کند.
  • Product Flavors: با استفاده از این بخش می‌توان برنامه را در نسخه‌های مختلف همچون رایگان و غیر رایگان منتشر کرد.
  • Build Variants: این بخش پیکربندی Gradle برای ساخت برنامه را مشخص می‌کند.
  • Manifest Entries: با کمک این بخش امکان تغییر خصوصیات فایل Manifest در زمان ساخت وجود دارد.

سوالات متداول در برنامه نویسی اندروید

در نقشه راه برنامه نویسی اندروید که تا به اینجای نوشته مورد بررسی قرار گرفت، به اساسی‌ترین کار‌ها در خصوص یادگیری برنامه نویسی اندروید پرداخته شد. در ادامه، برای رفع ابهام در خصوص نقشه راه برنامه نویسی اندروید به متداول‌ترین سوالات مطرح شده در این خصوص پاسخ داده خواهد شد.

کاتلین بهتر است یا جاوا؟

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

آینده برنامه نویسی اندروید چگونه است؟

کارشناسان پیش‌بینی می‌کنند در سال‌های آینده اپلیکیشن‌های مختلفی با استفاده از فناوری‌های جدید نظیر «الگوریتم یادگیری ماشین» (Machine Learning) و تحلیل‌های پیش‌بینی کننده توسعه خواهند یافت. در این صورت، توسعه‌دهندگان اندروید با توجه به تجربه خود امکان ارائه گزینه‌های بهتری را به کاربران دارند.

بهترین زبان برای برنامه نویسی اندروید چیست؟

در نقشه راه برنامه نویسی اندروید تنها دو زبان بومی کاتلین و جاوا برای توسعه اپلیکیشن اندروید مورد بررسی قرار گرفت. اما امکان توسعه اپلیکیشن اندروید با استفاده از سایر زبان‌های برنامه نویسی نظیر بیسیک، پایتون، سی شارپ و ++C نیز فراهم است. در نتیجه، برای ساخت برنامه اندروید دست برنامه نویس در انتخاب زبان برنامه نویسی کاملاً باز است.

درآمد برنامه نویس اندروید چقدر است؟

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

برنامه نویسان اندروید امکان کار در ردیف‌های شغلی متفاوتی را دارند. آن‌ها می‌توانند در قالب تیم برنامه نویسی داخل شرکت‌ها کار کنند و یا به عنوان پیمانکار یا فریلنسر مستقل کار کنند. نکته‌ای که در این خصوص اهمیت دارد این است که با افزایش تجربه و فعالیت مداوم در مسیر رشد، برنامه نویسان اندروید می‌توانند به درآمد خوبی دست پیدا کنند.

 

جمع‌بندی

در یک دهه گذشته با توجه به رشد چشم‌گیر و فزاینده فناوری‌های مختلف و همچنین، توجه بسیاری از کسب و کارها و شرکت‌ها به سمت ارائه راهکار‌های دیجیتال به مشتریان، نیاز به برنامه نویس متخصص افزایش یافته است. از این رو، در سال‌های گذشته، حوزه برنامه نویسی موبایل و خصوصاً برنامه نویسی اندروید با توجه به گستردگی استفاده از سیستم عامل اندروید در بین کاربران کانون توجه قرار گرفته است.

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

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

بر اساس رای ۱۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
DECODEMeduimProAndroidDev
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *