Book
  • Introduction
  • Welcome !!
  • Chapter 1: The mobile ecosystem
    • Fragmentation is the devil
    • There is more than one type of mobile app
    • ... more than one type of app
    • ... one type of app
    • Under pressure (ee da de da de) !!
    • Further reading!!
  • Chapter 2: Let's start with design thinking
    • A taste of design thinking
    • The five steps
    • Design for everybody
    • Accessibility in mobile apps
  • Chapter 3: Give me a context and I will give you an app
    • Users
    • Personas? Users ? What is the difference?
    • Please, help me to model the context
    • The context canvas
  • Chapter 4: Powerful models
    • Data architecture is the foundation of analytics
    • From data to information and knowledge
    • Information/Knowledge in our mobile ecosystem
    • Questions to ask yourselves when building and classifying questions
    • The visualization-data map
    • On the scene: describing how personas interact with your app
  • Chapter 5: A GUI is better than two thousand words
    • 'Good to Go:' Let's explore the Design Systems
    • Designing GUI Mocks
    • No prototype... no deal
  • Chapter 6: About mobile operating systems ... and other deamons
    • The Android OS ... son of LINUX
    • iOS son of Darwin? or is it iOS son of UNIX?
    • Kernels
  • Chapter 7: Yes, software architecture matters !!
    • Self-test time
    • About design and design constraints
    • Architects' mojo: styles and patterns
    • What you need is a tactic !!
    • Self-test time 2 (for real)
    • Further reading
  • Chapter 8: Finally... coding
    • MVC, MVVM, MV*, MV...What?
    • Programming models: the Android side
    • Hello Jetpack, my new friend... An Android Jetpack Introduction
    • Programming models: the iOS side
    • Controllers and more controllers
    • Flutter son of... simplicity
    • Programming models: Flutter?
    • Flutter: State matters... Let´s start simple
    • Flutter: State matters... Complex stuff ahead
    • Micro-optimizations
  • Chapter 9: Data pipeline
    • Generalities data pipelines
    • Data storage types
    • Types of data pipelines
  • Chapter 10: Error Retrieving Chapter 10
    • Eventual Connectivity on Mobile Apps
    • How to handle it on Android
  • Chapter 11: The jewel in the crown: Performance
    • As fast as a nail
    • Memory bloats
    • Energy leaks
    • Final thoughts
  • Chapter 12. Become a performance bugs exterminator
    • Weak or strong?
    • Micro-optimizations
    • The single thread game !!
    • Using multi-threading like a boss !!
    • Caching
    • Avoiding memory bloats
    • Further readings
Powered by GitBook
On this page
  • Why use a Design System in your Mobile App?
  • The components
  1. Chapter 5: A GUI is better than two thousand words

'Good to Go:' Let's explore the Design Systems

PreviousChapter 5: A GUI is better than two thousand wordsNextDesigning GUI Mocks

Last updated 1 year ago


Let's remember that design systems are fundamental tools aimed at creating consistent and effective user experiences in any software product. So, first, let's ask ourselves ... Are design systems just for operating systems?

The answer is no. Design Systems exist not only for platforms or operating systems, but also for companies that want to have a recognized brand that can be identified by any client or user. For example, some well-known ones are , , and . In these Design Systems, companies define their appearance and identity for any software product. First, the branding: logo, colors, typography, icons, style of illustrations or photographs. Second, all the components such as buttons, inputs, titles, cards, dialogues, chips, dropdowns, navigations, animations, etc. And finally, the way to distribute and use all these components: the patterns, layout, grid, margins, sizes, locations, etc.

In this way, if the company has several software products, such as web pages, marketplaces, mobile apps (smart phone and smart watch), and/or why not? ... XR apps (like in the case of Apple with Apple Vision Pro), etc. All these products will be designed with the same "shared language" and guidelines, and the new designers and developers won't have to reinvent the design, but they will also use the Design System to maintain the identity, consistency, and user experience.

Many Design Systems are open and allow designers to use them as a reference. This implies that they can also use the software components and modify colors and some properties to adjust them to their product and brand. For example, IBM Carbon is Open Source and has an open community, both in design and implementation of the components. In this way, we can find Figma resources of each Design System (also called UI Kits) to use as a reference:

