Bloom.fm is an awesome all-in-one music app that gives you access to over 22 million songs. It's very similar to Spotify but I'd personally say it's presented in a lot better fashion.
The app is completely free to use, providing you can put up with the occasional ad. You can stream music via WiFi or 3G and can even save them for offline use, but you will need to upgrade to a paid plan. Bloom like to call it 'borrowing', for only £1 a month you can save up to 20 songs for offline use. For £5 a month you get 200 songs, and for £10 you can save an unlimited amount. It's cheaper to upgrade to a paid plan via their site than on the App Store, so it's worth doing it there.
One of the best features about Bloom is that it'll automatically recommend and play songs depending on the artist or genre you choose. You can of course search for specific songs, albums and artists.
The design of the app is amazing, both on Android and iOS. The animations and fluidity of the app are fantastic and make it an absolute joy to use. It's a very good example of an app that has a flat design.