In the old days, RCA Universal remotes dominated the universal Remote category. They were inexpensive, and they had the ability to control thousands of devices. However, programming these remotes were burdensome and required looking up special numerical codes for each device you wanted to control and then entering these codes into the remote. It was painful, but reasonably effective. If you wanted a more advanced remote, you needed to venture into the custom market.
That changed when logitech released its harmony remote control, which allowed you to plug your remote into your laptop and simply enter the name of each device you own. The harmony remote would examine its database and automatically program the remote for each of your devices. You could even take that a step further and easily program scenes, which would allow to press watch tv for example, and the remote would turn on each device you needed for that task and adjust the necessary settings and inputs for you. It could even dim the lights if you had a remote controlled dimmer.
The newest trend is the wifi remote app, which allows you to download an app designed to control a specific device over wifi. For example, the LG remote app allows you to open the app and control your lg tv over your home wifi network. The advantage to this is that you can control your device from any room in your house, and you always have your remote (your smartphone) in your pocket. However, the disadvantage is that you often need to open a unique app for each device you own, which can be burdensome.