Well … that depends
Mobile app development is hardly new. Everyone is doing it – to the point of developing mobile applications before actual websites. And as mobile connectivity has abounded, various ways of creating applications to use whenever and wherever have proliferated too. We are often asked which method is ideal for developing a mobile app, and the answer always comes back as a question. Or rather, as questions:
“What is the purpose of your app and its major functions? Who will be its user? And, what is your budget?”
As with most things, there are pros and cons to each method and your needs will determine which is best for your app. At Coherent, we usually take one of the following approaches to developing a mobile app:
- Responsive website design
- Xamarin Platform
Let’s look at the advantages and disadvantages of each.
Responsive web design
This is often done when an organization has a legacy website and wants to make it easier to read and navigate on a small screen. Coherent’s corporate site is built using a responsive design approach, for instance, in fact, this kind of mobile “app” is really a website, not an app, thus it relies on mobile connectivity via cellular, data or WiFi service.
Besides relying on internet connectivity, which can be spotty, responsive design sites are web-based and thus can’t use a mobile device’s tools beyond the features specified by HTML5 standards and supported by the mobile browser. (i.e.: Camera, microphone, local storage and location services.)
Advantages of PhoneGap include (for the most part) the single codebase, a consistent look and feel, and the ability to interface with native components within the application for functionality not supported by the framework, such as Bluetooth communications. But relying on web view for user interface, the app does not respond as immediately or as smoothly as a native app and the uniform look and feel mean that some of the latest platform-specific design language is typically ignored – like translucency on iOS-7.
Xamarin is a cross-platform development framework that makes it possible to do native iOS, Android and Windows development in C#. Xamarin developers can reuse existing C# code, sharing it across device platforms. This allows a much wider base of providers to develop the app, because they can work in the development language most familiar to them.
While Xamarin claims that developers can share 70-75% of their code, in my experience it is closer to 20-50%. However, the higher percentages can now be achieved with UI reuse by utilizing Xamarin Forms. And the Xamarin platform creates the seamless experience of a native app, tapping all the functionality of the mobile device because the app uses the native user interface framework, as opposed to web view. As a product of a for-profit company, Xamarin comes with developer license costs and gets updates as the company sees the need. Xamarin uses Mono technology behind the scenes and Mono runtime is required for Android platform, thus increasing the size of your app.
Native apps reside on the mobile device, working quickly, seamlessly, and tapping the full functionality of each device, including Bluetooth, NFC and any future capabilities such as temperature, pressure and humidity sensor. But, because iOS and Android each make up an important share of the mobile market, native apps usually have to be developed for both platforms – doubling development time and costs. And for developers concerned about including every kind of device out there (ie: Windows, BlackBerry), there can be even more development costs. But as the gold standard in terms of functionality, performance and reliability, native apps continue to be needed for some purposes.
You can see that each method for developing a mobile app has its pluses and minuses. At Coherent Solutions, we look carefully at a client’s needs and budget before recommending a method. If you’d like to talk over your mobile app with us, please feel free to contact me at: firstname.lastname@example.org. Or call: 612-279-6261.
In his role as CTO Max is responsible for guiding the strategic direction of Coherent Solutions’ technology services. Max has over a decade of software development and technology management experience. He is an accomplished architect and an expert in distributed systems design and implementation. Max holds a master’s degree in Theoretical Computer Science from Moscow State University