«قابل تازهسازی» به چه معناست
بیشتر کاربران آیفون میدانند که با کشیدن صفحه به پایین، محتوای بسیاری از برنامهها تازهسازی میشود — این همان حرکت کلاسیک کشیدن برای تازهسازی است و دقیقاً همان چیزی است که ما از «قابل تازهسازی» منظور داریم. نسخههای قبلی Splync این ویژگی را نداشتند. تنها راه تازهسازی صفحه، بستن و باز کردن دوباره برنامه بود. این کار مشکلساز نبود زیرا از نسخه 1.3 Splync، برنامه شما را وارد شده نگه داشته است، اما هنوز ایدهآل نبود. از آنجا که هدف Splync این است که سادهترین ردیاب بودجه مشترک باشد، تازهسازی صفحه باید بدون هیچ زحمتی انجام شود. به همین دلیل در نسخه 1.10 ویژگی کشیدن برای تازهسازی را معرفی کردیم و Splync را به طور کامل قابل تازهسازی کردیم.
دو روش برای تازهسازی دادهها در Splync(بارگذاری کامل / بهروزرسانی نمایش)
در صفحه اصلی — جایی که عکس پروفایل، لیست دوستان و لیست پروژهها را میبینید — کشیدن برای تازهسازی یک بارگذاری کامل انجام میدهد. این کار همه دادههای مربوط به حساب را دوباره بازیابی میکند، بسیار شبیه به خروج و ورود مجدد. به همین دلیل، تازهسازی ممکن است حدود یک ثانیه طول بکشد در حالی که پیام بارگذاری نمایش داده میشود. در صفحه پروژه، جایی که لیست هزینههایتان نمایش داده میشود، همان حرکت کشیدن به پایین یک بهروزرسانی سبکتر نمایش را فعال میکند. فقط دادههای مربوط به پروژه تازهسازی میشوند، مثل تغییرات دستهبندی و بهروزرسانی هزینهها. نیازی نیست یک ثانیه کامل صبر کنید تا ببینید آیا کسی هزینه جدیدی اضافه کرده است یا خیر. همچنین توجه داشته باشید: Splync به طور خودکار دادههای پروژه را از سرور در پسزمینه دریافت نمیکند. برنامه فقط زمانی برای بهروزرسانیها بررسی میکند که تغییراتی ایجاد کنید، هزینهای را برای مشاهده جزئیات باز کنید، یا صفحه پروژه را به صورت دستی تازهسازی کنید.
چرا همگامسازی لحظهای نه
برخی کاربران ممکن است انتظار داشته باشند که وقتی دوستی هزینه جدیدی اضافه میکند، بهروزرسانیهای پروژه به طور لحظهای نمایش داده شود. همگامسازی لحظهای ممکن است راحت به نظر برسد، اما با مصالحههای مهمی همراه است. بهروزرسانیهای پیوسته در پسزمینه، باتری بیشتری نیاز دارد، دادههای موبایل بیشتری مصرف میکند و اتصالات سرور پیچیدهتری ایجاد میکند که میتواند برنامه را برای همه کند کند. رویکرد بر اساس درخواست Splync تجربه را سبک و پاسخگو نگه میدارد و از تغییر ناگهانی صفحه در حین بررسی بودجه شما جلوگیری میکند. همچنین ملاحظات امنیتی وجود دارد. حفظ یک اتصال دائمی به سرور، پنجرهای برای دسترسی غیرمجاز باز میکند و به منطق احراز هویت اضافی که در پسزمینه اجرا میشود نیاز دارد. با تازهسازی تنها زمانی که اقدام میکنید، Splync فعالیتهای شبکه غیرضروری را به حداقل میرساند و دسترسی به دادهها را قابل پیشبینی و کنترلشده نگه میدارد.
پشت پرده کد .refreshable
در ابتدا فکر میکردم این بهروزرسانی ساده باشد. در Swift، زبان مورد استفاده برای توسعه iOS، میتوانید کشیدن برای تازهسازی را با افزودن اصلاحکننده .refreshable به ScrollView یا لیست فعال کنید. اما این کار به آن صورتی که انتظار داشتم عمل نکرد. بعد از بررسی مشکل، علت اصلی را متوجه شدم. میخواستم کشیدن برای تازهسازی را به کل صفحه بالا که شامل لیست دوستان و پروژهها است اضافه کنم. اما در طراحی اصلی، هر دو این اجزا هم قابل پیمایش بودند. در نتیجه، .refreshable نمیدانست به کدام ناحیه قابل پیمایش تعلق دارد و حرکت به طور پیوسته تشخیص داده نمیشد. برای رفع این مشکل، ساختار لیست دوستان و پروژهها را بازسازی کردم تا دیگر بهخودیخود قابل پیمایش نباشند. این کار ایمن است زیرا نمای سطح بالای خود وقتی محتوای نمایش داده شده از ارتفاع صفحه بیشتر شود، پیمایش میکند. وقتی ساختار را ساده کردم و اطمینان حاصل کردم که فقط یک محفظه قابل پیمایش وجود دارد، .refreshable دقیقاً همانطور که قصد داشتیم عمل کرد. همچنین یک دکمه تازهسازی معمولی اضافه کردم تا کاربران بتوانند با یک ضربه تازهسازی کنند.
کشیدن برای شما کار نمیکند؟ کمی بیشتر بکشید
در بیشتر برنامههای iOS، کشیدن برای تازهسازی به محض شروع کشیدن فعال نمیشود. SwiftUI یک آستانه حرکت داخلی دارد: سیستم تا زمانی که مسافت خاصی کشیده نشود، تازهسازی را فعال نمیکند. این امر از بهروزرسانیهای تصادفی جلوگیری میکند وقتی که شما فقط شروع به پیمایش از بالای صفحه میکنید. Splync از این رفتار استاندارد پیروی میکند. ممکن است متوجه شوید که یک کشش کوتاه، محتوا را تازهسازی نمیکند، اما کشش کمی طولانیتر — به اندازهای که نشانگر تازهسازی ظاهر شود — بهروزرسانی را فعال میکند. این طراحی تعاملات را عمدی نگه میدارد. از تازهسازیهای ناخواسته جلوگیری میکند، بهویژه در صفحههایی که کاربران به طور مکرر از طریق لیستهای طولانی هزینهها یا پروژهها پیمایش میکنند. وقتی کمی بیشتر از مرز بالا بکشید و نشانگر ظاهر شود، تازهسازی به محض رها کردن انگشت شما آغاز میشود. این جزئیات کوچک، اما به تجربهای روانتر و قابل پیشبینیتر کمک میکند. فقط برای روشن شدن: این مربوط به کشیدن برای مدت طولانیتر یا اعمال فشار بیشتر نیست. آنچه مهم است، کشیدن به مسافت طولانیتر است.
ویژگی کوچک، با دقت ساختهشده
کشیدن برای تازهسازی ممکن است یک تعامل کوچک به نظر برسد، اما ساخت آن شامل انتخابهای طراحی، بازسازی فنی و تعداد قابل توجهی از ملاحظات در پشت صحنه بود. Splync v1.10 تازهسازی دادههایتان را طبیعی، عمدی و قابل پیشبینی میکند — دقیقاً همانطور که باید در سادهترین برنامه بودجه مشترک باشد. امیدوارم این بهروزرسانی تجربهی شما را روانتر کند و نگاهی به دقتی که در هر جزئیات به کار میرود بدهد. از شما برای استفاده از Splync متشکرم.