Companies have done some experimentation with mobile, many using PhoneGap to create quick, cross-platform solutions. The result: PhoneGap is good, but not great. For this reason, companies are looking for a solution that provides clear direction on how to leverage cross-platform development in a post-PhoneGap world.
The problem with cross-platform support
The number of mobile platforms that need supporting is now down to three: Android, iOS, and HTML5. Sorry, Microsoft and BlackBerry, your days are long gone, and, Tizen, we barely knew you. The challenge is that the three leading platforms are all very different in their delivery: You have native apps vs. websites.
For many years, there has been an increasing number of software companies looking for a silver-bullet solution that gives a delivery team the tools needed to build apps for any platform in one integrated development environment, or IDE. For the most part, solutions such as Titanium and early versions of PhoneGap promised a lot but failed on delivery.
The problems became apparent when building complex apps. The first cross-platform tools were not up to the task. Today, however, the world has moved on. Below are three tools that make it much easier to build cross-platform solutions.
Hot tool #1: Xamarin
Xamarin, a startup launched in 2011, is a company with a single focus: deliver enterprise-quality, cross-platform solutions for iOS, OS X, Android, and Windows, built with C#. It makes sense for Xamarin to choose C# — it is Microsoft’s default development language, with a built-in developer audience of millions. There are three key parts to Xamarin’s suite of tools:
Xamarin Platform: Build mobile and desktop solutions with C# in a single IDE Studio and deploy to iOS, Android, and Windows.
Xamarin Test Cloud: Leverage the power of continuous integration in a cloud service enabling teams inside and outside of an enterprise to test the same code.
Xamarin Insights: Track app crashes, how an app is being used, and see trends with Insights.
What separates Xamarin from other cross-platform solutions is a continued effort to improve the core tools for delivery. The days of a lone developer building a massively popular mobile app are gone. The people in your teams include developers, UI/UX, testing, continuous integration, deployment, steady-state support, and analytics to validate success.
Hot tool #2: HTML5
The easiest cross-platform tool to use is a website. The launch of the iPhone came with Steve Jobs stating that you get “the whole web” and on a real smartphone. In many ways, mobility has been the catalyst HTML5 needed to accelerate support. For years, desktop websites had to maintain support for older versions of Internet Explorer. In contrast, mobile web browsers are frequently updated. Each release of iOS brings an updated version of WebKit, the engine that powers Mobile Safari, and Google updates Chrome for Android every six to eight weeks. Not to be outdone, Microsoft has released a new browser, Edge, to replace Internet Explorer.
To be clear, today’s HTML5 is not your father’s Web 2.0. HTML5 is crazy powerful. Consider this: Microsoft Office, Google Docs, TurboTax, WorkDay, and Concur are enterprise-class solutions all powered with HTML5. The rapid adoption of new APIs and standards keeps pushing the concept of a web app. Here are some of the things that you can now do with HTML5:
IndexedDB: An agnostic database system for data storage to easily to easily take the Web offline
Web Workers: Threading and background workers
Touch/Pointer: For enabling touch and pen/stylus interaction
WebGL: Full 3D environments
Websites such as HTML5Test, CanIUse, and MobileHTML5 show a complete list of the latest standards supported by each browser. Be prepared to revisit these sites frequently. The creative update tools Google and Apple use for the mobile browsers ensures that a device can always take advantage of new HTML5 technologies.
Hot tool #3: Ionic Framework
The newest cross-platform development environment to be released is Ionic. The tool is only just a couple of years old, lacks detailed support, and is hard to set up. So why add it to the list? Simple. Ionic is blazing fast.
The core to Ionic Framework is built on top of AngularJS and Apache Cordova. AngularJS is used instead of jQuery to leverage native hardware acceleration instead of processor-intensive DOM manipulation. In addition, this combination allows for the creation of complex list and view containers without impacting the performance of the device. Everything with Ionic is designed to improve performance. The default theme uses GPU-enhanced CSS for animation instead of CPU-draining CanvasJS.
There are three tools for Ionic:
Ionic Framework: The core framework gives developers all the tools needed to build CSS/HTML/JS-powered apps.
Ionic Creator: A drag-and-drop design tool to create Ionic solutions without code
View App: For testing apps on Android and iOS with View App
Getting started with Ionic does require NodeJS and Xcode on a Mac. Once you are up and running you can get support from Ionic Twitter, Facebook, and YouTube. Ionic Framework is itself an open-source framework managed in GitHub.
Bonus hot tools: Gaming and enterprise apps
There are many additional cross-platform tools that you can use to create mobile apps for iOS and Android. The following solutions have a specific focus and are not general tools like the three covered above:
3D Gaming: Leverage JavaScript to create stunning 3D games with Unity.
2D Games: Create simple 2D games in a matter of hours with no coding using GameSalad.
Enterprise Apps: Microsoft’s new PowerApps opens up rapid app creation with drag-and-drop ease. Keep a close eye on Microsoft, because it's bringing more and more cross-platform tools to Visual Studio as part of its Mobile First, Cloud First focus.
You will notice a common theme will all of the tools listed: APIs. In many ways, APIs are the secret sauce to all mobile applications. A well-structured API, such as Google Maps API, can reduce the development load on the client, whether it is an app, a website, or a cross-platform solution.
When to move to native
The power of cross-platform development is the dramatic reduction in development time. There are times, however, when cross-platform is not the right solution. Android and iOS advance far too fast for tools such as Cordova, Xamarin, and HTML5 standards to even hope to keep up. If you need to leverage the latest iOS framework, then you will want to think about native code. Performance can also be a problem on large apps. Here again, native code will be a good choice.
The bottom line is that cross-platform solutions have matured dramatically in recent years. You can deliver proofs of concept, employee apps, and even popular mainstream apps with cross-platform solutions. However, do not have a “one size fits all” approach to app delivery. Apply the right tool for the audience you are looking to support. This means that your delivery teams must continue to leverage a broad set of skills to deliver mobile apps.
Image credit: Flickr
Keep learning
Take a deep dive into the state of quality with TechBeacon's Guide. Plus: Download the free World Quality Report 2022-23.
Put performance engineering into practice with these top 10 performance engineering techniques that work.
Find to tools you need with TechBeacon's Buyer's Guide for Selecting Software Test Automation Tools.
Discover best practices for reducing software defects with TechBeacon's Guide.
- Take your testing career to the next level. TechBeacon's Careers Topic Center provides expert advice to prepare you for your next move.