airdash

airdash

File sharing flutter webrtc app enabling sending files to any device from anywhere

Stars: 533

Visit
 screenshot

AirDash is a file sharing tool that allows users to transfer photos and files securely between devices on different platforms. It offers maximum privacy and security by encrypting files and transferring them directly. Users can quickly start transfers using native mobile share sheet and drag and drop on desktop. The tool supports all major platforms and app stores, and automatically selects the best and fastest connection available. Key technologies include Flutter 3 for app development, WebRTC for file transfers, and Firebase services for signaling, config storage, and release automation. AirDash is free to use and suitable for sharing any number of files of any size.

README:

AirDash File Sharing

Transfer photos and files to any device.

Get the app

Analytics

Key features

  • Support for all major platforms and app stores (iOS, macOS, Windows, Linux and Android)
  • Free forever to send any number of files of any size
  • Maximum privacy and security by fully encrypting files and transferring them directly between devices
  • Quickly start transfers using native mobile share sheet and drag and drop on desktop
  • Send files anywhere (no need to be on the same network or nearby)
  • Automatically uses the best and fastest connection available (wifi, mobile internet, ethernet etc)

Key technologies

  • Flutter 3 (iOS, macOS, Android, Linux and Windows apps)
  • WebRTC (file and data transfers)
  • Firebase Firestore (WebRTC signaling and config storage)
  • Firebase Functions (device pairing and config automation)
  • Firebase Hosting (website and static files hosting)
  • App Store Connect API and Microsoft Store submission API (release automation)
  • Mixpanel (web and app analytics)
  • Sentry (app monitoring and error tracking)

Run project

  • Create a firebase project (https://console.firebase.google.com) and enable firestore and anonymous authentication
  • Create a .env file by duplicating the .env.sample file
  • Replace the firebase project id and web API key in the .env file with the ones for your project (firebase console -> project settings)
  • Run dart tools/scripts.dart app_env to get a env.dart file
  • Deploy pairing backend function by cd functions && npm i && npx firebase deploy --only pairing
  • Run app using editor or flutter run

By default a google stun server is used to connect peers. The simplest way to enable turn servers as well is to use https://www.twilio.com/stun-turn. Create functions/.env file similar to the functions/.env-sample file and deploy the updateTwilioToken backend function.

Contribute

Contributions are very much welcome on everything from bug reports to feature development. If you want to change something major write an issue about it first to ensure it will be considered for merge.

Publish guide (for contributors)

Prepare

  • Update libraries
  • flutter pub get
  • cd ios && pod update
  • cd macos && pod update

Update version

  • Update changelog.md and version in pubspec.yaml and snapcraft.yaml
  • git commit -am vX.X.X
  • git tag "vX.X.X"
  • git push && git push -f --tags

macOS

  • flutter build macos
  • Archive, Distribute -> Export to App store AND Distribute -> Direct Distribution (~/Downloads/airdash.app)
  • npx appdmg appdmg.json ./build/airdash.dmg

iOS

  • flutter build ipa
  • Distribute with Transporter or Xcode (open build/ios/archive/MyApp.xcarchive)

Android

Windows

Linux

  • Open Ubuntu in VMWare
  • Open ~\Documents\airdash in vs code
  • git pull -r && flutter pub get
  • flutter build linux --release
  • flutter clean --use-lxd # required
  • snapcraft --output build/airdash.snap --use-lxd
  • snapcraft upload --release=stable build/airdash.snap
  • Copy to mac ./build/airdash.snap

Create Github release

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for airdash

Similar Open Source Tools

For similar tasks

For similar jobs