تجربه کاربری اپلیکیشن اندروید

6 باید و نباید جهت ارائه بهترین تجربه کاربری در اپلیکیشن اندروید - بخش اول


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

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

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

1. لزومی برای پشتیبانی از تمامی نسخه های اندروید وجود ندارد

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

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

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

گاهی شرایطی پیش می آید که اپلیکیشن شما با نسخه های اولیه اندروید سازگاری ندارد، برای مثال اگر اپلیکیشن شما به BLE نیاز داشته باشد، امکان پیاده سازی آن در نسخه های پایین تر از 4.3 وجود ندارد و BLE تنها پس از این نسخه به پلتفرم اندروید افزوده شده است.

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

بهینه سازی و تست اپلیکیشن بر روی نسخه های مختلف اندروید نیازمند صرف زمان و تلاش فراوان است، باید این پرسش را از خود بپرسید که با پشتیبانی از تمامی نسخه های اندروید چه تعداد کاربر را جذب خواهید کرد؟ Google's Dashboard آماری از تعداد گوشی هایی که هر نسخه از اندروید بر روی آنها نصب شده در اختیار شما قرار می دهد. باید نقاط قوت و ضعف را سبک سنگین کرده و ببینید که در شرایط حاضر و برای این پروژه خاص چه اقدامی بهتر است.

وقتی که تصمیم نهایی درباره نسخه های اندروید مورد پشتیبانی اتخاذ شد، اطلاعاتی شامل minSdkVersion (کم ترین API که اپلیکیشن با آن سازگار است)، targetSdkVersion (بالاترین سطح API که اپلیکیشن خود را بر روی آن تست کرده اید) و compileSdkVersion (نسخه Android SDK که Gradle برای کامپایل اپلیکیشن شما به آن نیاز دارد) را به فایل build.gradle اضافه کنید.

برای اینکه اپلیکیشن از مزایای آخرین نسخه اندروید بهره مند شود و با نسخه های قبلی نیز سازگار باشد، پیشنهاد می شود که minSdkValue را تا حد ممکن پایین گرفته و targetSdkVersion و compileSdkVersion را با آخرین نسخه Android SDK ست کنید.

2. طراحی را برای صفحات نمایش با اندازه های مختلف انجام دهید

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

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

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

زمانی که منابع جایگزین خود را ساختید، لازم است دایرکتوری هایی بسازید که با پیکربندی مناسب برچسب گذاری شده اند و آنها را در منابع موجود در این دایکرتوری ها قرار دهید، مثلا دایرکتوری res/layout-land شامل لی اوت هایی خواهد بود که برای جهت لنداسکیپ طراحی شده اند. سیستم اندروید به طور خودکار منبعی را که بهترین تطابق با پیکربندی و ران تایم صفحه کنونی را دارد بارگذاری خواهد کرد.

در حالی که بسیاری از پیکربندی ها نسبتا ساده اند، ارائه منابعی که اندازه های مختلف صفحه را هدف قرار می دهند کار نسبتا دشواری است که نیازمند مشخص کردن مقدار dpi دقیق که سیستم باید از آن استفاده کند می باشد. از این رو باید به سیستم بگویید که می خواهم وقتی اپلیکیشن بر روی گوشی هایی با 800dpi یا بیشتر یا عرض صفحه بیشتر نمایش داده می شود این لی اوت را استفاده کند.

با تست اپلیکیشن بر روی گوشی ها و AVDهای متعدد می توانید یک مقدار دقیق پیدا کنید و اندازه صفحات نمایش که منابع پیش فرض شما با آنها مشکل دارد را یادداشت کنید. برای مثال ممکن است لی اوت پیش فرض در صورتی که گوشی در آستانه dpi کمتر باشد، ظاهرش به هم بریزد.

سه پیکربندی اندازه صفحه وجود دارد که باید در پروژه های خود آنها را مورد استفاده قرار دهید:

- smallestWidth sw<value>dp. شما را قادر به تعیین کمترین فضای افقی می نماید که باید پیش از اینکه سیستم از منابع موجود در دایرکتوری استفاده کند، در دسترس باشد. برای مثال اگر یک مجموعه لی اوت دارید که نیازمند 800dpi  با بیشتر هستند، باید یک دایکرتوری res/layout-sw800dp بسازید. توجه داشته باشید که smallestWidth گوشی یک مقدار ثابت است و حتی با تغییر حالت گوشی از پورتریت به لنداسکیپ نیز تغییر پیدا نمی کند.

- Available screen width w<value>dp. کمترین فضای افقی در دسترس پیش از اینکه سیستم این منابع را مورد استفاده قرار دهد می باشد. مقدار w<value>dp وقتی که کاربر بین حالت های پورتریت و لنداسکیپ جابجا می شود، تغییر می کند.

- Available screen height: h<value>dp. کمترین ارتفاع که پیش از اینکه سیستم منبع را مورد استفاده قرار دهد، در دسترس باشد. مقدار h<value>dp بسته به اینکه کاربر گوشی را به صورت افقی یا عمودی نگه داشته است، تغییر پیدا می کند.

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

- استفاده از drawableهای مختص به تراکم به همراه تصاویر 9-patch. گاهی اوقات سیستم نیاز دارد که اندازه عکس را برای جا شدن در صفحه تغییر دهد و برای این کار به طور پیش فرض اندازه کل عکس را تغییر می دهد که ممکن است موجب مات و پیکسلی شدن عکس شود. به منظور حصول بهترین نتیجه باید پیسکل ها را به صورت دقیق تعیین کنیم که این کار از طریق ارائه drawable های پروژه به صورت تصاویر 9-patch انجام می شود. نسخه 9-patch از هر drawable را که هر کدام از 9-patch ها برای تراکم متفاوتی استفاده می شود در اختیار قرار دهید و سیستم یک عکس 9-patch را که بهترین گزینه برای تراکم فعلی صفحه است استفاده می کند، برای این کار می توانید از ویرایشگر PNG یا ویرایشگر Draw 9-patch که در Android SDK قرار دارد استفاده کنید.

- ساخت چندین فایل dimens.xml. پیشنهاد می شود که به جای هاردکدینگ، مقادیر لی اوت را در فایل dimens.xml پروژه درج کنید. می توانید چندین فایل dimens.xml بسازید که دارای اندازه ها و چگالی های مختلف هستند. برای مثال می توانید یک فایل values-lpdi/dimens.xml ساخته و در آن به تعریف مقادیری که اپلیکیشن در صورت نصب بر روی گوشی با تراکم صفحه کم باید مورد استفاده قرار دهد بپردازید. سیستم پس از آن به بارگذاری ابعاد مناسب برای گوشی فعلی پرداخته و آنها را بر روی لی اوت اعمال می کند.

- استفاده از فرگمنت ها. فرگمنت ها راهی برای تقسیم بندی اکتیویتی به چندین کامپوننت می باشند و می توان بسته به پیکربندی کنونی آنها را به صورت های مختلف نمایش داد. مثلا ممکن است بخواهید وقتی اپلیکیشن بر روی گوشی با صفحه نمایش بزرگ نصب می شود، فرگمنت های متعددی را در کنار هم یا در لی اوت multi-pane نمایش دهید و وقتی فضا محدودتر باشد آن را به صورت اکتیویتی های مجزا نمایش دهید. ساده ترین راه برای افزودن فرگمنت به لی اوت درج <fragment> در فایل منبع لی اوت می باشد.

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

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

 

https://code.tutsplus.com برگرفته از

اینها را هم بخوانید