/netshare

An open-source Flutter project that makes it easy to share data in a local network

Primary LanguageDartApache License 2.0Apache-2.0

NetShare

Data sharing in local network

Screenshot 2023-01-11 at 21 39 25

Twitter URL

ko-fi

Demo (Screenshots, Videos)

Mobile

Desktop

Video

NetShare-v2.mp4

How to build the project

Note: This project is mainly running on the latest Flutter beta channel

  1. Run the project as usual
flutter run -d <target-platforms>

<target-platforms> is all supported Flutter platforms, except Web.

Normally, desktop app (macOS, Windows, Linux) will be server and mobile app (Android, iOS) will be client role. But roles can be reversed, let's try and enjoy :)

How to use the app

  1. Build and open app on your target platform as above

For instance, I want to share files between Macbook and Android, so I will build and run app for these platforms. Or you can use released binary files in Releases without building the project.

  1. Connect
  • On Macbook (assume the role of server):
    • Enter the current machine's IP address and port (In 1st time, it will automatically get IP and auto-filled it. Next time, it will use the cached previous connected address).
    • Enter/paste/pick directory location where the files will be hosted.
    • Click on Start hosting button
  • On Android/iOS (assume the role of client):
    • You have two options:
      • Scan to connect to scan the address with QR Code generated by server app (on Mac above)
      • Manual connect to enter address yourself
    • After filling IP/port, press Connect button and enjoy it

Note

  • Remember to connect both server and client app in the same network
  • iOS: To keep iOS app persisting on your device, recommend running it in release mode: flutter run --release (you can not reopen app if running it in debug mode)
  • Run Hive object generator (only when hive (NoSQL Database) has some major changes or the project lacks .g.dart files). By default, all .g.dart files are committed to the repository so you don't need to re-generate again.
flutter pub run build_runner build --delete-conflicting-outputs