This is what we did with our product, a CMS (http://www.gethifi.com). We built a very flexible API that has cool things like permissions, relationships and versioning built in. Then we built our app and interface on top of that.
This turned out to have tons of advantages. Our app development went very quickly. It was much easier to do testing. Improvements to the API are now universally available.
On top of all of that, there is an awesome API available for every site on the system!
By inverting the way you think about the API, (build on the API, vs. build an API for an app) you end up with an API that is much more polished as well.