مسیریابی بومی مبتنی بر سیستم فایل با Expo و React Native

۱۳ بازديد
RFC: مسیریابی بومی مبتنی بر سیستم فایل با Expo و React Native

TL;DR: کتابخانه جدید Expo Router در حال پیشرفت است، به بحث در GitHub بپیوندید! برای شروع و کسب اطلاعات بیشتر به مستندات Expo Router مراجعه کنید.

سایت سفارش طراحی سایت سایت
انگیزه

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

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

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

اینجاست که React Native وارد می‌شود. رابط جاوا اسکریپت/نیتیو، تکنیک‌های بسته‌بندی پیشرفته، و معماری مبتنی بر کامپوننت، نیازهای پایه را برای ایجاد یک گردش کاری که در توسعه سریع و بهینه‌سازی شده برای تولید است، فراهم می‌کند.

متلب انجام پروژه متلب با متلب دانان

از آوریل 2021، من روی یک روتر چند پلتفرمی جدید کار می کنم که ناوبری تودرتو و پیوندهای عمیق را کاملاً بر اساس ساختار فایل پروژه ایجاد می کند. مفهوم روتر مبتنی بر سیستم فایل برای توسعه دهندگان وب (PHP، Next.js و غیره) جدید نیست، اما برای توسعه موبایل کاملاً جدید است. با آوردن این پارادایم اساسی به موبایل، به تطبیق قابلیت کشف و مقیاس پذیری وب سایت ها در برنامه های بومی بسیار نزدیکتر می شویم.
اهداف

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

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

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

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

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

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


طراحی لوگو با بهترین طراح لوگو با بهترین متخصصان

بر خلاف برنامه های وب، برنامه های بومی انتظار می رود همه به صورت آفلاین کار کنند. این بدان معنی است که برنامه باید بتواند هر URL ورودی را بدون اتصال شبکه یا سرور مدیریت کند.
ناوبری واقعاً بومی و برای iOS و اندروید بهینه شده است

ما این مشکل را با پیاده‌سازی ویژگی‌های جدید در کل چارچوب از Expo SDK گرفته تا Expo CLI و بسته‌کننده Metro حل کردیم.

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

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

Expo Router این قابلیت را دارد که مرزهای خطای React را برای هر مسیر تنظیم کند (مرزهای Suspense در نسخه بعدی ارائه می شوند). این بدان معنی است که می توانید به راحتی خطاها و وضعیت های واکشی داده ها را به روشی ثابت در کل برنامه مدیریت کنید و درخواست های ناموفق را دوباره امتحان کنید.

این یک انحراف بزرگ از رویکرد سنتی برای رسیدگی به خطاها در یک برنامه بومی است: پرتاب یک فا
تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.