Tuesday 16 September 2014

Material Design Animation

This document is a preview.


Authentic Motion



Perceiving an object's tangible form helps us understand how to manipulate it. Observing an object's motion tells us whether it is light or heavy, flexible or rigid, small or large. Motion in the world of material design is not only beautiful, it builds meaning about the spatial relationships, functionality, and intention of the system.


Mass and Weight

Physical objects have mass and move only when forces are applied to them. Consequently, objects can’t start or stop instantaneously. Animation with abrupt starts and stops or rapid changes in direction appears unnatural and can be an unexpected and unpleasant disruption for the user.

Best Practices

A critical aspect of motion for material design is to retain the feeling of physicality without sacrificing elegance, simplicity, beauty, and the magic of a seamless user experience. Here are some guidelines to help translate these concepts into animations.

Motion with swift acceleration and gentle deceleration feels natural and delightful.


Linear motion feels mechanical. An abrupt change in velocity at both the beginning and end of the animation curve means the object instantaneously starts and stops, which is unrealistic.

Special Cases: Entering and Exiting Frame

When an object enters the frame, ensure it's moving at its peak velocity. This behavior emulates natural movement: a person entering the frame of vision does not begin walking at the edge of the frame but well before it. Similarly, when an object exits the frame, have it maintain its velocity, rather than slowing down as it exits the frame. Easing in when entering and slowing down when exiting draw the user's attention to that motion, which, in most cases, isn't the effect you want.

Enter and exit frame at peak velocity. The ball enters and exits frame at peak velocity, creating a confident transit
Speed up when entering or slow down when exiting. Don’t distract the user with unnecessary changes in velocity.

Making adjustments

Not all objects move the same way. Lighter/smaller objects may accelerate or decelerate faster, because they have less mass and require less force to do so. Larger/heavier objects may need more time to reach peak speed and come to rest. Think about how this applies to the various UI elements in your app and consider how their motion should be represented.

Material Design

This document is a preview.



Introduction













We challenged ourselves to create a visual language for our users that synthesizes the classic principles of good design with the innovation and possibility of technology and science. This is material design. This spec is a living document that will be updated as we continue to develop the tenets and specifics of material design.


Goals


Create a visual language that synthesizes classic principles of good design with the innovation and possibility of technology and science.


Develop a single underlying system that allows for a unified experience across platforms and device sizes. Mobile precepts are fundamental, but touch, voice, mouse, and keyboard are all first-class input methods.

Principles



Material is the metaphor

A material metaphor is the unifying theory of a rationalized space and a system of motion. The material is grounded in tactile reality, inspired by the study of paper and ink, yet technologically advanced and open to imagination and magic.

Surfaces and edges of the material provide visual cues that are grounded in reality. The use of familiar tactile attributes helps users quickly understand affordances. Yet the flexibility of the material creates new affordances that supercede those in the physical world, without breaking the rules of physics.

The fundamentals of light, surface, and movement are key to conveying how objects move, interact, and exist in space in relation to each other. Realistic lighting shows seams, divides space, and indicates moving parts.
Bold, graphic, intentional

The foundational elements of print-based design—typography, grids, space, scale, color, and use of imagery—guide visual treatments. These elements do far more than please the eye; they create hierarchy, meaning, and focus. Deliberate color choices, edge-to-edge imagery, large-scale typography, and intentional white space create a bold and graphic interface that immerses the user in the experience.

An emphasis on user actions makes core functionality immediately apparent and provides waypoints for the user.
Motion provides meaning

Motion respects and reinforces the user as the prime mover. Primary user actions are inflection points that initiate motion, transforming the whole design.

All action takes place in a single environment. Objects are presented to the user without breaking the continuity of experience even as they transform and reorganize.

Motion is meaningful and appropriate, serving to focus attention and maintain continuity. Feedback is subtle yet clear. Transitions are efficient yet coherent.

Monday 25 August 2014

ActivitySceneTransitionBasic


This sample demonstrates how to the use Activity scene transitions when transitioning from one activity to another. Uses a combination of moveImage and changeBounds to nicely transition from a grid of images to an activity with a large image and detail text.
























Get it on GitHub

Camera2Video

This sample demonstrates how to record video using the Camera2 API.
Get it on GitHub

Camera2Basic

This sample demonstrates the basic use of the Camera2 API. The sample code demonstrates how you can display camera preview and take pictures.

