change software configuration of a BLE device with a smartphone app
No, but if you mean changing the software configuration, that is entirely possible using a application specific profile.

Through my research into iBeacons, I came across this helpful stackexchange question:

In summary, you will need to create a writable characteristic on your device to act as a control point. You can hook code up to react to writes to that characteristic and change the device's configuration.

I don't know much about iBeacons, but if all you need is advertising, look @ this API in the SDK:

uint32_t ble_advdata_set(const ble_advdata_t * p_advdata, const ble_advdata_t * p_srdata)


By going through that and the question I linked to, I think you will be well on your way to developing your own i-device. (iBacon)