Giter Club home page Giter Club logo

material-motion's Introduction

layout permalink
default
/

Material Motion

Welcome to the Material Motion documentation site. Please check out the Starmap for our engineering specification and our Team documentation to learn more about our culture.

Current status: early development.

Chat Chat with us on Discord.

Android platform support

Library Build status Coverage Version Docs Issues
conventions-android Build Status codecov Release Docs Open issues
gestures-android Build Status codecov Release Docs Open issues
indefinite-observable-android Build Status codecov Release Docs Open issues
material-motion-android Build Status codecov Release Docs Open issues
material-motion-rebound-android Build Status codecov Release Docs Open issues
physics-android Build Status codecov Release Docs Open issues

Apple platform support

Library Build status Coverage Version Platforms Docs Issues
conventions-objc Build Status codecov CocoaPods Compatible Platform Docs Open issues
indefinite-observable-swift Build Status codecov CocoaPods Compatible Platform Docs Open issues
material-motion-pop-swift Build Status codecov CocoaPods Compatible Platform Docs Open issues
material-motion-swift Build Status codecov CocoaPods Compatible Platform Docs Open issues

Web platform support

Library Build status Coverage Version Issues
indefinite-observable-js Build Status codecov Release Open issues
material-motion-js Build Status codecov Release Open issues

Misc libraries

Library Build status Coverage Version Issues
apidiff Build Status codecov Release Open issues
loopy Build Status codecov Release Open issues
material-motion Build Status codecov Release Open issues
milemarker Build Status codecov Release Open issues
starmap Build Status codecov Release Open issues
sublime Build Status codecov Release Open issues
tools Build Status codecov Release Open issues
tsc-reduction Build Status codecov Release Open issues

material-motion's People

Contributors

appsforartists avatar dependabot[bot] avatar gitbook-bot avatar jverkoey avatar material-admin avatar pingpongboss avatar samypesse avatar schlem avatar traviskaufman avatar willlarche avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

material-motion's Issues

Test table

Android platform support

Library Build status Coverage Version Issues
catalog-android 0 open
conventions-android 0 open
experiments-android 0 open
expression-android 2 open
family-direct-manipulation-android passing 100% v1.2.0 2 open
family-rebound-android passing 100% v1.1.0 3 open
family-tween-android passing 100% v2.1.0 2 open
gestures-android passing 95% v1.0.0 2 open
indefinite-observable-android v1.0.0 0 open
runtime-android passing 99% v6.0.1 11 open
streams-android 0 open
transitions-android 9 open

Apple platform support

Library Build status Coverage Version Platforms Docs Issues
catalog-swift passing 10 open
conventions-objc 0 open
coreanimation-swift passing 61% v2.0.0 ios 6 open
coreanimation-transitions-swift passing 84% v1.0.0 ios -1% 0 open
direct-manipulation-swift passing 84% v1.1.0 ios 5 open
indefinite-observable-swift passing 100% v2.0.0 ios / osx 50% 2 open
pop-swift passing 42% v1.1.0 ios 21% 6 open
pop-transitions-swift passing 71% v1.0.0 ios 0 open
runtime-objc passing 91% v6.0.1 ios 100% 16 open
streams-swift 5 open
transitions-objc passing 48% v1.1.0 ios 90% 5 open

Web platform support

Library Build status Coverage Version Issues
indefinite-observable-js v0.1.0 4 open
material-motion-js 48 open
streams-experiment-js 1 open

Misc libraries

Library Build status Coverage Version Issues
apidiff passing 86% v1.0.0 10 open
chrome-inspector 4 open
direct-web 0 open
hubot 0 open
material-motion 16 open
milemarker 18 open
sprints 32 open
starmap 44 open
sublime 0 open
tools 93 open

Define our content strategy for different educational mediums

People acquire knowledge through a variety of mediums including text, video, person-to-person, and teacher-to-person. We'll want to ensure that we cover at least these four mediums over time.

Prioritization

Phase 1: Text-based tutorials.

Phase 2: Video tutorials.

Phase 3: Classes and meetups.

