Browse files

- Ability not only to shake devices, but also Reload JS and Turn on/o…

…ff debugging

- Refactoring
- Disabled auto-updater
- Simplified menu
  • Loading branch information...
alwx committed Jan 26, 2016
1 parent 0c3906a commit d1a5956b75b466f0c07def31b26697f93b105e31
Showing with 235 additions and 286 deletions.
  1. +1 −1 LICENSE
  2. +12 −32
  3. +1 −1 builder.json
  4. BIN media/demo.gif
  5. BIN media/milkshake.png
  6. +6 −6 package.json
  7. +215 −246 src/main.js
@@ -1,6 +1,6 @@
The MIT License
Copyright (c) 2016- Nick Baugh <> (
Copyright (c) 2016- Nick Baugh <> (, Alexander Pantyukhov <> (
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
@@ -1,50 +1,31 @@
# Milkshake
# Frappé
Based on Frappé by [@niftylettuce](
[![MIT License][license-image]][license-url]
> Remotely shake your Android devices (including emulators) using a menubar applet and the hotkey `cmd+shift+r`.
The reason why I decided to fork [Frappé]( is simple — I'm a React Native developer, and I'm tired of clicking "Reload JS" or "Debug JS" in React Native context menu manually.
**Milkshake** allows you to shake Android devices (including emulators), and perform some additional actions automatically, for example, start JS debugging and reload JS.
I've also refactored Frappé a bit, and I hope code is more simple and understandable now. Unfortunately, I've removed auto-update feature (but I will probably add it later).
## Download
The latest release can be found on the [release page][release-page].
## Support
If you have questions or find a bug, please report it under [Issues][issues].
Donations are appreciated and will support free and open source projects.
Instead of requiring you to pay to unlock typical (and annoying) "license expired" pop-ups and making this only available through the Mac App Store -- I made it free; so please donate!
If you want to send a donation, please send it to [@niftylettuce]( — he is the developer of original Frappé, and he deserves your money :)
**[Donate Now][donate-now]**
## Background
Frappé binds the OS X shortcut `cmd+shift+r` to shake all of your connected Android devices over `adb`.
It's a replacement for something like `adb shell input keyevent 82`.
Due bugs in OS X, you cannot create a custom AppleScript command to do this and bind it with Keyboard Shortcuts.
More importantly, Frappé will shake all your devices for you accurately using `adb` directly (e.g. no more typing `-s device-id`)!
## Endpoints
* `/api/crash-reporter` - sends me a crash report in case you run into issues (uses Electron's crashReporter)
* `/api/updates?version=x.x.x` - checks for updates released here on GitHub (uses Electron's Squirrel implementation)
## Contributors
* Alexander Pantyukhov <>
* Nick Baugh <>
@@ -54,19 +35,18 @@ More importantly, Frappé will shake all your devices for you accurately using `
* [Earthquake][earthquake] by Mauro Lucchesi from the Noun Project
* [Café Frappé][cafe-frappe] colour palette from Colour Lovers
## License
[license-url]: LICENSE
@@ -1,6 +1,6 @@
"osx" : {
"title": "Frappé",
"title": "Milkshake",
"background": "media/install.png",
"icon": "media/Icon.icns",
"icon-size": 80,
Binary file not shown.
Binary file not shown.
@@ -1,14 +1,14 @@
"name": "frappe",
"version": "0.0.1",
"name": "milkshake",
"version": "0.9.1",
"main": "dist/main.js",
"author": "Nick Baugh <>",
"description": "Remotely shake your Android devices (including emulators) using a menubar applet and the hotkey `cmd+shift+r`.",
"author": "Nick Baugh <>, Alexander Pantyukhov <>",
"description": "Remotely shake your Android devices (including emulators)",
"scripts": {
"start": "NODE_ENV=development electron-compile ./src/ ./media/ && NODE_ENV=development electron src/main.js",
"dist": "rm -rf .cache && rm -rf dist && rm -rf build && babel src -d dist/ && electron-compile ./dist",
"build": "npm run dist && electron-packager . Frappe --platform=darwin --arch=x64 --version=0.36.2 --icon=media/Icon.icns --app-version=0.0.1 --build-version=1 --app-bundle-id=com.niftylettuce.frappe --out=build --sign=5707CED72ABE1520C144B2E20F8CB794B20929AD --ignore=/*.sketch/ --ignore=/*.gif/ --ignore=/*.DS_Store/ --ignore=/*.cache/",
"package": "NODE_ENV=production npm run build && electron-builder \"build/Frappe-darwin-x64/\" --platform=osx --out=\"dist/osx\" --config=builder.json"
"build": "npm run dist && electron-packager . Milkshake --platform=darwin --arch=x64 --version=0.36.2 --icon=media/Icon.icns --app-version=0.0.1 --build-version=1 --app-bundle-id=com.alwxdev.milkshake --out=build --ignore=/*.sketch/ --ignore=/*.gif/ --ignore=/*.DS_Store/ --ignore=/*.cache/",
"package": "NODE_ENV=production npm run build && electron-builder \"build/Milkshake-darwin-x64/\" --platform=osx --out=\"dist/osx\" --config=builder.json"
"dependencies": {
"adbkit": "^2.3.1",
Oops, something went wrong.

0 comments on commit d1a5956

Please sign in to comment.