Skip to content

GoldinGuy/PearDrop

Repository files navigation

PearDrop

🍐 A cross-platform file transfer application

Discuss On Discord Contributors Issues

These days, closed ecosystems surround us. iPhones only share with Apple devices, Android phones only with Windows. Sending a file from one place to another is difficult and frustrating, usually requiring you to send an email to yourself. This is not acceptable, and PearDrop aims to solve this issue. PearDrop is an application built on a custom protocol that is available on every platform (Apple, Google, Windows, etc). This allows for simple and efficient file transfer when you really need it.

Gallery

Installation

iOS: Via the App Store or Testflight for the latest version

Android: Via the Google Play Store

Windows: Clone this repo, ensure you are on the latest flutter dev release with flutter channel dev, then run

flutter pub get

cd peardrop_flutter

flutter run -d windows

There will be a new PearDrop.exe file under peardrop_flutter/build/windows for you to run

MacOS: Same as Windows, except run flutter run targeting macos

Linux: Coming soon...

If you run into issues when building for desktop, try running flutter doctor

How it works

PearDrop is an app built on Flutter, a framework that enables cross-platform compatibility for a single codebase. It uses a one-page layout with the following UI/UX flow:

Open App or Click On Share Sheet/Taskbar => Select File to Share => Select Device to Share To

Once a device has been clicked on, it will initiate a function that displays a modal panel to the receiving device asking them to accept or decline. If the transmission was accepted, it will share the file to the other device. The sharing user can then select another device to send to, or click on the file button to select a different file to send.

For more information on how PearDrop works visit the wiki, which describes Architecture, Core Format, and Network Extensions in detail

Development setup

Simply clone the repository, then run

flutter pub get

Then to test the app, enter the peardrop_flutter directory and run

cd peardrop_flutter

flutter devices

flutter run -d "target device"

Contributing

  1. Fork PearDrop here
  2. Create a feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Meta

Created by Students @GoldinGuy and @anirudhb

Distributed under the GNU AGPLv3 license. See LICENSE for more information.