I thought it would be useful to provide at least a brief postscript to the appFlower evaluation. We opted to leave it behind for most of the reasons I stated (in addition, when I wrote that post I had just submitted a couple of major questions/issues, to which I have not received a response, so the lack of support is seriously underscored). I’d have to go back and look at the relative time, but as I suspected, in probably no more than 10% of the time, I had a basic app running.
Most of the additional time I needed to spend was in upgrading my Rails IDE (yes, I’m lazy enough to use one), the version of rails on my machine, along with a number of other supporting tools, and then attempting to get the app running on my provider in a shared hosting environment. This last bit of time was useful, in that getting used to Capistrano for deployment was something new. I was able to get everything configured so that I could move all of the correct components to production when ready, but was having trouble getting the fastcgi script configured (the version of passenger that my host uses is way outdated, and the only alternative I have is to pay for a virtual private server so I can install everything myself). Bringing up appFlower on a server really would only take slightly longer than the time required to download the VM image, so this is an appFlower plus. On the flipside, I do not like the sense of real time editing of a production applications, so I’m not exactly sure how you can successfully avoid this.
The other large amount of time spent was on using a new authentication approach than I have before. Previously I used authlogic, but there is a relatively new gem called Omniauth which has providers to allow for authenticating with everything from a system specific user/password to Facebook, LinkedIn, Twitter, OpenID, etc. I was particularly interested in allowing a single user to have multiple authentication methods, so this took a time to figure out. The authorization facility available in appFlower, if you can actually get it working, does not allow for third party authorization. There are tools that allow you to do this with Symfony. This, of course, means that to accomplish anything significant you need to work in Symfony, not appFlower per se. If I was a php/Symfony expert, perhaps this would not be a big deal. Of course, if I was a php/Symfony expert, I suspect that appFlower would be an incredible enumberance, and I wouldn’t use it in the first place.
The actual time spent on the app in Rails itself has been fairly minimal, and now I can move along adding new features and capabilities, with a nice look and feel to the whole thing. I’ve also decided to focus more energy on using the Rails testing framework, which I will discuss in a future post.
My conclusion is that appFlower is marginally interesting but likely of little value over time. While it looks pretty, it has significant limitations that require an actual developer to overcome, so its primary market of non-developers doesn’t look to be well served.