Amazon sells the ELM327 dongle AND the app as a complete package for 40 bucks, or you can buy the app in the play store for 20 bucks (I assume its the same for iphones, but I do not have one so don't know for sure), then get a cheapo ELM327 from Ebay for a couple bucks (less if you wanna chance the 1 cent free shipping auction!).
I have both the cheap blue elm327 unit, as well as an OBDLink MX, and carista works with both, but it is extremely slow with the elm327 unit, and you may have to unplug it and re-insert the unit for each change you make in the app.
The OBDLink doesn't do that and is way faster to change settings. Nice thing about having either dongle is that you can use it for other apps too, such as Torque.
Its also nice to have a dongle and Carista or Torque, if you ever need to reset check engine codes while you're on the road and away from a computer either app (as well as some free ones in the appstores) will let you read and reset/erase codes.