MESSAGING APPLICATION User Interface Design

Year: 2022

type: University project

key tools/skills used: atomic design, figma, javascript, node.js, react framework, storybook, jest, visual studio, github

My roles: front-end design, development, and testing

Divided into teams of 3-4, students were asked to create a messaging application able to display and send SMIL messages. My primary role in this project was to design the User Interface, beyond that I also aided in testing and development of components and reporting progress during weekly meetings that followed agile methodology.

a case study

and key principals to motivate design decisions.

CALMNESS UNDERSTATEMENT INTUITIVE READABLE

EASY TO USE
EFFICIENT

Following Atomic Design Methodology, the most general and basic units of a design are built first. This means key colors and branding colors must be decided now.

I use a Material Design 3 plug-in in Figma which generates colour palettes that are linked to the component designs. This way if one colour needs to be changed, a simple switch of colour on one of the palettes will trigger all appropriate components and mockups to update to the chosen colour. This feature is invaluable in saving time when clients have sudden requests in design changes and keeps the overall project modular

First I define my broad goals...

A legible clear font which guides the eyes in a line is very important when designing an application in which the user will likely look at a lot of text. The styles and sizing of text in various components needs to be chosen as well in order to maintain uniformity. In this case I have chosen Poppins as I find it to be a clear concise font, I like how the sizing of the lettering remains roughly the same size for capitals and lower-case, and it has a nice weight to it. These features utilize space but also increases readability.

I draft out an initial design considering all of the technical features that need to be implemented and define how many different views are needed in the Interface.

From there components are designed out with consideration of all possible iterations and states. In order to maintain its modularity each piece of the interface must be constructed starting from the simplest elements to create increasingly more complex organisms.

Building in this way allows me to construct an easily adjustable prototype for developers and clients to see how the program should look and function. It also allows us to consider the various state changes and additional features that may need to be included.