Существует ли стандартный дизайн для добавления (редактирования)/удаления/перезагрузки файла? [закрыто]

Я создаю приложение, которое хранит фотографии моих друзей в базе данных.

У каждого друга есть ровно одна фотография в базе данных, поэтому фотографий одного и того же человека не будет несколько.

Каждое действие фиксируется, когда пользователь нажимает кнопку OK. Таким образом, у пользователей есть возможность исправить ошибки.

При выполнении новой записи (добавлении новой картинки) у пользователя должны быть следующие возможности:

  • загрузить новый файл
  • удалить файл (в случае, если они сделали ошибку)

При работе с существующим файлом пользователи должны иметь возможность выполнять следующие действия:

  • заменить существующий файл новым
  • удалить файл
  • "перезагрузить" существующий файл из базы данных*
  • экспортировать файл из базы данных

*В случае, если пользователи перезаписали/удалили исходный файл (но затем осознали свою ошибку), они могут «перезагрузить» исходный файл.

Поискав здесь похожие вопросы, я пришел к следующей реализации ввода новых файлов:

введите описание изображения здесь

Это в значительной степени говорит само за себя, поскольку этот метод используют Google и многие другие.

При работе с существующими данными у меня возникает проблема. Я не знаю, как спроектировать графический интерфейс, чтобы учесть условия, которые я перечислил ранее. Лучшее, что я придумал, как любитель, было это:

введите описание изображения здесь

Таким образом, пользователь может добавить новый файл (который должен перезаписать старый) с помощью кнопки + . Если пользователь решит, что это была ошибка, нажатие кнопки обновления может «перезагрузить» старый файл. Пользователь может удалить файл, нажав x . Если пользователь решит, что удаление не требуется, нажатие кнопки «Обновить» может «перезагрузить» старый файл. Экспорт базы данных формы изображения выполняется с помощью правой нижней кнопки.

ВОПРОСЫ:

  • Есть ли стандартный способ работы с описанными выше файловыми операциями?
  • Если нет, можете ли вы улучшить мой дизайн (я разработчик программного обеспечения, а не UX/графический дизайнер)?
Привет! Поскольку ваш вопрос касается макета и удобства использования, вы можете получить хорошие ответы на ux.stackexchange.com , если никто здесь не откликнется.
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, потому что он принадлежит другому стеку, и вы можете получить дополнительную помощь там: ux.stackexchange.com

Ответы (1)

Я видел, как некоторые приложения и веб-сайты делают что-то похожее на то, что вы пытаетесь сделать, но они не предоставляют столько вариантов на верхнем уровне, как вы, что на самом деле облегчает пользователю принятие решений ( опционный шок — это реальная вещь, которую следует учитывать при разработке UX).

Что-то, что говорит «Удалить изображение», может быть лучше, чем «X», это более явно. «X» в поле может означать «очистить путь из этого поля», что не совсем то, что вы пытаетесь сообщить своему пользователю.

Вы также можете немного изменить свой поток, чтобы уменьшить количество решений, которые пользователь должен принять на верхнем уровне. Для обоих вариантов использования у вас может быть только кнопка «плюс» или, может быть, просто кнопка «...», которая означает «Обзор».

введите описание изображения здесь

Когда пользователь нажимает «...», он попадает на экран или всплывающее окно, где он может выбрать: загрузить новый файл в базу данных, использовать файл, который уже есть в базе данных, или загрузить один из этих файлов. .

введите описание изображения здесь

Спасибо за ответ. Я проголосовал за ваш ответ на данный момент. Интересно, могу ли я использовать значок корзины вместо слов, чтобы сэкономить место? Во всяком случае, я вижу что-то в вашем дизайне (первое изображение), что меня немного пугает: когда пользователь удаляет изображение (нажав кнопку «удалить изображение»), как он должен «отменить» операцию таким образом, чтобы существующее изображение "перезагружается"? Прошу прощения, если неясно, английский не мой родной. PS Я пробовал на UX SE, но не повезло. Мне кажется, что я прошу невозможного, или решение моей проблемы настолько просто, что никто не хочет заморачиваться...
Если я правильно понимаю, как работает ваша система, даже если они решат "удалить" текущий образ, он все равно будет в базе данных, да? Хотя я думаю, что «отменить» приятно иметь, я не думаю, что от этого типа интерфейса можно было бы ожидать функциональности. Если они все равно могут добавить это же изображение из базы данных, отмена на самом деле не нужна. Это только мое мнение. :)
Если я правильно понимаю, как работает ваша система, даже если они решат "удалить" текущий образ, он все равно будет в базе данных, да? Изображение остается в базе данных до тех пор, пока они не нажимают «Сохранить» , после чего оно исчезает. Как вы правильно предположили, перезаписывая существующее изображение или удаляя его, просто изменяется текст исходного файла текстового поля, который не изменился. Чтобы сохранить изменения, пользователь должен нажать «Сохранить» , иначе я не перезапишу/удалю старый файл. Мне просто нужен способ предложить пользователю сохранить исходный файл в случае его ошибочного удаления/редактирования. Я надеюсь, что теперь все стало яснее.
Если они все равно могут добавить это же изображение из базы данных, отмена на самом деле не нужна. Это правда, ваше решение очень хорошо подходит для этого. Однако я делаю настольное приложение для Windows, и есть стандартное диалоговое окно для открытия файла. Очень сложно изменить его, чтобы он выглядел и вел себя как ваш макет. Тем не менее, я попробую...
Это интересно. Большинство приложений, которые я использовал, которые позволяют вам назначать изображение профиля (twitter, instagram, stackoverflow), не включают в себя функции, позволяющие сохранять то, что будет перезаписано. Обычно щелчок правой кнопкой мыши «сохранить как» (который даже не всегда доступен) — единственный способ сохранить то, что вы собираетесь перезаписать. Я не говорю, что то, что другие приложения делают это таким образом, означает, что вы должны последовать их примеру, но есть кое-что, что следует сказать об ожиданиях пользователей. Если только ваш босс не говорит вам, что это обязательная функция. В таком случае игнорируйте все, что я сказал. :)