Is it true that each app is designed for its own desktop environment (like GNOME, XFCE, LXDE, etc.)? If I try to use an app that's made for a different desktop than I'm using (like using a GNOME app in LXDE), will it break/look ugly or something? I don't get it...
No. Well generally the answer is 'no'.
A program depends (for instance) on libraries and those libraries get installed with the program. And since those libraries are unique for the desktop environment (DE) they are intended for they will most likely not break the DE you install it on since the maker of said software will try to create unique file names or use general libraries and use general toolkits (and those should be unique too).
If by accident the creator of the program creates something that has the same name and is also saved into the same directory as the software on the DE you want to install it it will get tricky. Sometimes the installer will warn you and quit.
I have seen 1 time where this happend but that was because a piece of software was forked and the person forking it decided to keep names identical instead of actually making it into a new independent program. But you are likely to then choose one over the other so it was basically a non existing problem.
I remember another one: on SCO you have a command called
enable that has 2 functions: it is part of a printer setup where you
enable a printer. But it also a function for something else (and this one comes first). So you can do
disable /dev/kyo0 but need to do
/usr/bin/enable /dev/kyo0 to enable the printer (this was later fixed by renaming
cups-enable) (from memory so specifics might be off ;) ).
But this is just annoying and was not a big problem: since both reside in different directories the command further up the
PATH directive needs to have the directory in front of it).
You really only need to worry about KDE in terms of apps from different desktop environments, and even then, you only need to worry just a little bit. As for Xfce, LXDE, and GNOME, all three of those use the Gimp toolkit (Gtk), so they should function and look properly between each other.
Yes, it might look a bit uglier, but functionality should be retained.