One of the biggest challenges facing enterprise mobile app developers today is designing and developing apps across multiple platforms. In 2011-12, having a mobile strategy was imperative as the “consumerization of IT” and “BYOD” trends pervaded. As a result, enterprises now must shift their mobile strategies to support multiple mobile devices and platforms or else, lose the power to manage all the various devices within their environment.
Some companies can focus on developing apps for just one device type or mobile OS if the devices were company-issued, but this is becoming less and less the case. Businesses and brands must support more than one device or risk backlash from select employees for not supporting their non-supported devices. Keep in mind – as prevalent as the iPhone seems to be, Android has been caught up in popularity.
Cross-platform app development frameworks are becoming critical tools for developers because they’re designed to lessen the time and resources that developers or development teams has to allocate to creating apps for iOS, Android, BlackBerry, Windows Phone and beyond. By not spending excess time and effort creating apps to apply for different devices and mobile OSs, they can focus on what matters most – end user experience.
However, since each cross-platform development tool is unique and exhibits diverse features, capabilities and behaviors, developers will face increased challenges and opportunities designing successful device- and OS-agnostic mobile apps.
I recently spoke on a panel at Mobile+Web DevCon and my fellow panelists and I got into a discussion about the pros and cons of using cross-platform app development frameworks.
- Reuseable Codes: Rather than having to write the specific action or sequence for each platform, a developer can just write the code once and then reuse those bits in later projects or on other platforms.
- Plugins: Most cross-development frameworks offer easy access to plugins and modules that can easily integrate with other services and tools.
- Easy for Web Developers: Most cross-platform frameworks are dynamic and simple for web developers to jump in and use, because many of these frameworks support HTML5 and CSS3.
- Reduced Development Costs: This is perhaps the biggest advantage because it allows companies and brands to get an app onto other platforms without having to invest in a separate developer or team.
- Support for Enterprise and Cloud Services: In addition to plugins and modules for specific functions, most frameworks also have the option to directly integrate with cloud services, including Salesforce.com, AWS, Box.net and others.
- Easy Deployment: Deploying apps is much faster in a cross-platform scenario because it’s easier to incorporate one development code onto multiple devices. This is especially true with many of the new cloud-based tools that various frameworks are starting to push out.
- The Framework Might Not Support Every Feature of an OS or Device: If, for example, Google, Apple or Microsoft adds a new feature, the framework being used will need to be updated to support those new functionalities.
- You Can’t Always Use Your Own Tools: Most frameworks want users to use their own development tools and suites, and that can mean that a developer has to forgo his or her own preferences and use something else, even something unfamiliar.
- Code Might Not Run as Fast: The cross-compilation process can sometimes be slower because it may take longer to load than native tools.
- High-End Graphics and 3D Support is Often Limited: Fortunately, game-centric development platforms, like Unity, are here to help fill in those gaps.
When considering the pros and cons of app development, Josh Clark, Interaction Design guru, states that app design is one of the major factors cross-platform developers need to be aware of — whether they use a framework or not. Designing an app for the iPhone is different than designing one for a tablet; the UI and UX conventions are different, and touch points and menus work in different ways.
In addition to app design, it’s also important to factor in who the app is being developed for. This pertains to anything from the mobile web apps to e-publications to native apps.
Certainly a couple of years back, developers could quite safely shoot for iOS first, think about Android later and ignore everything else. Now, there are many more options, and although its pros and cons are almost equivalent in nature, taking a cross-platform approach to mobile app design and development appears to be the wave of the future for app developers.
Regardless of which platform, if not all, you’re developing for, app testing will still be one of the most critical steps of the app development lifecycle. Just because an app works fine on iOS doesn’t mean it’ll work just as well on Android devices. Likewise, just because an app works fine on an emulator doesn’t mean it’ll work fine on a real device. So, test early, test often, and on real devices to ensure the quality of the app. A trend I’m realizing is that end-users are becoming very unforgiving about buggy apps which are, quite frankly, synonymous with “revenue- and reputation-killer.” App development is a hot industry and the market is saturated with app developers, so being blasé about app quality is not an option.