اجزای مختلف یک اپلیکیشن همراه با مثال
اپلیکیشنهای اندرویدی با استفاده از زبانهای برنامه نویسی Kotlin، Java و C++ طراحی میشوند. درک صحیح از قسمتهای مختلف یک اپلیکیشن، از مقدمات ضروری برای طراحی و ساخت آنها است. هر اپلیکیشن دارای چهار جزء اصلی بوده که هر کدام وظیفه خاصی دارند. ترکیب عملکرد این اجزا کنار هم در نهایت باعث ایجاد اپلیکیشنهایی میشود که همه ما از آنها استفاده میکنیم. علاوه بر چهار قسمت اصلی، اجزای دیگری نیز وجود دارند که در مراحل طراحی اپلیکیشن مؤثرند. در این مقاله از ویرا قصد داریم اجزای مختلف برنامههای اندرویدی را بطور کامل همراه با مثال بررسی کنیم، با ما همراه باشید.
اجزای اصلی اپلیکیشنهای اندرویدی
اجزاء تشکیل دهنده اپلیکیشن که در ادامه به تشریح هر کدام میپردازیم، عبارتاند از:
1. فعالیتها (Activities)
2. سرویسها (Services)
3. تأمین کنندگان محتوا (Content Providers)
4. Broadcast Receiver
هر Activity، در واقع یک کلاس (Class) است که بهعنوان نقطه ورود برای کاربران درنظر گرفته شده و یک صفحه منحصربهفرد را نمایش میدهد. به عنوان مثال: یک برنامه پیام رسان مانند واتساپ یا تلگرام دارای یک Activity برای نمایش پیامهای جدید در اعلان است و Activity دیگری برای خواندن پیامها، همچنین یک Activity برای ایجاد پیام جدید.
عملکرد هر Activity نسبت به یکدیگر مستقل است و به این دلیل شما میتوانید از برنامه دوربین، در اپلیکیشن ارسال ایمیل نیز استفاده کنید و یک تصویر را به اشتراک بگذارید. در تصویر زیر میتوانید نحوه عملکرد هر Activity را مشاهده کنید.
برای پیاده سازی یک Activity میتوانید از کد زیر در سابکلاس (subclass) استفاده کنید:
public class MainActivity extends Activity {
//code
}
هر Service بخشی از اپلیکیشن است که در پس زمینه اجرا میشود. وظیفه آنها بهروزرسانی منابع داده و Activity هاست. اجرای دستورات، هنگامیکه اپلیکیشن در حال اجرا نیست نیز توسط سرویسها انجام میشود. بهعنوان مثال، به کمک آنها میتوانید هنگام گوش دادن به موسیقی، از اینترنت نیز استفاده کنید.
برای پیاده سازی یک Service میتوانید از کد زیر در سابکلاس (subclass) استفاده کنید:
public class MyService extends Services {
//code
}
Content Provider اجازه میدهد تا هر اپلیکیشن، دادههای خود را با برنامههای دیگر به اشتراک بگذارد، همچنین جزئیات پایگاه داده را پنهان میکند و میتواند برای خواندن و نوشتن دادههای خصوصی (Private) اپلیکیشن که به اشتراک گذاشته نمیشوند، استفاده شود. به عنوان مثال، دسترسی به جزئیات اطلاعات هر مخاطب در لیست مخاطبین یا انتخاب یک عکس در گالری، توسط Content Provider انجام میشود.
برای پیاده سازی یک Content Provider میتوانید از کد زیر در سابکلاس (subclass) استفاده کنید:
public class Provider_Name extendsContentProvider {
//code
}
وظیفه اصلی Broadcast Receiver، پاسخ به پیامهای دیگر اپلیکیشنها و سیستم است. این کار حتی زمانیکه اپلیکیشنهای مقصد در حال اجرا نیستند، نیز قابل انجام است. بهعنوان مثال، توسط Broadcast Receiver به کاربر اطلاع داده میشود که شارژ باتری کم است. عملکرد Broadcast Receiver تنها محدود به اپلیکیشنها نمیشود و توسعه دهندگان اندروید میتوانند از آنها در خارج از اپلیکیشنها نیز استفاده کنند.
public class Broadcast_Name extendsBroadcastReceiver {
//code
}
اجزای فرعی اپلیکیشنهای اندرویدی
قسمتهای فرعی که هر کدام را در ادامه توضیح داده خواهد شد، عبارتاند از:
1. Intents
2. Widgets
3. Views
4. Notifications
5. Fragments
6. لایه بندی فایلهای XML
7. فایلهای APK برنامه
8. Resources
Intents ابزاری برای انتقال پیام بین برنامهای با هدف ایجاد ارتباط بین اجزای مختلف برنامههای اندرویدی است، همچنین از آنها برای انتقال دادهها بین Activity های مختلف و یا ایجاد یک Service جدید استفاده میشود. بهعنوان مثال، هنگامیکه کاربر میخواهد عکس گرفته شده را به اشتراک بگذارد، برنامه دوربین یک Intent به سیستم عامل ارسال میکند.
Widgets نوعی از Broadcast Receiver ها هستند و وظیفه اصلی آنها شخصی سازی صفحه Home (خانه) است، همچنین ویجتها اطلاعات را به کاربران نمایش داده و به آنها اجازه میدهند که بر روی آنها تغییرات ایجاد کنند. انواع مختلف ویجتها به شرح زیر هستند:
Information Widget
این نوع از Widget تنها اطلاعات مهم را نمایش میدهند و نحوه تغییر اطلاعات با گذشت زمان را ردیابی میکنند.
Collection Widget
همانطور که از نام آنها پیداست، مجموعهای از اطلاعات همگون یا همنوع هستند. از آنها برای مرور اطلاعات و بازکردن هر یک از عناصر برای مشاهده جزئیات آن استفاده میشود. به عنوان مثال، با ویجت موزیک میتوانیم آهنگ مورد نظر را در خارج از اپلیکیشن موزیک، پخش یا متوقف کنیم و یا به آهنگ بعدی برویم.
Control Widget
این ویجتها، عملگرها را در اختیار کاربر قرار میدهد که با استفاده از آنها کاربر میتواند عملکرد مورد نظر را بدون باز کردن اپلیکیشن و در صفحه Home انجام دهد. به عنوان مثال: پخش یا توقف یک ویدئو خارج از اپلیکیشن مربوطه.
Hybrid Widget
این نوع از ویجتها شامل ترکیب ویژگیهای سه نوع ویجت قبلی هستند. به عنوان مثال: ویجت موزیک پلیر یک ویجت کنترلی است، اما همچنین اطلاعات آهنگ در حال پخش را نیز در اختیار کاربر قرار میدهد؛ بنابراین ترکیبی از ویجتهای کنترل و اطلاعات است که به آن ویجت ترکیبی یا Hybrid گفته میشود.
Views (نمایهها)، به عنوان عناصر مستطیلی شکل در صفحه نمایش، وظیفه ترسیم و رسیدگی به رویدادها را دارند. به عنوان مثال، هنگامیکه شما یک متن را مینویسید، در صفحه نمایش حروف پشت سر هم ظاهر میشوند که برعهده یک نمایه است.
Notifications (هشدارها) اپلیکیشن، هنگامیکه برنامه در حال اجرا نبوده یا غیرفعال است، از طریق اعلانات به کاربر داده میشود. این اعلانها معمولاً روی صفحه ظاهر شده و بعد چند ثانیه ناپدید میشوند. به عنوان مثال، اعلان دریافت یک پیام جدید.
هر Fragment بخشی از کل یک رابط کاربری است. کاربران میتوانند چند Fragment را در یک Activity ترکیب کنند، همچنین هر Fragment همزمان در چند Activity مختلف قابل استفاده است. یک Fragment معمولاً شامل گروهی از نمایههاست.
لایهبندی را میتوان ساختار رابط کاربری در طراحی اپلیکیشن دانست. فایلهای XML باعث میشود تا لایهبندیهای مختلف بسته به ابعاد صفحه نمایش تلفن همراه کاربر ایجاد شود، همچنین مشخص میکنند که کدام رابط کاربری گرافیکی (GUI)، Activity یا Fragment در لایهبندیهای مختلف اجرا شوند.
فایل APK، یک فرمت فایل است که شامل منابع، اطلاعات و کدهای برنامه بوده و سیستم عامل اندروید از آنها برای نصب اپلیکیشن و نرم افزارهای مختلف استفاده میکند.
از Resource برای تعریف مقادیر، تصاویر و متون در اندروید استفاده میشود. تقریباً همه چیز در فایل Resource تعریف شده که از طریق سورس کد (Source Code) میتوان آن را فراخوانی کرد.
در این مقاله قسمتهای مختلف یک اپلیکیشن را معرفی کرده و آنها را بررسی کردیم. همانطور که دیدید این قسمتها شامل اجزای اصلی و فرعی است. در نهایت با ارائه مثال سعی کردیم تا درک بهتری از کارکرد هر کدام از اجزاء تشکیل دهنده اپلیکیشن برای شما ایجاد کنیم. نظرات و سوالات خود را میتوانید در باکس پایین، با ما درمیان بگذارید.
یک پاسخ
حرفتون خیلی عالیه