This repository has been archived by the owner on May 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'release-candidate' into stable
- Loading branch information
Showing
97 changed files
with
1,365 additions
and
562 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,40 @@ | ||
![Remixer](https://cdn.rawgit.com/material-foundation/material-remixer/master/docs/assets/lockup_remixer_icon_horizontal_dark_small.svg) | ||
# ![Remixer](docs/small_logo.png) Remixer Android | ||
<img align="right" src="docs/remixer_screenshot.png" width="300px"> | ||
|
||
[![TravisCI Build Status](https://travis-ci.org/material-foundation/material-remixer-android.svg?branch=develop)](https://travis-ci.org/material-foundation/material-remixer-android) [![CircleCI Build Status](https://circleci.com/gh/material-foundation/material-remixer-android.svg?style=svg)](https://circleci.com/gh/material-foundation/material-remixer-android) [![codecov](https://codecov.io/gh/material-foundation/material-remixer-android/branch/develop/graph/badge.svg)](https://codecov.io/gh/material-foundation/material-remixer-android) | ||
|
||
Remixer helps teams use and refine design specs by providing an abstraction for these values that is accessible and configurable from both inside and outside the app itself. | ||
Remixer is a framework to iterate quickly on UI changes by allowing you to adjust UI variables without needing to rebuild (or even restart) your app. You can adjust Numbers, Colors, Booleans, and Strings. To see it in action check out the [example app](https://github.com/material-foundation/material-remixer-android/tree/develop/remixer_example). | ||
|
||
This SDK for Android is currently in development. | ||
If you are interested in using Remixer in another platform, you may want to check out the [iOS](https://github.com/material-foundation/material-remixer-ios) and [Javascript](https://github.com/material-foundation/material-remixer-js) repos. With any of the three platforms you can use the [Remote Controller](https://github.com/material-foundation/material-remixer-remote-web). | ||
|
||
**New to Remixer?** Visit our [main repo](https://github.com/material-foundation/material-remixer) to get a full description of what it is and how it works. | ||
## Using Remixer in your app | ||
|
||
- - - | ||
The following docs explain how to get Remixer up and running in your app, and details on what Variable types are currently supported. | ||
|
||
1. [Getting started](GETTING_STARTED.md) | ||
2. [Configure the UI](CONFIGURE_UI.md) | ||
3. [Project structure](PROJECT_STRUCTURE.md) | ||
4. [Supported Data Types](SUPPORTED_DATA_TYPES.md) | ||
5. [Extending Remixer](EXTENDING_REMIXER.md) (TODO) | ||
6. API Reference (_notice this includes internal APIs_): | ||
- [Current Version 0.6.6](https://jitpack.io/com/github/material-foundation/material-remixer-android/remixer/0.6.6/javadoc/index.html) | ||
- [Develop Snapshot](https://jitpack.io/com/github/material-foundation/material-remixer-android/remixer/develop-SNAPSHOT/javadoc/index.html) | ||
- [Using Remixer](docs/USING_REMIXER.md) | ||
- [Configure the UI](docs/CONFIGURE_UI.md) | ||
- [Supported Data Types](docs/SUPPORTED_DATA_TYPES.md) | ||
- (Optionally) [Configure the Firebase Remote Controller](docs/CONFIGURE_FIREBASE.md) | ||
|
||
- - - | ||
## Contributing to Remixer | ||
|
||
## State of development | ||
We're excited you want to contribute to the project! Please read these docs so we can get your contributions submitted quickly. | ||
|
||
Visit our [State of Development](https://github.com/material-foundation/material-remixer/wiki/State-of-Development) wiki for the current roadmap and status of development for each platform. | ||
- [Contribution policy and guidelines](docs/CONTRIBUTING.md) | ||
- [Project structure](docs/PROJECT_STRUCTURE.md) | ||
- [Extending Remixer](docs/EXTENDING_REMIXER.md) | ||
|
||
## Repositories | ||
## API Reference | ||
|
||
The main Remixer GitHub repo for documentation, project tracking, and general information: | ||
- [Remixer docs](https://github.com/material-foundation/material-remixer) | ||
_Notice this includes internal APIs_: | ||
|
||
Platform specific libraries and tools can be found in the following GitHub repos: | ||
|
||
- [iOS](https://github.com/material-foundation/material-remixer-ios) - Remixer for iOS. | ||
- [Web](https://github.com/material-foundation/material-remixer-web) - Remixer for Web. | ||
- [Web Remote](https://github.com/material-foundation/material-remixer-remote-web) - Remixer web remote controller for all platforms. | ||
- [Current Version 1.0](https://jitpack.io/com/github/material-foundation/material-remixer-android/remixer/1.0/javadoc/index.html) | ||
- [Develop Snapshot](https://jitpack.io/com/github/material-foundation/material-remixer-android/remixer/develop-SNAPSHOT/javadoc/index.html) | ||
|
||
## Is material-foundation affiliated with Google? | ||
|
||
Yes, the [material-foundation](https://github.com/material-foundation) organization is one of Google's new homes for tools and frameworks related to our [Material Design](https://material.io) system. Please check out our blog post [Design is Never Done](https://design.google.com/articles/design-is-never-done/) for more information regarding Material Design and how Remixer integrates with the system. | ||
|
||
## Contributing | ||
|
||
We gladly welcome contributions! If you have found a bug, have questions, or wish to contribute, please follow our [Contributing Guidelines](CONTRIBUTING.md) and read the [High-level Project Structure](PROJECT_STRUCTURE.md). | ||
|
||
## License | ||
|
||
© Google, 2016. Licensed under an [Apache-2](https://github.com/material-foundation/material-remixer-android/blob/develop/LICENSE) license. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Configuring the Firebase Remote Controller | ||
|
||
There are three steps to being able to use the Firebase Remote Controller with Remixer for Android: | ||
|
||
1. Install the Firebase Remote Controller on a Firebase Instance. | ||
2. Get your Firebase credentials | ||
3. Set up Remixer synchronization to use the Firebase Remote. | ||
|
||
## Step 1: Install Remote Controller on Firebase | ||
|
||
This is out of the scope of this document, as it is properly documented [in the remote's repo](https://www.github.com/material-foundation/material-remixer-remote-web). | ||
|
||
## Step 2: Get your Firebase credentials | ||
|
||
- Go to your [Firebase console](https://console.firebase.google.com) and click on the Firebase App where you have uploaded the Remixer Remote Controller. | ||
- Click _Add another app_ and follow the instructions (you can reuse an already registered app if that is appropriate). | ||
- At the end you'll download a `google-services.json` file. Put that next to your application module's `build.gradle` | ||
|
||
More detail can be found in [the Firebase documentation](https://firebase.google.com/docs/android/setup#manually_add_firebase). | ||
|
||
## Step 3: Set up Remixer synchronization | ||
|
||
Remixer relies on implementations of `SynchronizationMechanism` to store and sync values. This is set on your Application class's `onCreate()` method. | ||
|
||
In order to use the Remote you only need to use the correct SynchronizationMechanism, `FirebaseRemoteControllerSyncer`, and optionally force it to start sharing variable status immediately | ||
|
||
```java | ||
import android.app.Application; | ||
import com.google.android.libraries.remixer.Remixer; | ||
import com.google.android.libraries.remixer.storage.FirebaseRemoteControllerSyncer; | ||
import com.google.android.libraries.remixer.ui.RemixerInitialization; | ||
|
||
class MyApplication extends Application { | ||
@Override | ||
public void onCreate() { | ||
super.onCreate(); | ||
RemixerInitialization.initRemixer(this); | ||
FirebaseRemoteControllerSyncer syncer = new FirebaseRemoteControllerSyncer(this); | ||
Remixer.getInstance().setSynchronizationMechanism(syncer); | ||
// Optionally you can start sharing your variables to the Remote automatically. | ||
syncer.startSharing(); | ||
} | ||
} | ||
``` | ||
|
||
Since all the Variable Adjustment UI is completely available in the Firebase Remote Controller, if you start sharing in the Application class you may not want/need to use the `RemixerFragment` at all. In that case you can use `FirebaseRemoteControllerSyncer#getShareLinkIntent()` or `FirebaseRemoteControllerSyncer#getRemoteUrl()` to direct users to the remote on your own terms. | ||
|
||
Otherwise, the `RemixerFragment` will automatically show options to share variables with the remote controller and share the link, see below: | ||
|
||
![Sharing UI](sharing_ui.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
9c5f3d7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