EasyShare is a robust, cross-platform ecosystem designed to transfer files between Windows PCs and Android devices over a local Wi-Fi network at maximum hardware speeds (Use 5 GHz WiFi or Mobile hostspot to get faster file sharing. No internet, cables, or cloud storage required)
This project was architected and built from scratch in a 30-hour sprint, applying core engineering mindsets and leveraging AI pair-programming to optimize TCP socket performance and file I/O buffering.
- ⚡ Extreme Speeds: Bypasses OS bottlenecks using
TCP_NODELAY, 4MB Socket Buffers, and 1MB application-level read/write chunks. - 🔌 Zero Cables, Zero Cloud: Transfers data directly over your Local Area Network (LAN).
- 📱 Cross-Platform: Seamlessly connect Windows (Server) and Android (Client).
- 🛑 Safe Cancellation: Real-time transfer cancellation with automatic cleanup of partial/corrupted files.
- 📡 Auto-Discovery: Devices find each other automatically over the network using UDP broadcasting.
- 📦 Batch Transfers: Select and queue multiple files from your Android or PC file explorer.
Windows Client (Server)
- Language: Python 3
- UI Framework: CustomTkinter
- Networking: Built-in
socketandthreadinglibraries
Android Client
- Language: Java
- Environment: Android Studio
- Networking:
java.net.Socket,DatagramSocket,ExecutorService
The easiest way to use EasyShare is to download the pre-compiled binaries from the Releases page.
- Navigate to the Releases Tab on this repository.
- Download
EasyShare.exefor your Windows PC. - Download
EasyShare.apkfor your Android device and install it. - Ensure both devices are on the same Wi-Fi network. (You can also use mobile hotspot connection)
- Open the Windows app and click Start Service.
- Open the Android app, wait for it to auto-discover your PC, and start sharing!
For Windows:
git clone https://github.com/imjanindu/EasyShare.git
cd EasyShare/windows-client
pip install customtkinter
python app.pywFor Android:
Open the android-app directory in Android Studio, sync the Gradle files, and run/build the project directly to your device.
EasyShare/
├── android-app/ # Android Studio Project
├── windows-client/ # Windows PC Client
├── LICENSE # MIT License
└── README.md # Project Documentation
- Peer-to-Peer (P2P) Architecture: Transitioning from a Client-Server model to full P2P to allow Phone-to-Phone and PC-to-PC transfers.
- UI Enhancements: Implement a more user friendly and fluid like user interface.
Built by Janindu Malshan.
- GitHub: @imjanindu
- LinkedIn: Janindu Malshan
“I got tired of clunky, ad-filled file transfer apps and slow cloud uploads. Instead of complaining, I applied an engineering mindset to learn the fundamentals of network sockets, OS buffering, and I/O streams to build my own solution in 3 days.”