مقالات

آموزش کامپوز نویگیشن (Compose Navigation) در اندروید

کامپوز نویگیشن (Compose Navigation) یک کتابخانه جدید برای ایجاد نویگیشن در برنامه‌های اندروید است که توسط تیم توسعهٔ اندروید شرکت گوگل توسعه داده شده است. این کتابخانه بر اساس کتابخانهٔ Compose UI قرار گرفته و قابلیت‌های متنوعی برای ایجاد ساختارها، منوها، پیمایش و نویگیشن در برنامه‌های اندروید ارائه می‌دهد.

 

 

“ما را در اینستاگرام دنبال کنید”

در این مقاله از سری مقالات برنامه نویسی اندروید اومدیم در مورد کامپوز نویگیشن (Compose Navigation) در اندروید ، صحبت کنیم. پس با سایت ترولرن همراه باش.

“قبل از شروع مقاله، بگم که بعد از مطالعه این مطلب، از آموزش پروژه محور برنامه نویسی اندروید سایتمون یعنی دوره ژنرال اندروید غافل نشید.”

توی دوره ژنرال صفر تا صد کامپوز نویگیشن (Compose Navigation) در اندروید رو در یک فصل کامل توضیح دادیم و همچنین توی پروژه های دیجی کالا و اسنپ فود به صورت عملی و پروژه محور از کامپوز نویگیشن (Compose Navigation) استفاده کردیم و بطور کامل اون رو آموزش دادیم.

کامپوز نویگیشن (Compose Navigation) چیست؟

کامپوز نویگیشن (Compose Navigation) یک کتابخانه از جت‌پک Compose UI است که توسط گوگل برای تسهیل نویگیشن در برنامه‌های اندروید توسعه داده شده است.

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

کامپوز نویگیشن بر اساس مفهومی به نام “Navigation Graph” عمل می‌کند. Navigation Graph یک گراف محدوده‌ای است که صفحات (Destinations)، اکشن‌ها (Actions) و ارتباطات بین آنها را تعریف می‌کند.

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

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

با استفاده از کامپوز نویگیشن، تمامی عملیات نویگیشن مانند انتقال به صفحات دیگر، بازگشت به صفحات قبلی و مدیریت پشته صفحات (back stack) به صورت آسانی قابل انجام است.

همچنین، کامپوز نویگیشن (Compose Navigation) با ارائه امکاناتی مانند Deep Linking و دسترسی به آرگومان‌های URL، امکانات بیشتری را برای نویگیشن در برنامه‌های اندروید فراهم می‌کند.

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

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

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

مزایا و معایب کامپوز نویگیشن (Compose Navigation)

کامپوز نویگیشن (Compose Navigation) مزایا و معایب خاص خود را دارد. در زیر به برخی از مزایا و معایب استفاده از کامپوز نویگیشن اشاره می‌کنم:

مزایا:

سادگی استفاده

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

انعطاف‌پذیری بالا

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

مدیریت پشته صفحات (back stack)

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

پشتیبانی از Deep Linking

کامپوز نویگیشن امکاناتی برای اتصال برنامه به لینک‌های عمیق (Deep Link) و دسترسی به آرگومان‌های URL را فراهم می‌کند. این قابلیت به شما اجازه می‌دهد برنامه‌ها را به آسانی با لینک‌های خارجی و دیگر بخش‌های سیستم عامل ارتباط برقرار کنید.

حذف گراف XML

یکی از مزایای استفاده از کامپوز نویگیشن (Compose Navigation) در برابر گراف XML، ساده‌تر شدن فرآیند نویگیشن است. با حذف گراف XML، نیازی به تعریف و مدیریت فایل‌های XML جداگانه برای نویگیشن بین صفحات نیست. به جای آن، شما می‌توانید نویگیشن را مستقیماً در کد Kotlin خود پیاده‌سازی کنید و از کتابخانه Compose UI برای تعریف صفحات و ارتباط آنها استفاده کنید.

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

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

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

معایب:

وابستگی به جت‌پک Compose UI

استفاده از کامپوز نویگیشن (Compose Navigation) نیازمند استفاده از جت‌پک Compose UI است و این به معنی آن است که برای استفاده از کامپوز نویگیشن باید برنامه‌های خود را با استفاده از Compose UI توسعه دهید. این ممکن است نیاز به تغییر فناوری‌ها و روش‌های توسعه معمول شما را داشته باشد.

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

 

 

