Depends what you want to code. I use carly and coded away the seat belt chime, added sports display, video in motion, changed low gas warning and some other items.
http://www.mycarly.com/product/bmw-app/
The other option is on a pc:
http://blog.eobdtool.co.uk/full-down...w-coding-tool/