Vehicle Smart Solves an Everyday Problem with Five-Star Xamarin Apps
From life-saving technology to small daily conveniences, mobile developers everywhere are creating apps that make our lives easier, better, and safer. Vehicle Smart, for example, allows UK residents to quickly check annual vehicle safety and emissions permit status, view upcoming tax deadlines, verify vehicle history, store insurance information, and more. Prior to launch, individuals often purchased vehicles that were out of compliance, potentially emitting hazardous chemicals and damaging the environment or, at the very least, incurring fines for past-due fees.
Born out of their own frustration with market offerings, the Vehicle Smart team, comprised of just three developers, recognized a need and shipped their apps in only two months. Since launch, the apps have been wildly successful, and the team created a corporate entity (Vehicle Smart Ltd.) to continue to add more features and generate revenue.
Today, we’ve invited Rob Wilson, co-founder of Devology, Ltd. and passionate Xamarin developer, to share how Vehicle Smart went from idea to five-star app.
Tell us a little bit about your company and role. Have you always been a developer?
I’ve been a developer since my teens, when I wrote 8-bit MSX computer games. From there, I joined General Dynamics and spent 18 years in the defense sector. These days, I develop websites, web apps, web services, and mobile apps for all use cases, from social sharing to team safety.
I co-founded Devology Ltd. with my cousin, Michael Glazebrook, to write our own software products. In our second year of business, we connected with James English, who was in the process of transitioning from 17 years in government software development to commercial web and mobile apps.
Initially, James focused on iOS using Swift, but found development frustrating and slow. After a couple of weeks, James asked me for some C# and Xamarin training and support, and he quickly saw Xamarin’s huge potential and the benefits of cross-platform development, especially with Xamarin.Forms. From there, we formed Vehicle Smart Ltd, a 50/50 split between Devology Ltd. and JVE Ltd., James’ company.
Due to my experiences developing mobile apps, I was able to offer advice, consultancy, and pair-programming (working side-by-side), utilizing Xamarin.Forms. James, a Certified Usability Analyst, spent his years in the defense industry crafting and fine-tuning highly nuanced jet weapon displays. With my technical knowledge and his ability to create powerful and clean UIs, we’ve attracted positive praise from our users. Vehicle Smart is now our number one performing app, with only a few months’ part-time development!
Tell us about your app and what prompted you to build it.
Vehicle Smart (available on Android and iOS) is the smart way to check MOT and TAX information for any UK vehicle. Vehicle Smart provides free, up-to-date data for all UK vehicles, allows users to manage their vehicles through the “My Garage” and “My Services” features, and performs mileage analysis to spot mileage discrepancies between dealer reports and the MOT database. In our latest update, users can set important date reminders, such as MOT and tax expiry, insurance renewals, and service dates, as well as save vehicle-specific details, like oil type, tire sizes, and more, for easy access.
We also expose our JSON web-service API to allow other developers to access UK vehicle and driver agency (the DVLA and DVSA) data in an easy-to-consume JSON format, rather than scraping the HTML themselves. The agencies hold all vehicle and driver information and record every single vehicle test, so this is a vast amount of data.
Vehicle Smart was born out of James’ frustration with the current market offering and burning desire to create a product. He’s passionate about cars and bikes, and had used many mobile apps over the years, often two or three at a time, to manage and obtain the vehicle information that he needed. There wasn’t a single app that could do everything he was looking for and do it well.
Little did we know how popular our app would be! In under four months, we had over 100,000 users and more than 1,000 five-star reviews. We’ve had lots of feedback, ranging from how intuitive and simple we’ve made the user interface to amazement at how much data we provide. Numerous users thank us after they’ve discovered their tax or MOT has expired, letting us know that we’ve saved them from driving illegally, and avoiding hefty fines, with our app!
Why did you choose Xamarin?
Due to my previous mobile experiences, I was confident that Xamarin.Forms would be the ideal solution, allowing us to reuse our UI layer and business logic across platforms. I considered Xamarin.iOS and Xamarin.Android, but determined that Xamarin.Forms could easily handle our user interface needs.
I had used C# for some time, so when I started using Xamarin, I just extended that knowledge as I went on.
What do you think about when you hear “native app”? How did Xamarin help you accomplish your definition of “native”?
To me, native means hooking into all of the low-level platform SDK libraries, without restriction, which allows the UI to look and feel native. This is very important to me. I’ve had arguments with colleagues that felt HTML5 provided excellent UI support, but I saw glitchy animations and weird behaviors that yanked me out of the typical phone user experience, especially with iOS 7’s big look-and-feel update, aging the supposedly ‘native’ HTML5 implementations overnight.
Xamarin gives developers the right mix. You can use Xamarin.iOS / Xamarin.Android or Xamarin.Forms, and call through to the native libraries. Xamarin.Forms has gotten better and better, including improved support for native user interface controls, without needing custom renderers. My biggest problem right now is finding time to keep up with its evolution!
How long did it take to ship your app, from design to deploy?
From initial concept through to market, it took us eight weeks. James and I poured our spare hours into the design, development, testing, and deployment to the Google Play Store. A few days later, we deployed to iOS.
I’d estimate that we’ve reused 95% code across platforms, including UI and business logic. A shared services folder defines our UI on both platforms, including local notifications, persistence, and logging.
Since our launch, we’ve continued to release updates, including In-App Purchases and premium upgrades, expiration reminder notifications (7 days for freemium users, 14 and 30 days for paid users), saving vehicle information and overall improvements based on users’ feedback. We’re also actively working on our Windows app.
Without Xamarin, you could easily triple the amount of time it would have taken us to get to market, perhaps more. We would have needed to learn the Android Studio tooling, as well as all the Activity stuff that Xamarin.Forms shields you from. Plus, we’d then have to develop in Java for Android, Swift for iOS, and C# for Windows.
Why is mobile quality important?
We lose sleep over this regularly! An app’s ability to perform will defines its success, and delivering a high quality product has been key to our success so far. Apps that are full of bugs and crash often tend to be dismissed very quickly, and winning a user back becomes twice as hard, if not impossible. When you’re a new app on the market, it’s imperative your product is 99% stable. First impressions count for everything.
How do you use HockeyApp?
HockeyApp has been invaluable. It helps us capture crash logs, see stack traces, helping us track down a number of bugs that our users were experiencing, but we hadn’t seen ourselves.
We can see crash frequency, which determines the priority that they should be fixed. Based on impact, we decide whether we hold back for another beta test, or whether we need to go live with an urgent fix.
We also like the idea of adding analytics to see what features people are using the most and to get insights about which features the haven’t yet discovered.
What have your users said about your app?
We said this before, but the response has been amazing. Our friends and family love it, but they’re biased so we rely on the amazing reviews we’ve received for both Android and iOS.
We’ve learned that users sometimes struggle to leave feedback in the App Store, so, while our iOS version has only 47 reviews, all have been five-stars!
What advice do you have for developers who are just starting out or investigating mobile development? Any best resources?
Personally, I learn a little, code a little, learn a little more, write tons… refactor.
My main resource is the official Xamarin documentation, and I find the Xamarin Forums invaluable. The community is fantastic, and I contribute when I have time. Xamarin’s blog post are great for keeping up-to-date about new features, the Charles Petzold book is also good, and StackOverflow is always an amazing resource. With these options, my questions are always answered.
If you’re an enterprise, be careful not to over-analyze or over-design. Avoid the waterfall model in exchange for an agile approach. For us, we try to have a sprint that captures a large feature and some bug fixes. We avoid unnecessary documentation like the plague, using Trello as our go-to place to capture all project details.
Be warned: users can be fussy and you’ll need to be on top of their reviews. Don’t assume you know all of the answers. Get a version out early, and get feedback from your customers.
In summary, just start. Don’t get paralyzed, trying to find the perfect way of doing things from the outset. Make mistakes and learn from them.