Designers guide to user data and CRUD

Tanya Anokhina
Sep 16, 2019 · 7 min read

In this article, I’d like to describe the challenges of designing apps that manage user-generated content and how to create great app experience. Examples here are mostly for Apple platform but the same principles apply everywhere. Without a further do let’s talk about user content.

User data or user-generated content

User data or user-generated content is anything that the user creates in your app. The app purpose can be working with user content, like creating documents, writing notes, taking and editing photos, composing music, etc.. Or this can be a feature in a larger app: commenting on articles, creating wish-lists in a shopping app, saving a place you interested in on a map, etc.

What is CRUD

CRUD stands for Create, Read, Update, and Delete. You may know this acronym as functions of persistent storage. We can use CRUD as a framework to design user interactions.

Importance of user data

User data is something people invest their time, skill, and soul. Some things, like photos or videos, are irreplaceable. User data belongs to users regardless of what privacy policy says.

“I just pressed something and everything disappeared.”

— Frustrated user.

It is incredibly important to protect users from data loss or corruption. Because CRUD actions directly change user data, the UI must be predictable to minimize user error.

With this in mind let’s take a look at designing CRUD operations:

Create

New entities, depending on the app, can be empty or must contain information.

The operations like adding a new contact, typing down a note or recording an interview create new entity with user date.

Here is what to consider:

  • What is the entry point? The “+” button in the calendar, inline input in reminders, or File/New in a desktop app.

Entities can be a result of operation, like taking a picture, recording video or sound. Import is another potential source of new entities. Consider using system dialogs before designing custom one.

Sometimes users change their mind and decide not to create new data. Maybe they tap Create button accidentally. Consider these two cases:

  • User-created empty entry or it was pre-filled automatically. You can safely remove it, there is no need to ask if they want to save empty data.

Another scenario to be aware of is interruptions. When something goes wrong and the app crashes. With user data, it is important to properly handle such cases. Keep a draft or use autosave feature and when something goes wrong to suggest to reopen unfinished entity. This is also important for the Update operation.

Read

Read operation is displaying entities in the app and opening a particular one. We aim to design a convenient way to navigate through a set of similar entities.

Created entities can be presented in a list or a grid.

Create previews for entities:

  1. Display one or two lines of textual information next to the entity name;

What UI elements are best to use for the case:

  1. Lists are good for showing mostly textural information with optional thumbnail;

Help users to organize and search entities:

  1. Arrange entities by date or name. Allow users to sort or rearrange them as they like;

Update

Depending on content the update action can be in-place or in a separate view.

Update operation is very similar to Create and the same points apply. Additional things to think about:

  • When displaying entities choose between inline, always editable (Notes, Reminders) or edit as a separate action (Contacts);

Delete

When designing delete operation it’s good to consider a type of content, how hard it’s to create. Depending on this you can design simple delete or hide it a bit to protect users from accidentally deleting important data. Can the user recreate the content? Setting a reminder is simple in comparison to writing a note. Writing a document, drawing an artwork, or composing music is much harder. Taking a photo is simple and yet the moment is impossible to recreate.

How hard it’s to delete an entity in your app? Swipe to delete, open and scroll to the bottom to delete, delete button.

How to perform delete action:

  • Lists can use swipe to delete gesture. This allows users to quickly delete entities. Swipe reveals delete action and requires users to tap it, or swipe through all the screen. This serves as protection from accidentally deleting content. You can always design additional dialog for data that is hard to recreate. It is always good to include swipe to delete in lists.

Delete button:

  1. You can include Delete button when view allows inline editing, like in Notes app;

People who are new to the platform may not know about swipe to delete gesture. But this is not the reason to skip it. Compliment it with buttons.

To protect users from accidentally deleting important data you can design a way to revert action:

  • Do not delete entities immediately but move them to the Recently deleted section in the app;

Also, consider what happens next after delete action. Photos app is a great example here. When deleting a photo the app shows next or previous photo depending on your scroll direction.

Undo

Undo allows users to revert change. This is important to support for Update and Delete operations. UI for Undo, especially on mobile, can be challenging because of limited space.

Two ways to use undo on iOS: button or shake to undo.

Consider those cases:

  • Undo can replace confirmation dialogs.

Hope you found this article interesting to read. Thanks for reading!

Clap 👏 if you enjoyed the article so others can find it.

Flawless iOS

🍏 Community around iOS development, mobile design, and marketing

Thanks to Dmytro Anokhin

Tanya Anokhina

Written by

UI/UX designer.

Flawless iOS

🍏 Community around iOS development, mobile design, and marketing

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade