I just tried the JScan app on my iPhone coupled with an iCar Pro OBD2 Bluetooth interface and it worked really well for my 2014 Jeep GC. The app was $21 for one vehicle and the iCar unit was $32.
In addition to standard trouble codes, it can read codes from all the modules in the car including the transmission, locking differential, etc. It also allows modifying a number of settings such as wheel size for the speedometer and the TPMS threshold among others. This last is what I need to do seasonally when I switch tires, and it could also be done for aired down pressures.
Note, not every interface module will work with the advanced features set of JScan so look at their website before purchasing one. Also there are a lot of cheap knockoffs that don’t work so make sure you get the genuine article, whichever one you buy.
I also got a free app for use with our Subaru that isn’t as capable but can see many trouble codes.