قبل از ارسال میتوانید با اجرای دستوری npm test
برنامه خود را با تستهای نمونه تعبیه شده بررسی کنید.
برای اجرای برنامهها درون گوشی خود کافی است اپلیکیشن مربوطه یعنی Expo Go
را نصب کرده و پس از اجرای دستور npm start
با اسکن کردن QRCode نمایش داده شده آن را اجرا نمایید.
در صورتی که برنامه Expo Go
بر روی گوشیتان اجرا نشد از بخش تنظیمات قسمت App
این برنامه را پیدا کرده در ابتدا آن را Force Stop
و سپس فقط Data
آن را پاک نمایید و همچنین از خاموش بودن VPN خود اطمینان حاصل نمایید.
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
todo_list_simple_mobile
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm start
را برای راهاندازی پروژه اجرا کنید.مهیار به شدت آدم فراموش کاری است به همین جهت او تصمیم به توسعه یک اپلیکیشن برای موبایل خود کرده است که لیست کارهایش را در آن یادداشت کند این برنامه فقط امکان اضافه کردن کار را دارد و نه حذف آن را. مهیار اندکی به مبانی توسعه نرم افزار و React مسلط بود به همین جهت او توانست یک شمای کلی برای توسعه این برنامه استخراج کند که در ادامه به شرح آن می پردازیم. اما به علت اینکه هیچ تسلطی به React Native نداشت و با چالشهای متعددی رو به رو شد از شما خواست که به او کمک کنید.
<SelectPress />
🔗مهیار در کمال ناباوری متوجه شد که دراپ لیستهای HTML مشابهش در React Native وجود ندارد فلذا ایدهای به ذهنش برای نمایش لیستها خطور کرد او تصمیم گرفت یک دکمه طراحی شود که با هر بار کلیک شدن بر روی آن آیتم بعدی نمایش داده شود و اگر به آیتم آخر رسید و روی آن کلیک شد به آیتم اول بازگردد. همچنین برای دسترسی به مقدار آن تصمیم گرفت که یک تابع تحت عنوان setValue
به عنوان پراپس بگیرد و در صورت تغییر لیست از این تابع استفاده شود.
items
دریافت میکند.title
دارد که بیانگر متنی است که باید نمایش دهد.<AddTask />
🔗این کامپوننت وظیفه نمایش و اضافه کردن تسک جدید را به لیست تسکها دارد.
<SelectPress />
برای نمایش آیتمها مختلف استفاده شود.TIME
درون فایل کامپوننت قرار داده شده اند که بیانگر مدت زمانی است که طول میکشد مهیار آن کار را انجام دهد هر چقدر این کار مدت بیشتری طول بکشد افسردگی و ناراحتی مهیار نیز بیشتر میشود.placeholder
نمایش دهد.addTask
دریافت میکند که باید تسک جدید به این صورت به آن داده شود:➕
باید قرار داشته باشد که وقتی روی آن فشار داده شد اطلاعات تسک را ذخیره نماید.<TaskList />
🔗tasks
دریافت میکند و به نحو بهینه با استفاده از یکی از کامپوننتهای جادویی React Native که قابلیت Scroll نیز دارد آن ها را رندر میکند.<Task />
نمایش داده شود.<Task />
🔗این کامپوننت وظیفه انجام یک کار بر عهده دارد.
این کامپوننت باید به ترتیب موارد زیر را نمایش دهد.
۱. شماره اولویت کار که برابر جایگاه آن در لیست میباشد.
۲. نام تسک.
۳. مدت زمان آن.
دقت کنید که باید دو مورد آخر باید در قالب item
دریافت شوند و اندیس هم بر پایه صفر میباشد
<App />
🔗پس از نکمیل بخشهای قبلی شما باید با ترکیب این کامپوننتها این برنامه را راه اندازی کنید. مهیار از شما خواسته است که کارها در ابتدا بر اساس مدت زمان آنها بر اساس متغیر value
مرتب شوند و کارهایی که عذاب بیشتری دارند بالای لیست نمایش داده شوند در صورتی که دو کار اولویت یکسانی داشت باید بر اساس نام آنها مرتب شوند.
src
و فایل App.js
را بدون پوشه node_modules
ZIP کرده و ارسال کنید.#EEEEEE
استفاده کنید.