Nowdays it turned into a bloated client that works in Mac, Linux, and Windows, while still keeping the whole program in a single binary file that weighs only 876 kb, while competitors that use gui libraries weigh around 6 mb.Do they create a separate native gui for each platform instead of using a multiplatform gui library? What's the best approach to achieve such a thing?Thanks. 
How can uTorrent be multi-platform while keeping such a small binary size?
c++;technology
From looking at screenshots it's fairly obvious that the Windows and OSX GUIs of Torrent are not identical, so it's fairly unlikely that they used a multi-platform GUI library. Torrent for Linux doesn't even have a conventional GUI, it offers a web-based interface, which would be programmed separately to a Windows GUI in any case.That's the way to go: If you want to keep binary size down, you can't depend on libraries that aren't included in the operating system, because you'll have to bundle them.Programming separate GUIs for separate platforms is, in my opinion, usually the correct approach: user interfaces on OSX and Windows follow significantly different paradigms, and if you port an app designed for Windows to OSX without changing the user interface, it will look quite alien to the user. Cross-platform GUI libraries can be very helpful tools, but they make it very easy to build software that looks out-of-place everywhere.