Now you already know that big companies create their own design systems, as this helps them with consistency, UX, and scalability (of their app designs).

So... when you have your own startup or work in a large company, you will know what a design system is, how to use it, and why it's important. However, now, when designing your app for the course, you won't create a complete design system from scratch. Instead, you will use Material Design (by Google) or the Human Interface Guidelines (by Apple) as a basis for creating your app's identity.

Why use a Design System in your Mobile App?

We were discussing the challenge of creating a generic design that can function seamlessly across both Android and iOS platforms. In order to find solutions and strive for some consistency between designs, we must begin by familiarizing ourselves with the iOS and Android design systems.

The design systems of Android and iOS are not just sets of static guidelines; they are dynamic tools designed to streamline the design process and enhance the user experience. These systems provide a range of pre-designed components, such as buttons, navigation bars, and typography, along with guidelines on their usage and behavior.

By adopting these systems, designers and developers can ensure that their applications adhere to the design standards set by Android and iOS, ensuring a cohesive and familiar appearance for users. Additionally, they facilitate the implementation of best design practices and help to mitigate usability and accessibility issues.

First, let's see the available components in each Design System, and in the next section, we will talk about how to use these foundations and put our own touch on the design to customize it and give our applications an identity.

The components

There are common components used in many applications, and we want you to have an idea of how different or similar these components are.

Note that there are some differences between GUI components depending on the platform. It is important because it is a challenge to maintain consistency between platforms.

Buttons

Buttons help people take actions, such as sending an email, sharing a document, or liking a comment.

There exist many types of buttons, not just the typical rectangle. For this reason, you can find many options within each design system. As each one has its own metaphor, they may look different; however, you can use similar types for each platform. For example, if you use icon buttons in Android, search for their counterpart in iOS.

Progress indicators

Progress indicators inform users about the status of ongoing processes, such as loading an app, submitting a form, or saving updates. They communicate an app’s state and indicate available actions, such as whether users can navigate away from the current screen.

Date pickers

Time pickers help users select and set a specific time and date.

Navigation bar / Tab bar

Navigation bars in Android and Tab bar in iOS offer a persistent, convenient way to switch between primary destinations in an app. 3-5 destinations is the recommended range.

Dialogs / Alerts

Dialogs (in Android) / Alerts (in iOS) provide important prompts in a user flow. They can require an action, communicate information for making decisions, or help users accomplish a focused task.

Menus

Menus display a list of choices on a temporary surface. They appear when users interact with a button, action, or other control.

Cards

In Material Design, Cards are versatile containers, holding anything from images to headlines, supporting text, buttons, lists, and other components. There are not cards available in teh Design system of iOS. How ever you can create ypur own component, in your own design system.

It implies that if you want to mantain consistency with iOS, you need to create a component similar to Cards, but following design guidelines of iOS . This also happens with tooltips and carousels.

(Taken from Airbnb Figma Community UI Kit by )

Material Design System As we mentioned earlier, Material Design has its own base UI components. They are implemented and available for development in and can be accessed for designing mockups using tools like .

Human Interface Guidelines In the case of Apple, there are the Human Interface Guidelines available, which provide guides for different platforms, from Apple Watch, iPhones, and iPads to Apple VisionOS. You can consult specific and also use the to create your own mockups.

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

(Taken from Figma UI Kits of and )

There are many components that you can see and consult in each Design System, such as and . There, you can create your own mockups by copying each component and modifying colors and composition in each view/screen. Refer to Section for some tips on starting to design your own app.

Isabella Scheier
Figma Community UI Kit by Isabella Scheier
Figma Carbon Design System by IBM and others
Android, Flutter, and Web
Figma with the UI Kit
Guidelines for iOS
Figma UI Kit
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Material Design v3
Human Interface Guidelines for iOS 17
Designing GUI Mocks
IBM Carbon Design System
Decathlon Design System
Airbnb Design System
Airbnb
Buttons
Progress
Date and Time Pickers
Navigation bar / Tab bar
Dialog / Alerts
Menus
Material Design Cards