Langsung ke konten utama

Principles Of The Material


Hi! today we will talk about Material Design.

It was presented at Google I/O conference in 2014 just as a concept and became popular very fast. Many app developers started to redesign their apps even without any help from SDK. And to be honest, they didn't even understand what Material Design is, primarily because even Google didn't really understand what it is. But at the moment, it's clear and understandable.

With time Material Design got support from SDK and now we can build colorful, responsive, natural layouts with the very little effort.

Material Design was invented with the endeavor to bring more of a real world to the digital space but keep it minimalistic. To achieve this goal three principles were stated.

Digital paper

Digital paper is the metaphor to reach the understanding of what is happening on the screen. 

Computers and digital devices were designed to reduce all the paperwork in our life but paper is still a convenient way of storing and transferring information (I still use sticky notes). It's easy to focus on what is shown on a paper piece and using this we can easily control user attention (the main goal of all design concepts). 

Considering this Google studied paper and ink and come up with this brainchild. 

Digital paper has great advantages it can be resized, reshaped, repainted etc. to attract users attention and keep things clear. In everything else digital paper behaves just like a real paper. It casts a shadow to provide depth on your screen and can be split into pieces if necessary. 

Polygraphy

When you use the paper you will probably want to use printing design. 

Printing design develops since 1440 when Johannes Gutenberg invented the first printing press so there was no need for Google to invent something new. They just took the best from modern magazines.

If you look at proper material design app you'll see that it's very similar to a magazine despite the purpose of this app.

Colors, Images, and Typography should be in balance to control users attention and reach the better understanding of your content.

Animation provides meaning

In the real world, nothing comes out of nowhere and nothing disappears in a blink of an eye (there are exceptions quantum physics). Every motion has its own meaning. If this were not so it would be impossible to live in such a world. 

Imagine that you're walking on the beach and a ball appears in front of your face, you even don't have a chance to dodge it and it hits you hard. Do you want to live like that? I think the answer is no, so let's don't make your users to do so.

I can't say better than the Material Design Guideline

Just as the shape of an object indicates how it might behave, watching an object move demonstrates whether it’s light, heavy, flexible, rigid, small or large. In the world of material design, motion describes spatial relationships, functionality, and intention with beauty and fluidity.

Also, there is a forth implicit principle.

Adaptive Design

In the world of the digital clouds, many apps are multiplatform. But for a user, it can be really painful to adapt every time he changes the platform. Google Inbox is a good example of a consistent app. You can read your mail from any device and don't feel any discomfort passing from one to another.

The beauty of Material Desing is that its guidelines can be applied to any form factor and for any purpose. 

Whether it be a TV, watches, car display, mobile phone, desktop etc. you can go by these three principles to build a nice looking app on any device.

Finally

Don't think about Material Design as about strict set of rules. It just summarizes the experience of many years interacting with users and readers.

It provides us with the platform from which we can start thinking about our own design rules and principles to make it even better. Its guidelines are regularly updating with new rules and tips and who knows maybe you will be next trendsetter of Material Design.  

All these principles and how to use them carefully described in Google Material Design Guidelines with examples ho to do and how not to.

Armed with that you can build well-designed apps that will keep users focus on what really matters.

Okay, that's all for today.

See you next week, peace!

Komentar

Postingan populer dari blog ini

FlatBuffers Android Tutorial

FlatBuffers is an efficient cross platform serialization library for C++, Java, C#, Go, Python and JavaScript. It was originally created at Google for game development and other performance-critical applications. FlatBuffers is Open Source (Apache license V2) and available on GitHub . It's currently used by:   Cocos2d-x , the open source mobile game engine and used to serialize the game data. Facebook uses it for client-server communication in the Android app (see the article) . Fun Propulsion Labs at Google in most of libraries and games. Solution overview  The schema will be defind in JSON format, then it will be converted to FlatBuffer format outside the application The Java classes of the Data model will be generated manually using flatc (FlatBuffer compiler) Step 1: Build FlatBuffers Download the source code in Google’s flatbuffers repository .  The build process is described on Google's documentation FlatBuffers Building .  On MacOS for example: Open the xcode proje

QR-Code Generator - Library

In this Post, I introduce my new Gradle Library. This Library is used to Generate QR Code Automatically for our specified input. How to Import the Library: Gradle: compile 'androidmads.library.qrgenearator:QRGenearator:1.0.0' Permission: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> How to use this Library: After importing this library, use the following lines to use this library. The following lines are used to generated the QR Code // Initializing the QR Encoder with your value to be encoded, type you required and Dimension QRGEncoder qrgEncoder = new QRGEncoder(inputValue, null, QRGContents.Type.TEXT, smallerDimension); try { // Getting QR-Code as Bitmap bitmap = qrgEncoder.encodeAsBitmap(); // Setting Bitmap to ImageView qrImage.setImageBitmap(bitmap); } catch (WriterException e) { Log.v(TAG, e.toString()); } Save QR Code as Image // Save with location, value, bitmap returned and type of Image(JPG/PNG). QRGSaver.save(s

Download file using Okio in Android

Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data. Simply Okio is a modern I/O API for Java.  In this post, we will see how to download image or any file using Okio. Okio is component for OkHttp Coding Part Create a new project in Android Studio. Add following dependencies to your  app-level  build.gradle  file. compile 'com.squareup.okhttp3:okhttp:3.6.0' Don't forget to add the following permission in your AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> Implementation Paste the following code in your Activity and Here, I have kept as MainActivity.java public void downloadImg(View view) { try { Request request = new Request.Builder() .url(imageLink) .build(); new OkHttpClient().newCall(request).enqueue(new Callback() { @Override public void onFail