The Best Way To Develop Mobile Apps? Don't Develop Mobile Apps!

The Best Way To Develop Mobile Apps? Don't Develop Mobile Apps!

Summary: The future of mobile app development is more than just adapting to smaller screens, different programming languages, and new operating systems. Here's what app developers need to understand if they want to build modern applications that deliver contextual customer experiences.

SHARE:
TOPICS: Apps
7

By Forrester analyst Jeffrey Hammond.

Nothing like starting off the day with a koan, right? How would one develop a mobile app without developing a mobile app? In my latest piece of research on the future of mobile application development I make the point that if developers over rotate focus to building mobile clients, we risk creating the same sorts of vertical stovepipes we're trying to work our way out of right now with all the web apps we built to run on Wintel in IE6. Rather, I think it's time we broadened our focus and shifted our efforts toward building modern applications. Mobile apps are an important component of a modern application architecture, but only part of the whole picture.

So what's a modern application? A modern application is:

  • Omni-channel. Modern applications are designed to work across tablets, smart-phones, phablets, heads-up displays, automobiles, and yes dekstops and laptops. They are designed to anticipate new client demands and new methods of interaction, including voice, touch, mouse and eye tracking. Modern apps may start with a consistent cross-channel expereince, but they quickly move beyond that to a cross-channel and a channel-optimized interface.
  • Elastic. Successful modern applications are designed to spin-up or spin down as needed. They take advantage of cloud-economics. They comprehensively use open source software because it adds licensing flexibility to scale-out architectural flexibility.
  • API-oriented. Modern applications compose and expose APIs everywhere. They build on open web techniques and use REST, XML and JSON to make it easy for all types of devices and clients to easily consume data. Any visible service or piece of data has a "headless" API counterpart, so that alternative views can be provided. In many cases, the APIs that a modern application exposes form the basis for a public, 3rd party developer community that enables mash-ups, plug-ins and innovation on a core set of data and services that drive a company's business
  • Responsive. Modern applications are built to deal with the realites of a public network topology that is increasingly out of IT's control. Application state management is pushed to the edge of the application. Asynchronous service design enables scale-out infrastructure to deliver information to clients in a stateless manner. Alternative system design patterns like Broker and Pipes and Filters become better alternatives than a Model-View-Controller approach. In memory databases are used to aggregate information from multiple service endpoints and cache it as close to the carrier networks as possible, in public cloud infrastructure, often alongside CDNs.
  • Organic. No, modern applications aren't singularities (yet). But modern applications tend to evolve more like a biological organism than a big bang product release. Individual pieces of the application change all the time. A new feature on the client is deployed here, and a new algorithm that makes a service more efficient is deployed there. Modern applications are complex machines - they span systems of operation, systems of record, and systems of engagement (see Figure 1). Changing out all the components in a single release would be incredibly risky. Dev-ops practices and continuous deployment are critical adaptations for organizations that want to build modern apps.
  • Contextual. One of the biggest opportunities developers have when they make the mobile shift is the increase in contextual data at their disposal. There's the immediate device context and data from sensors, but there's also the extended context of a modern application, which includes machine to machine (M2M) data, and complex events. There's also historical context, and the possibility of using all three to predict what a customer wants, before they know they want it. 

Building modern applications is not as simple as learning Objective C or buying a mobile middleware tool. And since modern applications are composed of  systems of systems, you shouldn't separate your mobile strategy from your cloud strategy, or your big data strategy.

Topic: Apps

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

7 comments
Log in or register to join the discussion
  • Way past time to broadened our focus....

    "I make the point that if developers over rotate focus to building mobile clients, we risk creating the same sorts of vertical stovepipes we're trying to work our way out of right now with all the web apps we built to run on Wintel in IE6. Rather, I think it's time we broadened our focus and shifted our efforts toward building modern applications."

    If you've still been developing to run on Wintel in IE6, you've already missed the bus.
    coastin
    • Wow

      Love my job, since I've been bringing in $5600… I sit at home, music playing while I work in front of my new iMac that I got now that I'm making it online(Click on menu Home)
      .....http://goo.gl/I1PS8

      Happy New Year!
      StephenPhillip
  • "Building modern applications is not as simple as learning Objective C"

    Indeed - it's as easy as learning a language that's actually used on more than one platform. Like Java, C# or C++.

    For that matter, if you've picked a language or a platform first - you're probably doing it wrong.
    TheWerewolf
    • Mobile application software development

      how to developed mobile app?

      mobile application development
      markline_mobiloitte
  • Theory is fine in the theoretical world

    Design pattern X vs. Design pattern Y, language B vs. language C...all that is nice, but the bottom line is money. Platforms that provide a monetization structure for developers will survive. Currently, the segregated platforms, particularly iOS and Android are the gold rush centers for the last couple of years. Sadly, it is getting harder to monetize those apps and for developers to have their apps discovered and consumed. I know too many independent devs hoping to strike it rich in the mobile gold rush, only to be disappointed.

    Once an 'App Store' grows too big, it is nearly impossible for the average consumer to find new and innovative apps. Additionally, people are growing bored of the app stores....what should be a website, magically turns into an app....

    So yeah, there is an app for that.....but there shouldn't be.
    gomigomijunk
  • Contextual is key

    I think the main point would have to be Contextual, making use of the device features. The obvious one being location aware systems and adapting to the environment the user is in. While you can use a standard browser to determine the location of a user the level of accuracy provided by a mobile device is much greater.
    15MinuteNews
  • mobile Apps

    The future of mobile app development is more than just adapting to smaller screens, different programming languages, and new operating systems
    360mobile