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

شکل ۱. مهمترین محتوا را در بالای ظروف عمودی نگه دارید.
وقتی کاربران وارد یکی از صفحات شما میشوند، مطمئن شوید که میتوانند از ژست حرکتی کشیدن انگشت برای رد کردن (swipe to dismiss) برای پیمایش به پایین صفحه پشتی استفاده کنند.
پیادهسازی ناوبری
وقتی ناوبری خود را پیادهسازی میکنید، سه گزینه دارید که در بخشهای زیر توضیح داده شدهاند:
- فقط فعالیتها، که رویکرد توصیهشده است
- فعالیتها و قطعات
- ناوبری جتپک
فقط فعالیتها
از آنجایی که صفحات عمودی معمولاً یک سطح عمق دارند، میتوانید تمام صفحات خود را با استفاده از activityها و بدون استفاده از fragmentها پیادهسازی کنید.
ما اکیداً این رویکرد را توصیه میکنیم. این روش کد شما را ساده میکند و فعالیتها به طور خودکار از قابلیت swipe-to-dismiss پشتیبانی میکنند. این امر همچنین پیادهسازی حالت ambient را سادهتر میکند.
نکته: اگر از فرگمنتها استفاده نمیکنید، اکتیویتیهای خود را طوری تنظیم کنید که از یک ComponentActivity ارثبری کنند. انواع دیگر اکتیویتی از عناصر رابط کاربری مخصوص موبایل استفاده میکنند که برای Wear OS به آنها نیازی ندارید.
فعالیتها و قطعات
شما میتوانید از فرگمنتها به همراه اکتیویتیها در برنامه Wear OS خود استفاده کنید. با این حال، ما این کار را توصیه نمیکنیم، زیرا مزیت مشخصی در استفاده از فرگمنتها برای ایجاد یک معماری کمعمق و مسطح وجود ندارد.
نکته: اگر از fragments استفاده میکنید، کاری کنید که از FragmentActivity ارثبری کنند. انواع دیگر activity از عناصر رابط کاربری مخصوص موبایل استفاده میکنند که برای Wear OS به آنها نیازی ندارید.
برخی از مشکلات استفاده از فرگمنتها در برنامه Wear OS شما شامل موارد زیر است:
- شما باید خودتان قابلیت کشیدن انگشت برای رد کردن را پیادهسازی کنید. در غیر این صورت، وقتی کاربر کشیدن انگشت را انجام میدهد، از کل برنامه خارج میشود.
- اگر از
AmbientModeاستفاده میکنید، باید آن را سفارشی کنید تا به درستی کار کند.AmbientModeروی activity تنظیم شده است، بنابراین باید هنگام پیادهسازی fragmentها این موضوع را در نظر بگیرید.
برای پشتیبانی از قابلیت کشیدن انگشت برای رد کردن با fragmentها، باید view حاوی fragment را در کلاس SwipeDismissFrameLayout قرار دهید. برای اطلاعات بیشتر به ژست کشیدن انگشت برای رد کردن مراجعه کنید. انجام این کار، تجربهای پایدار از برنامه شما را برای کاربران فراهم میکند.
نکته: هنگام استفاده از fragmentها، برای پشتیبانی از حرکت swipe-to-dismiss از FragmentManager.add به جای FragmentManager.replace استفاده کنید. این کار به شما کمک میکند تا fragment قبلی شما در زیر fragment بالایی در حین swipe شدن، رندر شود.
ناوبری جتپک
Jetpack Navigation میتواند روی Wear OS کار کند، اما همان اشکالات Fragmentها را دارد. این قابلیت کار توسعه را افزایش میدهد و از آنجا که سلسله مراتب یک برنامه Wear OS عموماً سطحی و خطی است، مزایای زیادی ارائه نمیدهد. رویکردی که فقط فعالیت را در نظر بگیرد، بهترین گزینه است.
برای استفاده کامل از ناوبری Jetpack، موارد زیر را انجام دهید:
- مطمئن شوید که هر فرگمنت از
SwipeDismissFrameLayoutبه عنوان ریشه خود استفاده میکند و به صورت دستی از عمل dismiss برای بازگشت به گراف ناوبری استفاده کنید. - یک
FragmentNavigatorسفارشی پیادهسازی کنید که قطعات را روی هم رندر کند.