Get it on GitHub

Android L Developer Preview BasicManagedProfile

This sample demonstrates how to create a managed profile. You can also:
  • Enable or disable other apps, and set restrictions on them.
  • Configure intents to be forwarded between the primary account and the managed profile.
  • Wipe all the data associated with the managed profile.
Note: There can be only one managed profile on a device at a time.

 

Saturday 22 March 2014

Developer Preview

Developer Preview

Your app’s notifications will already appear on Android wearables.
With the new Android Wear APIs you can customize and extend those notifications.

Receive Voice Replies
Add actions to your notifications to allow users to reply by voice or touch. The system delivers the text to your app on the phone.
Add Notification Pages
Add additional pages to your notification that are visible on the wearable device to provide detailed information on the wrist.
Stack Multiple Notifications
Your app should consolidate similar notifications. On a wearable, you can stack them together so the details for each are immediately available.

You can also trigger your notifications contextually using existing Android APIs. For example, use geofences to provide glanceable information to your users when they are at home, or use the activity detection APIs to send messages to your users’ wrists while they are bicycling.
See the Android Wear Developer Preview Design Principles for more suggestions on creating great wearable experiences.
 

 

 

Android Wear

Extending Android to Wearables
Android Wear extends the Android platform to a new generation of wearable devices.
The user experience is designed specifically for wearables. 



Say “Ok Google” to ask questions and get stuff done. 

Image of a Hangouts message
Get glanceable, actionable information at just the right time throughout the day.
Image showing
A wide range of sensors is available to your applications, from accelerometers to heart rate monitors.
The Android Wear Developer Preview lets you create wearable experiences for your existing Android apps and see how they will appear on square and round Android wearables.
Later this year, we’ll be launching the Android Wear SDK, enabling even more customized experiences.

Thursday 20 March 2014

When will we get it, how does it work?

It’ll be a little while before we see Wear-running smartwatches on shelves - the first are planned for mid-late 2014 - but Google is already in the process of releasing an early version of the Wear SDK to developers. For the less geeky among you, SDK stands for software development kit, and is used to produce software for any particular system.

It’s what developers will use to make Wear-compatible apps. And judging by how fast some of these developers are, it won’t take long.

Some Android watches are rounder than others
 Something one of Google’s talking heads said in the Android Wear developer demo video tells us much about how the software works. Director of Engineering on Android David Singleton said the apps are "still running on phones and tablets," but "provide richer experiences for the new form factor." The Wear part of an app sounds like it'll function a little like a plug-in for Android apps.

At present Android Wear devices are intended to be paired with Android phones or tablets. It’s just how the Samsung Galaxy Gear and Sony SmartWatch 2 operate, except this time around they’ll be working within the walls of the same system. Apps than run on a Wear device won’t – necessarily – be fundamentally separate from the apps you run on your phone.

The Google developer blog entry confirms this – Wear can use “existing Android APIs” to function. APIs are what control how apps operate within the Android system, and will be fundamental in making Wear watches feel much like your Android phone in use.
 

What is Android Wear?

Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.

Android Wear will bring us the Google watch we’ve all been waiting for (well, some of us). However, there are plenty more questions to ask about this new version of Android.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear will bring us the Google watch we’ve all been waiting for (well, some of us). However, there are plenty more questions to ask about this new version of Android.


What is Android Wear?

Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99

What is Android Wear?

Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99
Android Wear is an extension of the Android mobile operating system designed to power wearable gadgets – primarily smartwatches. Although it has just been announced, it’s no small-scale operation. Many of the biggest mobile phone brands are working with the software already.
Read more at http://www.trustedreviews.com/opinions/what-is-android-wear-a-guide-to-google-s-smartwatch-os#fpBRiQq4mZZUI0ly.99

Is there any way to detect if the clock is round?

If I understood correctly it'll be using standard Android resources, meaning you can just put your layout in layout-circle and you're done.

Android Wear Preview app - which smartphones are compatible?

I don't think there is a device specific restriction, but according to developer.android.com
Note: The Android Wear Preview app is compatible with Android 4.3 
and higher and is not available for the Android emulator.
Edit: I think BLE is used for communication between smartphone and watch. So obviously that would be hardware restriction.

Tutorial: Android Wear with Genymotion

