Developing enterprise mobile applications that interact with IT systems and applications is more challenging than building mobile marketing apps and games for direct consumption. Enterprise mobile applications require integration with existing enterprise computing systems such as databases, legacy applications and Web services. Tweaking a Web client to fit the hardware constraints of a mobile device is not enough.
The smaller screen sizes, decreased storage space, reduced memory, lower computing power and unreliable network connections aren't the only things that make mobile application development different than developing traditional Web applications. The differences are largely driven by users experiencing variations in the conditions in which they interact with the app. While most enterprise applications are accessed from a desk in the office, mobile enterprise applications are more frequently accessed out in the field, where workers are focused on completing one particular task and moving on.
Meeting the demands of mobile application users requires enterprise application developers to reassess their development strategy when moving from traditional Web applications to mobile apps. They must make decisions concerning which platform(s) to develop for and whether to use a native, browser or hybrid approach, and there is a smorgasbord of development skills that must be subtly shifted as Web developers move to mobile.
The lifecycle of a mobile application moves much faster than that of a traditional Web application, and lifecycle management must be adjusted accordingly. The hardware constraints and network dependence of mobile devices make cloud resources much more beneficial for mobile applications. Application security and application testing are more challenging in mobile apps than in Web applications because the technology in mobile devices evolves quickly and developers must stay on top of the latest news and trends.
This mobile application development tutorial takes enterprise application developers through the basics of building a mobile application strategy, identifying and building on mobile application skills and gives developers a leg up on the news and trends.
As the technology driving mobile devices improves and mobile users' expectations change, the landscape of mobile application development changes as well. Application developers must stay informed of mobile application development trends to avoid getting left behind.
The need for mobile applications has already reached slow-to-change industries such as banking. U.K. bank Barclays invested in private cloud and Linux resources to help meet mobile banking application demand. Barclays is not the only company combining cloud resources and mobile application development. In fact, some cloud providers are now offering Backend-as-a-Service, which are cloud infrastructure services specifically designed to support mobile client apps.
Consumerization -- the trend of business devices and applications following the path outlined by consumer-focused technologies such as tablets, smartphones and mobile apps -- is a huge force in mobile application development today. The mobile workforce now expects the same convenience from business apps that their consumer apps have given them. Bring your own device (BYOD) policies have broadened the landscape for some organizations, while others have opted to keep enterprise mobile devices under the control (and the budget) of central IT.
More mobile application development news and trends
At a high level, mapping out a mobile application development strategy is similar to planning Web applications, and many of the major questions are the same. However, some new pitfalls come into play. Read on to learn how to avoid common mobile strategy mistakes in today's fast paced world of mobile apps.
When adding a new mobile application, enterprise architects should ask first if the organization should build its own or buy one from a third-party developer. Outsourcing a mobile application can have great cost savings for simple applications such as marketing or promotional games. It has the advantage of taking the mobile app project off the team's to-do list quickly and easily. On the other hand, this approach may not be a great fit for applications that need to access corporate data or other resources behind the firewall.
The next major question for a mobile application is what platform to deploy to, and the decision depends on several factors. An extensive BYOD policy may require developers to support several platforms, while organizations that provide approved mobile devices to their employees may be able to cut it down to a single platform. Apple's iOS, Google's Android and Microsoft's Windows Phone are all popular platforms for mobile application development.
In addition to deciding on a development platform, mobile application development teams must decide whether to use a native approach, a Web-based approach or a hybrid mobile approach that incorporates the two. Native applications often have performance advantages over Web-based options, while Web-based options are usually easier to update and maintain, especially across platforms. Most mobile developers eventually settle on a hybrid approach that gives them the right balance for their particular mobile application.
More information about enterprise mobile application development strategy
Enterprise mobile application development doesn't require a completely separate skillset from what Web application developers already know. However, there are some new skills for mobile developers, as well as a host of updated best practices, some new concepts to focus on, new aspects of application development team management and mobile ALM.
One of the most important differences between developing mobile apps and developing traditional Web applications is the focus on user experience. End users interact very differently with their phones and mobile devices than they do with laptops and PCs. A mobile application should be streamlined to handle a single task quickly and efficiently. When porting existing enterprise applications to a mobile platform, it is usually better to pare away extraneous features that don't serve the mobile apps immediate purpose.
Mobile application development also requires a bit more diversification than enterprise application developers may be used to. Mobile application development strategies frequently include two or more mobile platforms. It is important that each platform version of a mobile app is specifically customized to that particular platform. But completely separate teams for each version lead to costly and unnecessary duplications of effort. Teams may benefit from a model like the Y-shaped methodology that allows separate platform teams to share as much as possible.
In addition, many mobile application developers use some aspects of native client development and some of Web-based HTML 5 development. While it can be difficult to find individual developers with both native mobile skills and HTML 5 skills, bridging the hybrid development skills gap is very important.
More tips on developing mobile application skills
In many ways, mobile applications and cloud computing are made for each other. Mobile applications typically have a large load of server-side data access and computing needs that stem from a constantly changing number of users. The draw from mobile applications has the potential to skyrocket beyond developers' wildest estimates, then suddenly cut back to a trickle and possibly bounce back up as high or higher. The elasticity and on-demand nature of cloud resources makes the public cloud attractive to mobile developers.
Using a cloud infrastructure for mobile apps helps some companies put out mobile applications quickly without putting up too much in terms of upfront investment. Some cloud providers even run Backend-as-a-Service (BaaS) products that deliver a customizable backend for mobile application front ends.
More information on the intersection of cloud and mobile
Many application developers are finding application lifecycle management (ALM) is more complex in the world of enterprise mobile applications than it was over the wired Web. Mobile ALM is more difficult because developers have to keep up with faster development cycles. However, mobile ALM is not just a faster version of traditional ALM. Mobile devices present complications around important steps of the lifecycle such as requirements gathering and application testing. Some experts say that Agile development methods are well-suited to the particular challenges of mobile ALM.
More information on managing the mobile app lifecycle
Because mobile application development lifecycles are so short, it can be difficult to give every aspect of the mobile application the attention it needs. Mobile app developers have to deliver working applications quickly, and may overlook important flaws in the mobile application's security. Enterprise developers must never underestimate the need to secure corporate data in mobile applications. It's important for developers to be aware of the top mobile security threats and how to secure mobile apps against them. Organizations such as the Payment Card Industry Security Standards Council (PCI SSC) have begun releasing specific guidelines for secure mobile development.
More information on mobile app security
Many organizations either don't recognize the importance of mobile application testing or else lack the knowledge to effectively test these new applications. Testing mobile apps is different than testing traditional Web applications. Mobile devices present new challenges for mobile application testers. It's not just the mobile application's code that needs to be tested. The way the application performs under real-world conditions is what's really important. The QA team has to focus on specific device features, geographic location, availability of service and other factors specific to mobile devices. It often requires placing mobile application testers in the field.
More information for mobile app testers