I found DLNA to be a better solution than SMB for this application, though it will still need a separate app on Android. minidlna should be a good fit for the Raspberry Pi. Apple is doing things their own way (DAAP), but you could probably run a DAAP server as well to cover all clients.
Was a breeze to setup on my file server (running Solaris for ZFS support; installing software is often unreasonably painful), actively updates its database as new files are added, and allows me to administer it remotely using the Serviio-Console GUI (e.g. to change the folders it scans, update profiles for clients, the directory structure it presents to clients)
For a barebones implementation, minidlna is a fantastic piece of software. I see MediaTomb recommended a lot, and I'm sure it's fantastic, but I've never managed to get it setup properly.
Yes, I think my next step is to give DLNA and UPnP a try. What I like with SMB is that it is a barebone tree of files, and so I get a better control than with tools needing a database, a protocol or anything more.