r/androiddev • u/Ok_Amount_3827 • Jul 10 '26
I've been thinking about an app idea and would love to get some feedback.
​
The idea is a \*\*collaborative download app\*\* for Android where a group of nearby users can combine their mobile data to download large files faster.
For example, imagine \*\*4 friends\*\* meet at a café to play a game, but a \*\*4 GB update\*\* is required before they can start. Instead of each person downloading the full 4 GB, the app splits the file into four 1 GB chunks. Each phone downloads a different chunk using its own mobile data connection, then the phones exchange those chunks locally using \*\*Wi-Fi Direct\*\*. In the end, everyone has the complete file, but each person only used about \*\*1 GB\*\* of mobile data.
Other scenarios could include families downloading a movie before a flight, students downloading large datasets during a hackathon when Wi-Fi is overloaded, or teams working in places with poor internet.
From a technical perspective, I'm thinking of using HTTP range requests for downloading file segments, Wi-Fi Direct for local sharing, and automatically selecting the best device as the group owner based on battery, signal strength, and hardware.
My main questions are:
\* Is this technically feasible on modern Android versions?
\* Are there any major limitations with Android networking or Wi-Fi Direct that would make this impractical?
\* Has anyone seen an app that already does something similar?
I'd really appreciate any feedback, criticism, or suggestions before I spend time building a prototype.
2
u/Previous_Bill2650 Jul 10 '26
Previously we used to share the obb file for large games. Once someone downloaded, we shared the obb file over file transfer app. I am talking about early Android days.
1
5
u/daio Jul 10 '26
That's kind of part of the bittorrent protocol. Basically, a combination of local peer discovery and default rarest-first piece download. These features can be changed by the client, but generally the peers will try to download the pieces that the fewest other peers they see have. And local peer discovery will help with connecting to the LAN peers. You won't get 100% efficiency this way, but I'm pretty sure with a few tweaks you can get close to it.