Skip to main content

Implementing Material Design components and guidelines – Googlify your app!

Material Design Google

Material Design is a design language created by Google to encourage developers to implement cohesive and attractive UIs. Material Design relies on a number of guiding principles, as well as specific building blocks called Material Design components.

This approach to UI is utilized across most of Google’s own apps and tools but is also found in many other Android apps and even websites.

If you are an Android developer, having at least a passing understanding of Material Design can go a long way to giving your app that professional sheen that resonates with users. Fortunately, it is now easier than ever to implement Material Design components.

But should you?

The rules of Material Design

If you want to learn the “rules” of Material Design, check out Google’s own Guidelines.

Generally, everything in a Material Design app should represent physical “materials” and interactions. Elements should appear as though they are on a physical surface. Usually, this is flat card and paper. Theses “materials” should utilize shadows and movement as the user expects.

Pop-up windows have shadows. This is also used to communicate hierarchy (by letting you see at a glance what is “on top”).

Material Design components

This is “paper abstraction.”

Animations should utilize ease-in and ease-out and other techniques to create more natural movement. A lot of importance is placed on movement in fact. Generally, the user should feel as though they are static and the interface is moving around them rather than the other way around. Movement can once again convey importance, meaning, and order.

Material Design is big and bold: it utilizes block colors that are often contrasting. Everything should be easy-to-follow, which means bold headings and big, touch-friendly buttons. Google uses a lot of the Roboto font, but this is by no-means a rule!

Be “bold, graphic, and intentional.”

Material Design is big and bold.

Material design is minimalistic. Every element on the screen should serve a specific purpose, which means no overly-designed backgroudns. These only serve to confuse the user and create visual clutter.

Finally, developers should utilize common Material Design components like the floating action button (FAB) and “cards.” These help users quickly get to grips with navigation.

Material Design 2

A few years ago, Google chose to build on the foundations it lay with its Material Design. It did this by bringing us an update to its guidelines. This newer iteration was dubbed by much of the internet as “Material Design 2.” It wasn’t universally applauded!

Rounded Material Design 2

Credit: Google

One reason for this move was that during the early days of Material Design, there were no ready-made Material Design components for designers to turn to. This resulted in a lot of different interpretations of Google’s ideas with mixed results.

Moreover, Material Design was initially very limited to its implementation on the Android platform. The aim of this “refresh” was to make Material Design more “platform agnostic.” Keen-eyed users began to see the changes pop up across Google’s products.

The point of MD2 was never to introduce new “rules” or any drastic change in direction. However, developers have noted an increased use of rounded corners, white space, and Google Sans. This, of course, is where the controversy lay!

Is Material Design a force for good?

Before you start implementing Material Design components and themes in your own apps, you might ask if this is even a good idea.

There are arguments for and against, as ever.

Why Material Design is a good thing

Material Design encourages sensible design trends and decisions that help to provide a more frictionless experience across mobile apps and the web. It also provides a useful framework for developers with no design theory of their own.

This creates the impression of one seamless flow between complementary services.

Android users particularly benefit from this coherent visual language; especially as they jump between apps to share files and chat to friends. Rather than the jarring experience of going from one UI to something completely different when selecting a photo; this instead creates the impression of one seamless flow between complementary services.

More importantly: Material Design puts a stop to terrible design decisions. Like the ugly use of skeuomorphism (icons that are designed like 3D representations of their physical counterparts – think little pictures of phones and cameras), overly-saturated colors, and the old “holo” look from Android’s past. Anyone remember this:

Holo UI

I kind of miss Holo UI though...

Thanks to the (now consistent) Material Design components provided to developers, users can generally rely on finding certain navigation elements in consistent locations. These include floating action buttons in the bottom right, and hamburger menus in the top left. That sure beats spending hours learning each new layout.

Material Design apps area also typically light on resources and quick to load thanks to the reliance on block colors and flat images.

The dark side of Material Design

While these aspects of Material Design have improved the user experience across much of Android, there are downsides to the push toward Google’s singular vision.

Material Design promotes the homogenization of apps.

Material Design promotes the homogenization of apps and services across the Android ecosystem and the web. This reduces the unique impact of company branding and prevents apps from standing out.

Google goes some way to combat this with “Material Design Theming” tools. These apply global changes as you tweak specific aspects of your UI such as color and typography. However, this is still limited in scope and ultimately results in variations of the card-based, high-contrast design that Google is pedalling.

And due to the high number of apps available on both Android and iOS, this can mean a lot of extra work for developers. That said, lot of Google-themed apps still end up on the App Store.

This also hurts the user. Finding an app with a truly unique interface or surprising animation can be a great experience. Google claims it offers “guidelines, not rules” and many interpreted the changes brought with Material Design “2” this way. But there is no denying that Material Design apps have a certain “look” and prescriptive behavior.

No accounting for taste

All of this applies doubly if you don’t like Material Design. While good design follows a number of inarguable rules, it is also subjective.

