Can you please provide a brief description of your company and the role that you play there?
Hashrocket is primarily a Rail development shop. We do mostly web but, periodically, we get a request to do a mobile app.
What role do you play there?
I am a senior developer. I've been playing with Cordova and using the Ember add-on to make it easier to maintain the app.
What was the business challenge your company was facing that incited the need for this platform?
We started picking up more mobile work, but it's hard to transition our entire team to the workflow of mobile. Mobile requires designers to design differently, so we've started trying to figure out ways to leverage our web experience in our mobile projects. In the past, we've had apps come in that needed a lot of work on them, I think they were PhoneGap apps.
How does your company implement this platform or software?
We primarily use Ember as a front-end web development tool. We looked into Cordova for a couple of apps – there's actually a nice add-on for Cordova called Ember CLI, so that's the direction we're going toward, using our web knowledge in the mobile space. We have a project coming down the line that we are probably going to do with Cordova and Ember CLI. The other apps that we're looking at are, in most cases, just going to be mobile-friendly apps so our designers are really geared toward making the app scale all the way down to mobile as an initial solution and then at that point move to something native.
Was your company considering other platforms? Why this platform?
We looked at other development platforms, but the biggest thing is Cordova's workflow because we can develop like we normally develop. Typically, we just work out of a browser. Generally, we don't need a lot of native things so the few native things we need we can test on the device. There's a good test cloud to test the app on all the different devices – Xamarin Test Cloud. That was what was appealing about using Cordova.
On an annual or monthly basis, how much does your company spend to utilize the platform?
The biggest cost related to our use of Cordova is that, in conjunction, we also use Xamarin's Test Cloud. It is actually pretty costly. We end up net saving no matter what we pay for the Xamarin Test Cloud because using Cordova saves us a lot in actual development costs – when a designer makes a small change in the web, it's really easy for us to fix. There's a plug-in for almost everything. But, native – changing those kind of things with iOS's constraints typically adds a ton of time and cost, things that appear to be small to a client or to a designer turn into a big development things in native. With web, it's so much easier.
Can you share any success, metrics, or overall results of your implementation of this platform?
Quality-wise, I think since most of us are primarily web developers we produce more quality Cordova code than we could in native code. Cordova moves a lot of the complexity outside of your app into a library. Cordova is self-contained, so I think quality wise you produce better code.
Were there any software features or tools that really impressed you?
I like the tools and integrations the most. We work out of Ember CLI, which is the command line most of the time. We don't use an IDE [integrated development environment]. It's nice to be able to work out of the command line and not have to open Interface Builder or Visual Studio. We can use our normal flow. It's great that everything is done in one terminal and that you are able to script a lot of things that you couldn't do in an IDE.
We can customize the tools to our workflow. The way Cordova works, if you want any native integration, you can write your own plug-in. Cordova is extensive. They have a bunch of plug-ins available that you can integrate with a phone's camera or GPS. Everything's available for Android and iOS. We've only very rarely had to write one side of a plug-in where the Android code existed, but the iOS code didn't. They're generally easy. With just minimal knowledge of the native framework ,you can add a plug-in for pretty much anything.
Looking back, are there any areas of the software upon which you feel could be added or improved?
The only downside quality-wise about Cordova is we typically hand off applications. We build the application and then hand them off to our client. A lot of times, they'll come back to us when they want work. But, for small maintenance things, they'll typically hire someone and it's probably harder to find a good PhoneGap or Cordova developer than it is to find a good iOS developer. You have to worry about finding the right person to maintain the app. Also, the Android integration is a little rough, which may be an issue with the Android Emulator. You end up not being able to emulate Android.
Have you had to interact with the platform's support team or reference their support resources?
Not really. We haven't interacted with anyone directly. Most of the time, when we need to know something, we just find a good blog post and generally, that takes you a long way. Cordova is open source so, if you have any questions that you can't find an answer to, you just open the source code and you read it to decipher and try to understand.
We have a few quick questions and, for each question, we ask you to rate the software on a scale of one to five, with five being the best. What would you give the software for functionality of the features available?
Three and a half.
What would you give the software for ease of use or ease of implementation into your business?
Three. Cordova is not that easy. It mostly hinges on documentation.
For support, as in responsiveness of the team or helpfulness of the resources available?
Three and a half.
For overall satisfaction with the platform?
How likely are you to recommend the software to a colleague or similar business?