I was just going through a food delivery application's preferences file where I found that it had a boolean to check if the user has one of its rival's app installed or not. Is it ethical to do so on their part?
It really depends on what they do with that information. If they purely use it to have a statistic "X% of our users also have the app from competitor Y installed" then I don't see anything wrong with it.
If they use it to skew the competition, e.g. by offering such users special discounts, I would counsider it unethical.
I assume checking itself is not a problem yet. I remember the news that some big company was caught on making discounts when rival app was installed. This information can be sent to the server as a part of some statistics call and the server can theoretically implement any logic it wants. I also assume that this logic will be immediately disabled if someone pays much attention.