I am not a big fan of Material Design. In particular, I dislike Google’s use of color in some instances (especially the new Gmail icon!). Likewise, I find Google Calendar on Android anything but intuitive. And yeah, I like my technology to feel “high tech.” There’s no accounting for taste, eh?

Google Calendar screenshot 2020

Credit: Joe Hindy / Android Authority

But, so successful is Material Design, that developers who opt to go against the advice will often end up looking out-of-touch and even outdated.

Your job as a developer is to find the right balance. To employ Material Design and Material Design Components where appropriate, while still finding your own style. To some extent, that’s going to depend on the type of app you are creating. This matters far less for game developers, for example.

How to implement Material Design Components

So, how do you go about creating an app that conforms to the Material Design language and behaves as users expect?

The good news is that this is easier than ever. The templates offered in the New Project dialogue use Material Design Components by default and will automatically match the latest themes and style advice from Google. In Android Studio 4.1, this was updated to reflect the changes that came with Material Design 2.

Layout File 1 1

Credit: Adam Sinicki / Android Authority

This brings some extra boilerplate of course, but thankfully it’s all simple enough to understand and comes ready-commented.

See also: Getting started with the new Motion Editor in Android Studio 4.0

From there, it’s important to consider Google’s guidelines and how you are going to interpret them. Many views exist to help make this easier and are worth getting to grips with. Fragments for example, are brilliant for keeping the user in one place. Likewise, Cardview and RecyclerView are inherently “Material Design-ey.” Fragments are views that can contain entire layouts and come with their own accompanying Java code. Fragments act as their own mini-apps within the broader context your main activity, allowing you to bring more information to the user.

See also: How to use fragments in your Android app for a powerful and dynamic UI

Android Studio 4.0 previously brought us the “Motion Editor,” which makes it much easier to design motion layouts with effective use of movement. Jetpack Compose is likewise meant to streamline the creation of new UIs. Although as ever, Google does have a habit of throwing a bit too much our way. Start with your design, and work backwards to find out what you need to learn.

Spend some time researching Google’s other apps. Question the purpose behind every design decision (communicate, don’t decorate!). Aim for “paper abstraction.”

And if all else fails: hire a designer!



source https://www.androidauthority.com/material-design-components-1177515/

Comments

Popular posts from this blog

5 tips to Voice Speech Recognition in Android Marshmallow

Android Marshmallow landed on our Android devices. The opportunity for us to offer a small compilation of tricks to try immediately. The latest version of the Google OS starts (very gently, unhurriedly) to be offered on other devices as Nexus. You will find on Android TM, in the coming weeks, a compilation of the best tips for Android 6.0 Marshmallow. It starts slowly with a video featuring the 10 essential tips & tricks of this new version of the little green robot OS. To continue, we offer a selection of five "tricks" on the management of the battery on Android 6.0 Marshmallow. To enjoy longer your newly updated mobile. Follow the guide. then continue with 5 tips to tame the super-assistant Google Now on Tap. Here you will find 5 "tips" to manage in the best way your applications. We then discuss the quick tips to navigate more easily on this version of the Google OS. We enchanters with features focused on safety and the protection of personal data. We co...

Energy Android TV Play turns your TV into a Smart TV

ENERGY SISTEM Android Energy TV Play, you have a smart TV with Android operating system allows you to convert any traditional TV has announced the launch of a new product. Energy Android TV Play can be connected to the TV to enjoy f the size of a flash drive, a smart phone, a tablet and a computer unconsolidated is a lightweight device. System 1.6 GHz, DDR3 1GB of RAM and a dual-core processor can be expanded using external USB devices, which is the internal memory of 8 GB. It also integrates WiFi and a USB port for connecting external devices. One of its outstanding features, it is easily connected to the TV screen by screen cast application to display the contents of any terminal, making any phone or tablet is synchronized with iOS or Android. All ENERGY SISTEM products one click In addition, through streaming media service applications, images, video or other multimedia content, and game play is the ability to share. With integrated WiFi, the device you want from t...

How to run Python apps on any platform

Credit: Adam Sinicki / Android Authority Want to know how to run Python? It sounds simple, but it can actually be tricky to figure this out. In this post, we’ll discuss how to test your Python code, as well as how to run Python in other contexts: online for example, or as a packaged app. Sometimes, the thing holding you back from learning to code can be extremely simple. I remember wanting to learn to program when I was younger – or learning to take what I’d learned from BASIC on the ZX Spectrum and apply that to a modern environment. My problem? I didn’t know “where” to program. Once I understood C# or Java, where would I enter the code and how would I run it? And whenever I asked someone, they would look at me blankly. What kind of a question is that? Thing is, I had never needed an IDE or an interpreter before. Machines like the ZX Spectrum and Tatung Einstein (any other Einstein users out there?) simply booted up with a prompt to code into! Many people have a similar iss...