UI engineering
A branch of software engineering, specialising in designing and writing code that runs on the end-user's phone or device. This may include but is not limited to:
- UI - buttons, tables, and many other things that a user can interact with. The most common area of UI engineering, and often involves a UI designer
- animation - moving
- localisation - displaying different content based on things we know about the user such as their timezone or language of choice
- calling APIs
- data state
This is in contrast to back-end engineering.
Common mistakes
Layout shift: Moving UI elements after displaying them. Causes great distress to users who may begin to interact with an element which then moves, causing errors and reducing user trust in the UI. Can be caused by images loading, and also UI elements changing size.
https://news.ycombinator.com/item?id=33765399
Foundational Skills
In addition to skills common to all software engineers, UI engineers should know:
- HTML
- JavaScript
- Browser dev tools
Split between Front and Back
As of around 2015, front end engineering had grown large and complex enough to warrant splitting loosely into two sections: front of the front-end, and back of the front-end.
It is generally agreed this split exists, but it is not universally agreed what skills exist in each. Some guesses include
| Front | Either way | Back |
|---|---|---|
| Accessibility, CSS, SVG | CORS, routing, TypeScript | CORS, UI data model |
| For those as the Front, UI pattern |
- HTTP protocol
- URLs
- Cookies, particularly in the context of GDPR
- image file format