Many mobile devices today support functionality known as USB Host. This means not only the device can be connected to a computer to transfer files to and from, but other USB devices can be attached to it. In a way, it's playing a role of the computer, a "host" providing connectivity to other attached devices. One of those attached devices can be your printer. Most printers have USB connectivity.
USB Host functionality is available on devices running Android 4 (Ice Cream Sandwich) and above. However, there are earlier versions with USB Host support, it's not guaranteed. If you are not sure about USB Host support on your device, just take a moment and try - you'll have the answer in less than a minute.
Connecting your mobile device, a phone or a tablet, via USB cable to the printer can be tricky. Some devices have a computer-like large USB socket where the cable that came with the printer fits perfectly well. If that's the case - you don't need anything else and your device most likely supports USB host (or else the socket wouldn't be there).
If however, the large USB socket is not present, no worries - it may work just fine. All you need to get is a USB connection kit widely available on the market. We don't recommend any specific brand but the bottom line is - you need to connect your device using the small USB socket, the one that's typically used for charging and data transferring, to your printer. USB hub will work just fine too.
Please note that some of the mobile devices are unable to communicate with a printer properly even if USB Host mode is supported. This happens due to specific electrical design of the USB port. Sadly in such case the app is not likely to work properly.