I think the best approach for me would be to simulate card simulation by having a card permanently attached to the shield (replaceable after a few thousand write cycles) if I could just find a way for the shield to rewrite the card. I came across one post where someone said that by commenting out some lines in the example code they were able to write new data to a mifare card but it didn't work for me, after writing to a new card the first time it won't take new data although the example app's serial output doesn't show any errors.
If anyone has found a way for the shield to write data to the same card more than just once it would really increase the possible uses for the shield.
You don't say which 'phone' you're using, but in the case of Android you don't need to use NDEF with Mifare cards and you can also just read/write using classic block data which is reasonably well support in the current libraries (if you dig into the code you'll see functions to read and write blocks on Mifare Classic cards). This is going to be the absolute easiest/minimal solution in my opinion ... I'd forget NDEF for now since it's another significant layer of complexity and a hoop you may not need to jump through with Android.
I've written iPhone and Android Bluetooth apps for our hardware http://www.BattSix.com
, my interest in using the NFC shield is to provide another option that can function with a variety of phones/tablets that have the capability of reading text from the NFC card.