Abhay Parasnis is the president and COO at Kony, Inc. Disclosure: Kony is a mobile platform provider.
For today’s business, the question is no longer “Do we need an app?” It’s “How many, what kind, for whom, on what devices and to what end?” And these questions lead to more questions of security, performance, reliability, efficiency, management, measurement, and budget.
To meet the needs of this complex reality, companies must choose a development technology that addresses both operational and strategic objectives. Currently, there are three options: build native apps specific to devices, use HTML5 to build web-based apps, or adopt a platform approach.
Regardless of how the app is built, a set of easy-to-consume cloud services to jumpstart the app is a must. These capabilities, sometimes referred to as components of an mBaaS (mobile backend as a service), generally encompass IAM (identity and access management) services, an API gateway set of services, storage and offline sync services, messaging services, and analytics services.
Enterprises need to consider the full lifecycle of an app, not just the development stage. Planning for long-term governance, security, and enterprise integration should also be factors in choosing a development methodology.
Go native: high performance, high maintenance
Native apps are coded with a specific programming language, like Objective-C for iOS or Java for Android. They’re built explicitly for particular devices, and as a result, native apps boast the best performance, fewest capability limitations, and discovery capabilities of an app marketplace.
Native apps are fast, reliable, rich, and powerful. These apps offer great user experience and functionality, but they’re also resource intensive. Developers’ dependence on device-specific languages often requires an army of teams, each dedicated to one device. This can end up being costly and takes time, both up front and as updates, new devices, and operating systems continue to flood the market. Often, limited human resources and budget limitations force companies to develop native apps for a single platform, leaving a good percentage of their prospects or customers without a mobile solution.
Good for: Supporting one or two devices, high performance requirements, complicated data processing, gaming and/or video based apps.
Not good for: Supporting many devices, content-driven requirements, low budget, inefficient maintenance structure, reliance on reusable components.
Go web: many channels, many drawbacks
Recently, many companies have turned to HTML5 to build web-based apps that can be deployed across multiple channels. These “apps” are essentially mobile websites, living on a device’s browser and tailored to a specific form factor. This approach appears to offer compelling advantages over native apps, including support for a variety of platforms, ease of maintenance, and savings of time and money.
But it has its drawbacks, too. Web-based apps are slower and less stable than their native counterparts, with fewer capabilities and often unimpressive UIs. Mobile web developers can be hard to find as well, although fewer bodies can support more channels than native’s one-team-one-device demand. In addition, HTML5 may not allow developers to take advantage of all of the specific features and functions of an individual device or operating system. Therefore, some compromises may need to be made for the user experience to be uniform across various mobile devices. There may also be limitations to the app when a device is offline or Wi-Fi is not available.
Good for: Supporting many devices, low to moderate budget, content-over-UI prioritization, easy maintenance.
Not good for: High performance requirements, complex or sophisticated UIs, inefficient maintenance structure, custom widget or device-specific feature requirements.
Go platform: big investment, big return
Enterprise-grade platforms provide easy-to-use client and server side development tools, support good client platform coverage, and can be used on-premise or in the cloud. They also offer built-in support for a mBaaS, which typically can be used regardless of the client side development methodology whether native or web. Platforms are friendly to business metrics as well, often speeding up time to market, lowering total cost of ownership and reducing development and maintenance costs. Over and above core app development, some platforms support other elements of the SDLC (software development life cycle), such as design, testing and management, or offer SLAs (service-level agreements) covering future device and OS upgrades or additions to the market.
The platform approach allows organizations to serve their full customer base — not just one segment with a specific device. This ensures greater adoption and future-proofs the application by having a single code base that needs to be updated when new features, functions, devices, or operating systems are rolled out.
Good for: Supporting many devices, creating multiple apps, relying on singular development language skill set, leveraging reusable components, lower TCO.
Not good for: Creating one or two apps for limited devices, low budgets.
Choosing the right approach: plan for the future
There is no one-size-fits-all solution to app development. As mentioned above, your multi-channel strategy should be based on your users, business models, resources, constraints, and most of all, your objectives.
That being said, progress is inevitable. The days of one or two devices covering a large majority of your users are likely behind us. Instead of fewer devices, we will see more volume and more complexity. Tomorrow’s apps will not need to run on phones, tablets, and desktops only. From wearable technologies like watches and glasses to increasingly smart appliances like televisions and refrigerators, consumers will continue to demand the information and capabilities they want, when and where they need it.
These new technologies will not only present new paradigms in design and user experience; they will come with new development challenges. Whether next year or ten years from now, the languages that are currently standard will evolve and grow. Businesses need to evolve and grow with them, keeping up with both consumer demand and the skill sets needed to satisfy it.
That’s why for most companies, I place my bet on the platform approach. A multi-channel platform provides the flexibility, reliability, security and scalability that allow businesses to keep pace with technology. With the right mobile app development platform, you’re not only investing in today; you’re creating the framework to drive innovation and leadership in the future.