{"id":20251769,"url":"https://github.com/huynguyennovem/netshare","last_synced_at":"2025-10-16T18:03:49.049Z","repository":{"id":147951446,"uuid":"586751159","full_name":"huynguyennovem/netshare","owner":"huynguyennovem","description":"An open-source Flutter project that makes it easy to share data in a local network","archived":false,"fork":false,"pushed_at":"2024-07-08T15:18:44.000Z","size":898,"stargazers_count":105,"open_issues_count":5,"forks_count":22,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T21:45:03.040Z","etag":null,"topics":["application","dart","desktop-application","flutter","local","mobile-application","network","sharing-data"],"latest_commit_sha":null,"homepage":"https://twitter.com/NetShareOSS","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huynguyennovem.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["huynguyennovem"],"ko_fi":"huynguyennovem"}},"created_at":"2023-01-09T06:19:11.000Z","updated_at":"2025-04-01T07:11:21.000Z","dependencies_parsed_at":"2024-11-14T13:15:28.428Z","dependency_job_id":null,"html_url":"https://github.com/huynguyennovem/netshare","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynguyennovem%2Fnetshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynguyennovem%2Fnetshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynguyennovem%2Fnetshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huynguyennovem%2Fnetshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huynguyennovem","download_url":"https://codeload.github.com/huynguyennovem/netshare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248637834,"owners_count":21137538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","dart","desktop-application","flutter","local","mobile-application","network","sharing-data"],"created_at":"2024-11-14T10:12:43.158Z","updated_at":"2025-10-16T18:03:44.017Z","avatar_url":"https://github.com/huynguyennovem.png","language":"Dart","funding_links":["https://github.com/sponsors/huynguyennovem","https://ko-fi.com/huynguyennovem","https://ko-fi.com/I2I7LA2DY"],"categories":[],"sub_categories":[],"readme":"# NetShare\nData sharing in local network\n\n\u003cimg width=\"772\" alt=\"Screenshot 2023-01-11 at 21 39 25\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/0a4ab95b-1fd8-4f30-97f2-43e3805894f2\"\u003e\n\n[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/blueaquilae.svg?style=social\u0026label=Follow%20HuyNguyenTw)](https://twitter.com/HuyNguyenTw)\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I7LA2DY)\n\n## Demo (Screenshots, Videos)\n\n### Mobile\n\n\u003cimg width=\"300\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/55749d98-1d96-4c7f-a709-e33b96cb156a\"\u003e \u003cimg width=\"300\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/f8e4ad71-ff86-4734-9709-90ddead3fd2c\"\u003e \u003cimg width=\"300\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/2150f38b-3b91-405e-ba5f-5db8dba9904b\"\u003e\n\n### Desktop\n\n\u003cimg width=\"600\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/2ced719b-4516-451a-94e0-c9264d6b4e39\"\u003e \u003cimg width=\"600\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/e90ae9d7-2475-489d-8845-8f3eb63bd1de\"\u003e \u003cimg width=\"600\" src=\"https://github.com/huynguyennovem/netshare/assets/29337364/683c58ee-78b7-4c07-a371-da2eb1f276da\"\u003e\n\n### Video\n\nhttps://github.com/huynguyennovem/netshare/assets/29337364/2e9caa89-d05a-48f5-ae79-6e69760962ad\n\n## How to build the project\n_Note: This project is mainly running on the latest Flutter beta channel_\n\n1. Run the project as usual\n\n```bash\nflutter run -d \u003ctarget-platforms\u003e\n```\n\n`\u003ctarget-platforms\u003e` is all supported Flutter platforms, except Web.\n\n\nNormally, 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 :) \n\n## How to use the app\n\n1. Build and open app on your target platform as above\n\nFor 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](https://github.com/huynguyennovem/netshare/releases) without building the project.\n\n2. Connect\n\n- On Macbook (assume the role of server):\n    - 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).\n    - Enter/paste/pick directory location where the files will be hosted.\n    - Click on `Start hosting` button\n- On Android/iOS (assume the role of client):\n    - You have two options:\n      - `Scan to connect` to scan the address with QR Code generated by server app (on Mac above)\n      - `Manual connect` to enter address yourself\n    - After filling IP/port, press `Connect` button and enjoy it \n\n**Note**\n- Remember to connect both server and client app in the same network\n- iOS:\nTo 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)\n- Run Hive object generator (only when [hive](https://pub.dev/packages/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. \n```bash\nflutter pub run build_runner build --delete-conflicting-outputs\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuynguyennovem%2Fnetshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuynguyennovem%2Fnetshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuynguyennovem%2Fnetshare/lists"}