2015-12-29 01:42:01 +01:00
# Snapdrop
2015-12-18 16:50:36 +01:00
2015-12-29 01:42:47 +01:00
Snapdrop is inspired by Apple's Airdrop, but is a Progressive Web App built with Polymer and Web RTC.
2015-12-18 16:50:36 +01:00
2015-12-29 01:45:10 +01:00
#### Snapdrop is built with the following awesome technologies:
2015-12-29 09:31:14 +01:00
* [Polymer ](https://www.polymer-project.org )
2015-12-29 01:42:01 +01:00
* [Polymer Starter Kit ](https://developers.google.com/web/tools/polymer-starter-kit/ )
* [Polymer Elements ](https://elements.polymer-project.org/browse )
* [WebRTC ](http://webrtc.org/ )
* [PeerJS ](http://peerjs.com )
* [WebSockets ](http://www.websocket.org/ ) fallback (iDevices don't support WebRTC)
* [BinaryJs ](http://binaryjs.com/ )
* [NodeJS ](https://nodejs.org/en/ )
* [Material Design ](http://www.google.com/design/spec/material-design/introduction.html )
2015-12-18 16:50:36 +01:00
2015-12-29 01:42:01 +01:00
### Frequently Asked Questions
2015-12-18 16:50:36 +01:00
2015-12-30 23:00:29 +01:00
### Instructions
* [Video Instructions ](https://www.youtube.com/watch?v=4XN02GkcHUM ) (Big thanks to [TheiTeckHq ](https://www.youtube.com/channel/UC_DUzWMb8gZZnAbISQjmAfQ ))
2015-12-31 02:17:02 +01:00
* [idownloadblog ](http://www.idownloadblog.com/2015/12/29/snapdrop/ )
* [thenextweb ](http://thenextweb.com/insider/2015/12/27/snapdrop-is-a-handy-web-based-replacement-for-apples-fiddly-airdrop-file-transfer-tool/ )
* [winboard ](http://www.winboard.org/artikel-ratgeber/6253-dateien-vom-desktop-pc-mit-anderen-plattformen-teilen-mit-snapdrop.html )
2015-12-30 23:00:29 +01:00
* [免費資源網路社群 ](https://free.com.tw/snapdrop/?utm_content=buffere6987&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer )
2015-12-29 01:45:10 +01:00
##### 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).
2015-12-18 16:50:36 +01:00
2015-12-29 01:42:01 +01:00
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.
2015-12-18 16:50:36 +01:00
2015-12-29 01:45:10 +01:00
##### What about privacy? Will files be saved on third-party-servers?
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 ](https://github.com/capira12/snapdrop/blob/master/server/ws-server.js )
2015-12-30 23:00:29 +01:00
But it does use Google Analytics.
2015-12-18 16:50:36 +01:00
2015-12-29 01:42:01 +01:00
##### Is SnapDrop a fork of ShareDrop?
No. ShareDrop is built with ember. Snapdrop is built with Polymer.
2015-12-30 23:00:29 +01:00
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.
2015-12-29 01:42:01 +01:00
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.
2015-12-18 16:50:36 +01:00
2015-12-29 01:42:01 +01:00
### Snapdrop is awesome! How can I support it?
2015-12-30 23:00:29 +01:00
* File Bugs, Give Feedback, Suggestions
* Share Snapdrop on your social media.
2015-12-29 01:42:01 +01:00
* [Buy me a cup of coffee ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FDAHZJH3228D6 )
* Fix bugs and do 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!
2015-12-30 23:00:29 +01:00
* Do Security Analysis and suggestions
2015-12-18 16:50:36 +01:00
2015-12-29 17:29:32 +01:00
2015-12-30 23:00:29 +01:00
## Run the project on your device
2015-12-29 17:32:18 +01:00
* Install npm, bower, gulp and the dependencies as described [here ](https://github.com/PolymerElements/polymer-starter-kit#install-dependencies )
2015-12-29 17:29:32 +01:00
* run `gulp serve`
* In a second shell run `node index.js`