As many product managers and start-ups have come to realize, when you decide to build a mobile app, you are immediately faced with a tough decision. Each mobile app platform (iOS, Android, Windows Phone) has a different set of development tools, languages, and libraries for building the mobile app. The question then becomes, do you keep costs down by building your mobile app once on a single platform, or do you offer your app on multiple platforms for twice or three times the effort and cost? If you are forced to build the application just once, which platform then do you go with?
Cross Platform Technologies
Realizing this was a challenge, the mobile industry has come to market with several unifying or ‘cross platform technologies’ that take a stab at the solution. The goal of any cross platform technology is to write mobile app code once, and during code compilation (taking human readable code language and converting it into machine-specific language), create the native application. This is mobile app development nirvana.The obvious benefit is that code can be written once and continually enhanced and maintained using a single code base, reducing both one-time and on-going costs. The reality of these cross platform solutions however isn’t that great. In particular, downsides include a sub-par look and feel, limited access to several of the phone’s native features, performance issues, and still requiring separate code development and maintenance for the user interface. Although the unifying technologies give product managers and business owners options for a mutli-platform reach at a cheaper development and maintenance price point, they require trade-offs.
The SOLTECH Architecture and Development teams have been following Xamarin closely over the past several months, attending their talks at Codestock 2014. What we liked about Xamarin was their approach to gain some code-reuse while keeping the native look and feel for the app. This was done by writing the shared business logic in C# using Xamarin APIs, and then using the native designers for each platform to develop the UI. It was a good approach, but it wasn’t great. That is, until Xamarin released Xamarin.Forms.Xamarin.Forms provides a new set of shared APIs that allow developers to write the UI once and have it displayed natively for iOS, Android and Windows Phone. The APIs include a number of page types, layouts and controls that speed up development efforts while producing a great user experience. The native platform APIs are still available when access to platform-specific functionality is needed such as querying an accelerometer. With a large portion of graphical and logic functions needed to create a full-featured mobile apps now provided by Xamarin, we were excited with the potential and decided to try it out.Our first step was to create several internal prototypes and see if Xamarin.Forms would be a good fit for the type of mobile development performed at SOLTECH. Being pleased with the initial results, we have begun offering Xamarin.Forms as an option to our clients and have been thrilled with the results. The new APIs have not only improved the speed at which our developers can deliver high-quality native applications, they have the added benefit of simultaneous delivery to Android, iOS and Windows Phone, which allows our clients to reach nearly every one of their customers. Another pleasant surprise was that our development team found the new technology fun and easy to work with. There were no early adoption headaches that we can speak of yet and the apps look and perform great!Could Xamarin.Forms be mobile development nirvana? We hope so! Stay tuned for more posts from our technology team on tips and tricks as they use Xamarin.Forms to deliver game-changing apps for our customers.If you are ready to hear more about Xamarin forms and see if it is a good fit for your custom mobile app idea, let us know by commenting or contacting us! We are happy to answer your questions.
Let us do the heavy lifting.
Are you ready to start a new software development project? Work with our local team of software designers and developers or let us help you recruit a team of your own.