💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
Snapdrop is inspired by Apple's Airdrop, but is a Progressive Web App built with Polymer and Web RTC.
WEBRTC is supported on :
- Android > 4.4
- Chrome 26+
- Firefox 23+
- Edge 14+
- Safari 11+
from https://caniuse.com/#feat=rtcpeerconnection
from http://peerjs.com/status/
from http://peerjs.com/status/old
$ yarn
$ yarn start
# Watch pwa tests
$ yarn run lerna -- run wct --stream -- -- -p
use a release-plz
tag
The front-end (in the packages/pwa
folder) is deployed to a github pages by Travis for every valid commit on a tag. (see https://docs.travis-ci.com/user/deployment/pages/).
Release with lerna
$ yarn run lerna publish --skip-npm --conventional-commits
# then
$ git push --follow-tags
The back-end (in the packages/server
folder) is deployed via now.
It's done manually for now (PR welcome) mainly because we don't have a real domain or a way to sync the generated back-end url given by Now.
$ TOKEN=XXXXXXXX; now -t $TOKEN --public -e PORT=443
then change the back-end url in app.js file.
2017-10-08 Lighthouse 2.5 score 71.5/100 from webpagetest on Moto G4 - Chrome - 3G
Snapdrop is an open source contribution by Nimiq: the Browser-based Blockchain & Ecosytem.
This is a fork of https://snapdrop.net (https://github.com/RobinLinus/snapdrop) down since Juil 8th 2017
- Polymer
- WebRTC
- WebSockets fallback (iDevices don't support WebRTC)
- NodeJS
- Material Design
- Video Instructions (Big thanks to TheiTeckHq)
- idownloadblog
- thenextweb
- winboard
- 免費資源網路社群
What about the connection? Is it a P2P-connection directly from device to device or is there any third-party-server?
It uses a P2P connection if WebRTC is supported by the browser. (WebRTC needs a Signaling Server, but it is only used to establish a connection and is not involved in the file transfer).
If WebRTC isn’t supported (Safari, IE) it uses a Web Sockets fallback for the file transfer. The server connects the clients with a stream.
None of your files are ever saved on any server. Snapdrop doesn't even use cookies or a database. If you are curious have a look at the Server. But it does use Google Analytics.
No. ShareDrop is built with Ember. Snapdrop is built with Polymer. I wanted to play around with Progressive Web Apps and then I got the idea to clone Apple's Airdrop. By doing research on this idea I found and analysed ShareDrop. I liked it and thought about how to improve it. ShareDrop uses WebRTC only and isn't compatible with Safari Browsers. Snapdrop uses a Websocket fallback and some hacks to make Snapdrop work due to the download restrictions on iDevices.
- File bugs, give feedback, submit suggestions
- Share Snapdrop on your social media.
- Buy me a cup of coffee
- Fix bugs and make a Pull Request. This is my first open source project, so I am not very used to the common workflow, but we'll figure it out!
- Do Security Analysis and suggestions
- Install the
npm
,bower
, andgulp
dependencies of Polymer Starter Kitnpm install & bower install
- run
gulp serve
- In a second shell run
node index.js
- Thanks to Mark DiAngelo for the Blop Sound