Вирішіть, що означає «Зберегти» у вашому застосунку
У запропонованому туристичному застосунку «Зберегти» означає залишити вибраний історичний матеріал на поточному пристрої для подальшого читання. Це функція, яку має реалізувати ваш застосунок, а не кінцева точка архіву. Reddit App API не надає закладок, синхронізації між пристроями чи облікового запису списку читання. Поясніть цю відмінність, перш ніж мандрівник покладатиметься на список у подорожі.
Коли турист зберігає обговорення, застосунку варто залишити мінімальне посилання на джерело, а не дублювати весь текст допису. За наявності збережіть ідентифікатор запису, перевірене посилання та достатній контекст для впізнавання вибраного. Якщо також залишаєте короткий уривок, обраний користувачем, поясніть це рішення й урахуйте зміст та права третіх осіб.
Не перетворюйте три дати на одну
Застосунок має розрізняти початковий час створення запису й момент, коли користувач його зберіг. Він також може фіксувати час отримання матеріалу. Підпис на кшталт «Збережено на цьому пристрої» описує дію застосунку; він не означає, що обговорення тоді написали, перевірили чи оновили. Невідому початкову дату залишайте невідомою.
Не вважайте збережений заголовок або уривок доказом того, що поточне джерело досі містить те саме. Зберігайте контекст вибору без додавання вигаданих деталей. Коментар, збережений із часткового результату, залишається посиланням на цей запис, а не повною гілкою чи гарантією доступності всіх сусідніх відповідей згодом.
Відокремлюйте локальне відкриття від нового пошуку
Локальний список може показувати вже збережені метадані чи уривок без повторного звернення до сервісу. Новий пошук має бути свідомою дією, а не прихованим оновленням кожного елемента під час відкриття списку. Кожен успішний запит коштує один кредит, і явний пошук /v1/item?id=RECORD_ID — теж запит. Ключ архіву залишається на бекенді.
Пошук окремого елемента може повернути успішний порожній масив data, якщо запис не повернено; не припускайте, що для відсутнього матеріалу сервіс використовує 404 або 410. Такий порожній успіх оплачується. Невдалий запит або втрачена відповідь також не доводять, що елемент видалено. Розрізняйте підписи «Недоступно в цьому пошуку», «Помилка запиту» та «Повторно не перевірено».
Надайте локальні дії, що відповідають обіцянці
Передбачте для списку зрозумілу дію «Видалити з цього пристрою». Вона має видаляти локальне посилання та пов’язаний уривок відповідно до задуму застосунку. Вона не видаляє допис Reddit чи запис архіву, не закриває облікового запису сервісу та не змінює платіжних записів. Не представляйте локальне керування як ширший запит на видалення.
Якщо вибираєте обмеження сховища чи строк дії, пояснюйте й перевіряйте саме це правило застосунку, а не вигадуйте строк зберігання сервісу. Дайте читачеві зрозуміти, що буде відкинуто. Очищення пристрою, обмеження сховища браузера чи очищення даних застосунку теж можуть прибрати локальні матеріали. Не обіцяйте постійного доступу лише тому, що елемент збережено.
Обмежте й уточніть очікування від офлайн-роботи
Списку самих посилань може знадобитися з’єднання для відкриття джерела. Збережений уривок можна читати локально, якщо застосунок реалізує й підтримує це, але від цього вся розмова чи карта не стають доступними офлайн. Покажіть, що саме збережено, до того, як мандрівник залишить зону зв’язку. Посібник не стверджує, що таку офлайн-функцію вже створено або протестовано.
Відділяйте це сховище застосунку від сесії облікового запису сайту сервісу та посилання на останній рахунок. Віджет може зберігати invoice id і user id для хоста; це не список читання, і механізм ніколи не слід використовувати для API-ключа. Резервне копіювання, експорт чи синхронізація пристроїв були б окремими функціями, які треба спроєктувати й описати. У /uk/#field-notes є нотатки про відображення записів і бюджет запитів.