Minimal content required for each medium

  • Getting started with Material Motion on
  • Contributing to Material Motion from
  • Building your first Director.
  • Building your first Motion Family.
  • Overview of available Motion Families and when to use what.

Prototype a UI to display steppers/streams + interpolators in an editing tool

TODO: prototype out a timeline/composition editing UI

  • X axis is the root driver stream (e.g scroll position, drag distance, drag radius, etc)

    • units dependent on presence of normalize operator applied to stream
    • caps dependent on presence of min/max
  • how to represent thresholds

    • maybe a pin, where the largest one is the last one activated?
    • ranges, from the current threshold to the next clobbering one?
  • scrub targets (inc other compositions/timelines) drawn as layers

    • maybe an inner composition is drawn as a perforated box, so you can see the inner layers?
  • what's the relationship between compositions and stream operators?

    • if there are some scrub targets driven by a stream with min and/or max
      terminators, some driven with a normalize operator, and some driven by a
      composition, those should all be able to appear on the same timeline

    • maybe min/max/normalize operators do all the calculation of range, and
      compositions are just a convenience to group scrub targets mounted on the
      same stream?

      • then you don't even need compositions; anything mounted on the same stream
        will be in effectively the same composition.
      • collapses down to runtime.addScrubTarget
        • how would you replace the driver of a scrub target, e.g. get it to
          listen to a different stream? this would help with encapsulation/
          grouping/reusability, though that might be an eventually (rather than a
          now) concern

Weekly engineering review December 14, 2016

Android

  • Move public @interface MotionState closer to the const definitions.
  • Delete public Subscription subscribe()
  • Keep transform in MapOperation.
  • Evaluate whether static abstract class Operation should be static abstract class NextOperation.
  • abstract U transform(T value) rename to abstract U project(T value).
  • Make class ScopedReadable and class ScopedWritable abstract types and not subclass Operation.
  • Rename operator to nextOperator.
  • Deprecate write operator.
  • Move _nextOperator next value in callback to end.

JavaScript

  • Rename project to transform.
  • Test that MotionObservable subscribe method supports just a next function.
  • Should Operation be NextOperation?

Swift

  • Try ExtendableMotionObservable.T for disambig
  • Make public class MotionObservable final.
  • Can we make final class MotionObserver private?
  • Typedef block types across all the things. Look at Java names as reference.
  • Move _nextOperator next value in callback to end.
  • make public class ScopedProperty final.

Discoverability of material-motion.github.io

The current gh-pages site is a bit undiscoverable unless you possess a link; material-motion.github.io 404s.

Potential solutions:

  • Rename this repo to material-motion.github.io
  • Create a new repo called material-motion.github.io with a single file: a simple HTML doc that redirects to material-motion.github.io/material-motion/, either via a <meta refresh /> tag, or a JS snippet
  • File a bug with GitHub requesting the ability to set which repo controls the home page.

find/replace \/ for /

GitBook inserted a bunch of needless \s in our MD files. Let's find/replace them away!

L2 documentation ideas

Will use this thread to jot down ideas for how the L2 content should look.

Recall that someone with an L2 understanding is creating their own Directors using Material Motion plans. This person is not creating custom plans yet.

Things that should be easily accessible:

  • The language of motion with simple examples of their use. Likely hierarchically organized.
  • How to add a plan to a project (e.g. pod 'MaterialMotionPop' to get SpringTo and PauseSpring).
  • Links to the plan's documentation.
  • Examples of Director implementations.

Define a strategy for handling documentation that spans platforms

There is a large amount of documentation we need to write as a team that will be pretty similar across platforms.

I see two ways in which we can structure this common documentation:

  1. each platform has its own document written specifically for that platform, or
  2. one document, with in-line platform switching for code segments.
Choice Pros Cons
1. Content can be written directly for the target audience. Have to write n times as much copy.
2. Less content to write. May be more difficult to discuss platform-specific nuances.

I think that we can do 2. by tagging platform-specific content in such a way that our website can filter out irrelevant content. E.g. there might be a platform picker that shows all elements tagged with that platform. This is similar to how the Milemarker website is designed. It's simple and works decently well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.