Over the next 10 years, we expect the mobile app development technology market to winnow down the 100-plus solutions we’re currently tracking to a more manageable number. In the meantime, application development and delivery professionals need to step carefully through a hype-filled minefield of tool choices in order to deliver five-star mobile applications to their customers, employees and partners. But, we’re all sailing in uncharted territory, so it’s wise to keep your options open and maintain a multiple-tool/technology approach while the collective market finds its bearings.
Mobile activities vary: Some are device-centric, some require connections to Internet resources, and still others are content-focused. You have to balance factors such as cost, performance, agility and experience levels when it comes to the right technology for each of these mobile workloads. Understanding the menagerie of tools and how they support different mobile development approaches is the first step in identifying the right multi-pronged approach for any situation.
Native development tools keep hardcore developers close to the platform. Each mobile platform vendor makes low- or no-cost tools available to developers to build mobile apps that will run natively on its platform. In Apple’s case, developers use Xcode to build and compile iOS apps. Google offers the Android Developer Tools, a plug-in for the Eclipse development platform. Microsoft Windows Phone SDK 8.0 includes a standalone version of Visual Studio Express 2012.
In each case, these development tools include everything needed to support a basic edit-compile-debug cycle, as well as a platform emulator for off-device testing. While they are optimized for a single platform, they’re only suitable for hardcore developers that are willing to invest a substantial amount of time to learn the extensive and sometimes intricate APIs unique to each mobile platform.
Responsive Web templates optimize page display for different devices. Many mobile Web developers combine lightweight Web frameworks with CSS media queries and new HTML5 elements to create fluid views that can resize a website dynamically to accommodate different viewports. The dynamic sizing break points are usually specified in pixels (e.g., 320px, 600px, 768px, 1024px) and allow developers to cover a wide variety of HTML devices, including eReaders and in-car systems, as long as the device supports a modern browser. A responsive Web approach is suitable for development shops with existing Web development and design skills, and for mobile sites that deliver content.
Lightweight JavaScript frameworks form a foundation for highly tailored experiences. A responsive design approach can be difficult to implement when a mobile app moves from content consumption to transactional behavior. These apps require more forms, fields, and a look and feel that is closer to native experiences. Developers of these interactive “connected” apps tend to start with basic JavaScript frameworks, which they further tailor to deliver the customer experience they desire.
jQuery is widely used as a starting point, but other lightweight mobile Web frameworks choices include Zepto.js, Yahoo Mojito, and SnackJS. Many design agencies use this approach to deliver connected app projects to their clients because it gives them a common codebase across multiple platforms, while still providing a wide latitude in the look and feel of the customer experience they deliver.
#!
Full-featured JavaScript frameworks deliver a more prescriptive experience. In contrast to the do-it-yourself customer experience that lightweight frameworks provide, full-featured JavaScript frameworks deliver experiences more in line with the expectations of Java and .NET developers. Frameworks like Sencha Touch, Kendo UI, DXtreme and Ignite UI have extensive control libraries, including charts, grids, and tree-views that are touch-enabled and styled to match the look and feel of individual mobile platforms.
Full-featured Web frameworks are a good entry point to omni-channel design for IT development organizations that lack mobile design skills or don’t have experienced JavaScript developers. These frameworks are well suited for connected apps, especially those that include reporting functionality.
Hybrid containers give open Web developers access to platform capabilities. Even though each mobile platform has its own APIs for GPS, accelerometer, camera, compass and network, it’s possible to abstract these API calls behind a common service façade. Add a “chromeless” Web browser as a UI control, and you have the core elements of a hybrid container.
Hybrid containers give Web developers a way to write mobile apps using JavaScript, HTML and CSS while still creating applications for app stores. By far the most frequently used hybrid container is Apache Cordova, previously known as PhoneGap. Simple hybrids share a single codebase based on Web technologies, but they can be deployed into multiple application stores like regular, native apps. Complex hybrids are partially written in native code, while Web-connected elements are written in Web technologies and integrated into the native shell of the application in each platform. It’s not uncommon for a complex hybrid to have a ratio of 30% native code to 70% HTML, JavaScript and CSS.
Mobile middleware solutions combine rapid development tools with infrastructure services. Some vendors offer development tools to ease the burden of plumbing connections between mobile app and infrastructure services. Apps built with mobile middleware tools may be deployed to on-premise servers or vendor-hosted infrastructure. It’s also common for mobile middleware tools to support one or more of the technology approaches described above. Developers have the choice of compiling a native package for submission to an app store or deploying their creation as a Web application. Some middleware tools even cross-compile apps down to native opcodes that run on the ARM- or IA-based processors found in common mobile devices.
Jeffrey Hammond is a Vice President and Principal Analyst at Forrester Research. He will speak more about the subject at Forrester’s Application Development & Delivery Forum in October.