depict is a web-based software that allows you to quickly draw simplified wireframes called breadboards.

This document demonstrates the process of designing a mobile messenger app using depict.

Figuring out key screens, elements, and connections between places

Breadboarding is advantageous than wireframing because of its simpler format, which makes it easier to create and edit.

Here are the main screens of a mobile messenger:

  • The home screen showing a list of existing conversations
  • Starting a new conversation
  • Continuing an existing conversation

For now, we’re not going to think about the specifics of what each screen looks like, whether it’s a standalone screen or a dialog that appears on top of an existing screen.

When you enter the text below into the editor located on the left-hand side of the screen, a breadboard will be generated on the right-hand side.

Home
Start new conversation
Conversation

The “Home” screen should have a list of conversations and a button to start a new conversation. An asterisk (*) next to “Conversation” indicates that there are multiple conversations. The arrow (=>) indicates a connection between places.

Home
  Start new conversation =>
  Conversation*

Start new conversation

Conversation

The “Start new conversation” contains a field for the recipient’s phone number, a field for new message, and a Send button. Pressing the Send button sends the message and returns you to the “Home” screen.

Note that the label of an item and the label of destination are different. In this case, you can write the destination name next to the arrow like this: Send => Home.

Home
  Start new conversation =>
  Conversation*

Start new conversation
  Recipient
  Message
  Send => Home

Conversation

I would like to incorporate additional details. Specifically, the conversation list should include a profile image and a preview of the latest message for each item. You can simply use indentation.

Home
  Start new conversation =>
  Conversation*
    Profile pic
    Latest message

Start new conversation
  Recipient
  Message
  Send => Home

Conversation

It would be nice if clicking on a message would take you to a “Conversation” 0screen, and clicking on a profile image would take you to a screen showing profile information.

Home
  Start new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start new conversation
  Recipient
  Message
  Send => Home

Conversation

The “Profile” screen is colored red because it wasn’t in the original design. You can easily create “Profile” screen by pressing the Cmd + . (Ctrl + . in Windows) shortcut over the letters, or by clicking the add link icon in the diagram. You don’t need to type screen names by hand.

Home
  Start new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start new conversation
  Recipient
  Message
  Send => Home

Conversation

Profile

On second thought, it would be better to go to “Conversion” rather than “Home” after hitting “Send” on “Start new conversation.” Also it would be nice to have a button to go to “Home” on each screen.

Because of the simplicity of the breadboarding, the cost of change is very low.

Home
  Start new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start new conversation
  Home =>
  Recipient
  Message
  Send => Conversation

Conversation
  Home =>

Profile
  Home =>

Now there are handful of arrows, but that’s okay because you can select a specific item to highlight only the arrows associated with that item. For example, to highlight only the arrows to “Home”, you can click “Home” or move the cursor over the “Home” in the editor.

Gradually and selectively increase fidelity

While the “Home” and “Start new conversation” are somewhat fleshed out, “Conversation” and “Profile” are mostly empty.

Although it’s typical to aim for consistent levels of fidelity in a single design document, it’s not always obligatory. In many cases, it’s more effective to enhance the level of fidelity as and when required.

It is a good time to add more particulars. We aim to have distinct screens for “Home”, “Start new conversation”, and “Conversation”, whereas “Profile” should be a dialog. To clarify your design intentions, add annotations such as .page or .dialog.

Home .page
  Start new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start new conversation .page
  Home =>
  Recipient
  Message
  Send => Conversation

Conversation .page
  Home =>

Profile .dialog
  Home =>

Let’s be a little more precise for “Start new conversation”: we want to specify that “Recipeint” and “Message” are text fields and “Send” is a button. We can do this by adding the .input and .button annotations to each item.

Home .page
  Start new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start new conversation .page
  Home =>
  Recipient .input
  Message .input
  Send .button => Conversation

Conversation .page
  Home =>

Profile .dialog
  Home =>

Finally, let’s add style annotations such as :row and :col to specify the layout of Start new conversation page.

Home .page
  Start a new conversation =>
  Conversation*
    Profile pic => Profile
    Latest message => Conversation

Start a new conversation .page
  Header :row
    Home =>
    :fill
    About
    Help
  Main :col
    Recipient .input
    Message .input
    -
    Send .button => Conversation

Conversation .page
  Home =>

Profile .dialog
  Home =>

Starting with a simple breadboard, we were able to flesh out the design by gradually increasing fidelity. We were able to create a mixed-fidelity prototype that allows us to quickly refine design idea.

See also