یک مثال از پیاده سازی کامپوز نویگیشن (Compose Navigation)

بهترین روش برای پیاده‌سازی کامل کامپوز نویگیشن (Compose Navigation) این است که یک پروژه جدید Compose را شروع کنید و به طور مرحله به مرحله نویگیشن را پیاده‌سازی کنید. در ادامه، یک مثال ساده از پیاده‌سازی کامپوز نویگیشن را بررسی خواهیم کرد:

ابتدا، به فایل build.gradle پروژه خود بروید و اطمینان حاصل کنید که شما از ورژن مناسب Compose استفاده می‌کنید. در این مثال، از ورژن 1.0.4 استفاده می‌کنیم:

dependencies {
    // ...
    implementation 'androidx.navigation:navigation-compose:2.4.0-alpha06'
}

سپس، یک NavHost را در فایل MainActivity.kt خود تعریف کنید. این NavHost مسئول مدیریت نویگیشن بین صفحات است:

import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController

@Composable
fun App() {
    val navController = rememberNavController()

    NavHost(navController = navController, startDestination = "screen1") {
        composable("screen1") {
            Screen1(navController = navController)
        }
        composable("screen2") {
            Screen2(navController = navController)
        }
    }
}

@Composable
fun Screen1(navController: NavController) {
    // صفحه اول
}

@Composable
fun Screen2(navController: NavController) {
    // صفحه دوم
}

@Preview(showBackground = true)
@Composable
fun PreviewApp() {
    App()
}

در کد بالا، NavHost شامل دو صفحه به نام “screen1” و “screen2” است. هر یک از این صفحات به صورت تابع composable تعریف شده‌اند و از NavController جهت نویگیشن استفاده می‌کنند.

حالا، باید فعالیت اصلی خود را با setContent به App متصل کنید:

import androidx.appcompat.app.AppCompatActivity
import androidx.compose.ui.platform.setContent

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            App()
        }
    }
}

حالا شما یک نویگیشن ساده با استفاده از کامپوز نویگیشن پیاده‌سازی کرده‌اید. با اجرای برنامه خود، شما می‌توانید بین صفحات “screen1” و “screen2” جابجا شوید.

این مثال فقط یک نمونه ساده از کامپوز نویگیشن است. شما می‌توانید بیشترین استفاده را از قابلیت‌های پیشرفته‌تر مانند پارامترها، داده‌های لازم، و Deep Linking بکنید تا نویگیشن پیچیده‌تری را پیاده‌سازی کنید.

 

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

‫5/5 ‫(1 نظر)
عاطفه امیری

Recent Posts

چگونه دوره آموزشی کاتلین پیشرفته می‌تواند مهارت‌های شما را ارتقاء دهد؟

دوره آموزشی کاتلین پیشرفته می‌تواند مهارت‌های شما را با بهره‌گیری از ابزارها و فناوری‌های مدرن…

4 ماه ago

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

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

4 ماه ago

بهینه‌سازی عملکرد اپلیکیشن‌های اندروید: راهنمای جامع و کاربردی

بهینه‌سازی عملکرد اپلیکیشن‌های اندروید یکی از مهم‌ترین فاکتورهایی است که برای کاربران در دنیای امروز…

10 ماه ago

سوالات مصاحبه‌ی استخدامی کاتلین همراه با جواب(قسمت چهارم)

مصاحبه‌ی استخدامی کاتلین یک فرصت برای ارزیابی مهارت‌ها و توانایی‌های یک برنامه‌نویس در توسعه اپلیکیشن‌های…

10 ماه ago

سوالات مصاحبه استخدام زبان کاتلین همراه با جواب(قسمت سوم)

مصاحبه استخدام زبان کاتلین یک فرصت برای ارزیابی مهارت‌ها و توانایی‌های یک برنامه‌نویس در توسعه…

10 ماه ago

سوالات مصاحبه استخدام کاتلین همراه با جواب(قسمت دوم)

مصاحبه استخدام کاتلین یک فرصت برای ارزیابی مهارت‌ها و توانایی‌های یک برنامه‌نویس در توسعه اپلیکیشن‌های…

11 ماه ago