BACKGROUND
Can you please provide a brief description of your company?
Our company, Eleks, provides software development in the spaces of mobile, data-driven, and digital products. We do custom software development, but mostly full-cycle development with UX [user experience], QA [quality assurance], business analysis, and support. We've been doing this for about 20 years, and we have about a thousand employees at the moment.
What role do you play at Eleks?
I am the product manager of mobile and wearable technology.
OPPORTUNITY/CHALLENGE
What was the business challenge your company was facing that incited the need for this platform?
We do most of our projects native, so it's either an iOS or Android environment. We've done research on both Xamarin and PhoneGap. We've tried their commercial products, so we can share our insights. But, to be honest, after using both of these platforms, we still prefer the native environment.
We are always looking for the best way to develop the app based on its requirements. From our research, there are cases when cross-platform tools are more efficient, either in terms of budget or efforts, for a specific application. With PhoneGap, we did some research to form an opinion on what the platform can do and what it can't.
With Xamarin, we did some research to understand if the platform could conform to the needs of our clients and worked to understand in which cases we should use it and in which cases not. We've made our conclusions, and we have completed one commercial project and a few smaller consulting projects where Xamarin was used.
SOLUTION
How does your company implement this platform or software?
Before starting the project there is always the question of which platform should we use for building this app. In most cases, native is simply the easiest and most straightforward choice for long-term projects. In some cases, Xamarin and PhoneGap may be a better option.
Was your company considering other platforms? Why this platform?
We also took a look at Appcelerator Titanium. We performed our research, we tried to build a test application and see if it was more productive than with native or other approaches. We were quite disappointed. The research was performed in mid-2014, and our conclusion was that, at that time, Appcelerator was immature for our needs. The amount of effort it took to build custom applications with custom needs, for multiple platforms, was just too much of a struggle for the result.
We sometimes look at different platforms but, as we see it, regarding the techniques and how the mobile platforms work, it's usually a similar approach either to PhoneGap or to Xamarin, whether it's a web-view inside an app or it's cross compiling. We tend just to focus on the platforms that are the most popular.
In our case, when we build apps for our customers, we want to make sure the platform is reliable. Reliability is the minimum requirement. Platforms must also have a strong community, we want to know that other reliable companies or partners have used this technology successfully. Once we build products, they will usually be live for a couple of years, and it's a very painful to change platforms midway through a project.
On an annual or monthly basis, how much does your company spend to utilize the platform?
For Xamarin, it's a bit expensive. For small projects, Xamarin wouldn't be a good option because the licensing would take a big part of the project budget. The licensing for Xamarin is per year, platform, and developer. We only have a few engineers who specialize in Xamarin, and we don't have enough commercial products to enroll for a bigger pricing plan. We usually buy Xamarin licenses per project, and we do not expense it separately to the customer; we include it in our total price to the client.
With Xamarin, the question is always "is this project big enough to make using Xamarin make sense but also is it small enough that the downfalls of using Xamarin won't influence the final product?"
RESULTS
Can you share any success, metrics, or overall results of your implementation of this platform?
For the specific cases that we developed an app, Xamarin was OK. With Xamarin, we expected the ability to be able to reuse more code.
FEATURES
Were there any software features or tools that really impressed you?
With Xamarin, what we love is that we can use third-party native libraries, iOS and Android, when we need to. It's quite extensible. What we really loved is that we can use our favorite .NET libraries because we have a lot of .NET engineers at Eleks. I have a background in C#, and many of our folks think it's one of the most beautiful languages and the easiest to use. Having a platform you can code in C# for mobile development is definitely a plus.
Looking back, are there any areas of the software that you feel could be added or improved upon?
In terms of choosing Xamarin as a platform and maintaining Xamarin expertise in-house, the biggest drawback is that the developer needs to know iOS, Android, C# and .NET. That's a very unique skill set. It's usually difficult to find a good iOS engineer or an Android engineer. Finding one who knows both platforms, C# and .NET is quite difficult. You need to grow this expertise, and you need to invest in this. Developers don't have to learn Objective C, which is nice, but you still need to understand the framework, the classes, interactions and best practices. The knowledge base needs to be big, that's a drawback of Xamarin.
In general, Xamarin is a great tool but it needs some work, particularly on user interface.
Have you had to interact with the platform's support team or reference their support resources?
From what I've seen, my personal experience on their websites, and what I've heard, Xamarin has very great support.
OVERVIEW
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?
Five.
What would you give the software for ease of use or ease of implementation into your business?
Four.
For support, as in responsiveness of the team or helpfulness of the resources available?
Four and a half. I think the community is good. Stack overflow is filled with questions.
For overall satisfaction with the platform?
Four and a half.
How likely are you to recommend the software to a colleague or similar business?
Four. It depends. I cannot recommend it in each case. For some of the cases, with specific requirements – yes. In other cases – not.