Hi, for people who does not have a phone with Android 4.3 or above, we can not try the Android Wear Preview. :'(
And here is a way you can try, use Genymotion Nexus 4 with Android 4.3 and it works!

  1. Setup a Nexus 4 with Android 4.3 in Genymotion.
  2. Start both the Nexus 4 and Android Wear emulator.
  3. You should first install Google Play Services on the Nexus 4:
    1. Download the zip file
    2. Drag it into the Nexus 4
    3. Reboot the device, and now you are able to install "Android Wear Preview" on Play Store
  4. Open Terminal, use adb tools:
    ./adb devices
  5. you shoud see 2 devices,
    ./adb -s [device name of Nexus 4] forward tcp:5601 tcp:5601
  6. Done!


Saturday 4 January 2014

QuickReturn Listview

This is a implementation of the QuickReturn UI (aka Scrolling Tricks in AndroidViews) developed by Roman Nurik and Nick Butcher for a ListView.
Lars recently added a QuickReturn UI for a footer, Just like in the Google+ app.



 

NewPopupMenu

Inspired by Google Music’s Android app, this android library will create a nice styled PopupMenu for you.





CardsUI

Google’s Now popular Cards UI has everyone fascinated.
Now a library I created mimicking that behaviour is available.
The view might still be a little flaky, and the View’s code is not well documented, but the example really shows you how simple it all is.


You can download the example APK.
or Clone the lib from Bitbucket or Github
Clone from Bitbucket
Download from GitHub

Some Awesome Forks:


https://github.com/Androguide/cardsui-for-android

ICS CalendarView [Backport]

The Andorid 4.0 CalendarView backported to Android 2.1


PagedDragDropGrid

By Nicolas Desjardins
An Android ViewGroup that implements a paged grid with drag’n'drop movable items.
Inspired by Bill Lahti‘s article Drag-Drop for an Android GridView.


Holo ColorPicker

By Lars Werkman
A beautiful Android Holo themed color picker designed by Marie Schweiz and Nick Butcher and developed by Lars Werkman.


Download from GitHub

StaggeredGridView

This is a modified version of Android’s experimental StaggeredGridView. The StaggeredGridView allows the user to create a GridView with uneven rows similar to how Pinterest looks. Includes own OnItemClickListener and OnItemLongClickListener, selector, and fixed position restore.
To use StaggeredGridView in your projects, simply add this project to your workspace then add it as a library project to your current project.
By Maurycy Wojtowicz
Demo link: https://github.com/maurycyw/StaggeredGridViewDemo



Download from GitHub

Parallax ScrollView

A Parallax ScrollView which takes a background and foreground view, in the ParallexScrollView.
By Christopher Jenkins.


Download from GitHub

QuiltView Library

QuiltView displays views of different sizes in a horizontal/vertical scrollable grid.
This library DEPENDS on gridlayout_v7.
By Jacob Moncur


Download from GitHub

Jazzy ViewPager

An easy to use ViewPager that adds an awesome set of custom swiping animations. Just change your ViewPager to JazzyViewPager and you’re good to go!
Available animations:
  • Standard
  • Tablet
  • CubeIn
  • CubeOut
  • Flip
  • Stack
  • ZoomIn
  • ZoomOut
  • RotateUp
  • RotateDown
  • Accordion
By Jeremy Feinstein
Download from GitHub

Circular Seekbar

This one is a circular Seekbar view for Android.
It behaves like any other View, and can be used in any Project.
By Raghab Sood









Download from GitHub

StickyGridHeaders

StickyGridHeaders provides an enhanced GridView that shows items in sections with headers. By default the section headers will stick to the top of the view as sections scroll past like the People app in Android 4.x. StickyGridHeaders is designed to be low impact on your code base and you can easily interchange the original GridView with the one provided by StickyGridHeaders.
To use StickyGridHeaders in your projects, simply add this project to your workspace then add it as a library project to your current project. For additional information refer to the project readme.
By Tonic Artos


Download from GitHub

TimesSquare for Android

A simple, well-designed date picker for Android and iOS by Square.


Download from GitHub

SwipeListView

The folks over at 47 Degrees release the source code for the super-useful SwipeListView Widget.
SwipeListView is an Android List View implementation with support for drawable cells and many other swipe related features.
You can install the sample APK or watch it in action.


Download from GitHub

Holo Circular ProgressBar

HoloCircularProgressBar is a beautiful custom view implementation for Android you might know from the Android Clock App from Android 4.1.


Download from GitHub