Paulista - Fotolia
Developers face a number of challenges when building mobile apps for multiple operating systems. Creating an app for iOS is much different from creating an app for Android, BlackBerry or Windows Phone. Developing for multiple OSes can mean learning new tools and programming languages.
For this reason, many organizations turn to mobile application development frameworks (MADFs) or mobile application development platforms (MADPs) to help mitigate some of these challenges. MADFs allow developers to use familiar tools and languages to build cross-platform apps that can run on multiple mobile operating systems; meanwhile, MADPs provide developers the tools they need to build, test, deploy and manage apps.
Native vs. hybrid
The native approach to building mobile apps usually delivers better performance and user experience, but requires more developer skills. These apps can also be difficult to maintain over the long haul. Even so, developers with the right skills will find that the native type MADF can help simplify many of their projects.
One MADF that takes the native approach is Xamarin. The product supports a .NET development environment, which allows C# developers to use their existing skills to deliver Android, iOS and Windows mobile apps.
Developers who plan to take the hybrid approach to cross-platform development have a wide range of options to choose from. Although the performance and user experience of hybrid apps are not on par with native apps, this development approach tends to be simpler and faster because it allows developers to use their existing client-side scripting knowledge.
There are also plenty of other frameworks out there for creating hybrid applications, including jQuery Mobile, Sencha Touch, Ionic, Kendo UI and many more. Each offers its own spin on app development and they can vary in capabilities and complexity, but they all provide the ability to build hybrid mobile apps that can use at least some of the target OS's native capabilities.
When shopping around for MADFs, whether those focused for native or hybrid apps, developers should take into account not only their application requirements, but also the skills and resources available to their organization and what each tool will require.
Some frameworks support both native and hybrid cross-platform apps. Some even support web-based apps. Some frameworks are open source, others are not. Some come with larger user communities than others. Some support more development languages. As with any tool selection, developers should know upfront what it is they need and are trying to do before making any decisions.
Building mobile apps with MADPs
Developers that need a more complete package than what's available with mobile app development frameworks should consider MADPs. Comprehensive MADPs not only streamline building, testing, deploying and managing apps, but also include APIs for integrating with other systems and mechanisms for customizing the apps beyond the out-of-the-box capabilities. Some platforms even provide back-end systems and services.
When assessing MADPs, one consideration to keep in mind is how well the platform supports codeless or near-codeless development, also called rapid mobile application development. Under this model, people without much technical development expertise can use point-and-click operations to quickly and easily build mobile apps they can deploy across multiple operating systems. Some of these platforms also allow customizations -- which require coding skills -- but the primary development model is geared toward power users, rather than developers.
One example of this kind of MADP is Force.com from Salesforce. Users simply create custom objects that define the application and control how data is presented. Force.com is cloud-based, so when users deploy their applications, they're immediately available through any web browser or through the Android and iOS mobile apps. This approach is similar to the shell technique used to build and run hybrid apps. Force.com is heavy on the point-and-click approach to development, but professional developers can use it to create custom components to meet an app's unique requirements. In addition, Force.com provides the infrastructure necessary to deploy and maintain the apps throughout their lifecycles.
Amazon Web Services Mobile Hub is another cloud-based platform for building mobile apps -- and deploying them. It includes services for building and testing Android and iOS apps, as well as features such as authentication, data storage, push notifications, back-end notifications, content delivery and analytics.
Not all MADPs are cloud-based, however; many are available on premises. For example, IBM's MobileFirst Platform Foundation provides an environment for building and managing enterprise mobile apps. Developers can use the platform to test, deploy, monitor and analyze apps for a wide range of operating systems, including Android, BlackBerry, iOS and Windows.
The platform supports the complete app lifecycle, from development to implementation to ongoing maintenance. And SAP's Mobile Platform offers infrastructure for developing, deploying and managing mobile business apps. The platform provides the tools necessary to build native, hybrid and web-based apps for iOS, Android, Windows and BlackBerry devices.
There are plenty of other MADPs as well, such as Kony Studio, Appcelerator Platform and Telerik Platform. First decide whether to go with a cloud-based service or on-premises tool. Some on-premises products -- such as MobileFirst -- can also be implemented on a cloud-based hosting-service. It's important to fully understand what features each platform offers and which ones are important to developers and the company, so buyers should do their homework before committing to any one platform.
Explore various MADPs
MADPs have pros and cons
CIO rules to build mobile apps