For Homebrew v2.6.x and below:
brew cask install ngrok
For Homebrew v2.7.x and above:
import React from 'react'; | |
import { shallow } from 'enzyme'; | |
import MyComponent from '../src/my-component'; | |
const wrapper = shallow(<MyComponent/>); | |
describe('(Component) MyComponent', () => { | |
it('renders without exploding', () => { | |
expect(wrapper).to.have.length(1); | |
}); |
/** | |
* Inspired by "MyASUS - ASUS support" version 2016 https://play.google.com/store/apps/details?id=com.asus.ia.asusapp | |
* Colors: https://material.google.com/style/color.html#color-color-palette | |
* | |
* See online - https://rnplay.org/apps/7qet3A | |
*/ | |
import React, { Component, } from 'react'; | |
import { | |
AppRegistry, |
{ | |
"auto_complete_commit_on_tab": true, | |
"color_scheme": "Packages/Oceanic Next Color Scheme/Oceanic Next.tmTheme", | |
"draw_white_space": "all", | |
"font_face": "Fira Mono", | |
"font_size": 20, | |
"tab_size": 2, | |
"theme": "Brogrammer.sublime-theme", | |
"translate_tabs_to_spaces": true, | |
"trim_automatic_white_space": true, |
var tilt = { | |
alpha: 0, | |
beta: 0, | |
gamma: 0 | |
}; | |
function lowPass(prev, curr, co) { | |
return prev * co + curr * (1 - co); | |
} |
import React from 'react'; | |
import mui from 'material-ui'; | |
import injectTapEventPlugin from 'react-tap-event-plugin'; | |
import ThemeManager from 'material-ui/lib/styles/theme-manager'; | |
import Colors from 'material-ui/lib/styles/colors'; | |
import MyTheme from './theme.js'; | |
import AppBar from 'material-ui/lib/app-bar'; | |
import List from 'material-ui/lib/lists/list'; | |
import ListItem from 'material-ui/lib/lists/list-item'; |
const pop = (array) => array.splice(0, -1); | |
const push = (array, el) => [...array, el]; | |
const splice = (array = [], startCount, deleteCount = 0, ...elements) => { | |
const { length } = array; | |
let remainder = startCount + deleteCount; | |
if(startCount > length || startCount <= -length) { | |
startCount = 0; |
1. Download Google Apps from basketbuild.com: | |
https://basketbuild.com/gapps | |
2. Extract GPE services apk files from the zip: | |
unzip -j gapps-lp-20150222-signed.zip system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk system/priv-app/GoogleLoginService/GoogleLoginService.apk system/priv-app/Phonesky/Phonesky.apk system/priv-app/GmsCore/GmsCore.apk -d ./ | |
3. Start the emulator with the command: | |
/home/path/to/your/android/Sdk/tools/emulator -no-boot-anim -netdelay none -netspeed full -avd YOUR_EMULATOR_NAME |
/** | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). | |
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the | |
* latter ones will sort after the former ones. We do this by using the previous random bits | |
* but "incrementing" them by 1 (only in the case of a timestamp collision). | |
*/ |