Welcome!

Microservices Expo Authors: Pat Romanski, Gopala Krishna Behara, Sridhar Chalasani, Tirumala Khandrika, Elizabeth White

Related Topics: Mobile IoT, Java IoT, Microservices Expo, Wearables

Mobile IoT: Article

Mobile Web Apps vs. Native Apps

Contrary to popular belief, the discussion doesn't need to produce a winner and a loser

Web Apps vs. Native Apps is a topic that still excites readers to this day, as if it were anticipated that one side will win and the other will lose.

Contrary to popular belief, the discussion doesn't need to produce a winner and a loser. Instead of classifying apps as web apps or as native apps, why not just call them mobile apps? I believe "mobile app" is a great name. Under this name there are simply two variations of mobile app that can be created: web app and native app. A web app is an HTML5, JavaScript, CSS app running in a mobile browser. Now, you might wonder, why not just call this a mobile site? This is a fair point, and I believe the term "mobile site" can also be used. However, it is common to distinguish a mobile web app by one important extra feature, that it is invoking some remote services, usually a REST API (instead of just loading a static mobile web site). The second variation is the native app, one that is downloaded and installed on the mobile device.

It's important to note that a third variation of mobile app can also be created: a hybrid app. A hybrid mobile app takes an HTML mobile app and inserts it inside a native wrapper. While the inside of this app is made with HTML, JavaScript and CSS, the outside is a native shell. This kind of app is also downloaded and installed on a device. Although there are differences in how hybrid apps are implemented compared to native apps, most consumers can't tell native apps apart from hybrid apps. Hybrid apps are distributed in the app stores, just like native apps.

There are a number of important factors to consider when deciding whether to go with a mobile web app or a mobile native app.

Skills
Building native apps requires strong knowledge of Objective C (iOS), Java (Android), and C# (Windows Phone). Finding developers with the necessary experience is still not easy. On the other hand, we have been building web applications for the past 20 years. Even though building a mobile web app requires more specialized skills, the foundation is still HTML, JavaScript, and CSS. Finding strong developers should be easier in this case.

Platforms
With native development, the number of apps you need to build directly relates to the number of platforms you need to support. Today, most companies must support at least iOS, Android, and probably Windows 8/Phone, followed distantly by BlackBerry. A mobile web app can be opened on any device with a browser, phone, tablet, or anything in between. Even though the notion of "build once, run anywhere" sounds very nice, differences in mobile browsers and their support for the latest HTML5 features will require extensive testing and possibly coming up with workarounds(unless, of course, it's OK for your app not to support all the browsers.)

Features and Performance
Without a doubt, native apps have full access to the underlying mobile platform. Native apps are usually very fast and polished, making them great for high performance apps or games. Mobile web apps, on the other hand, have limited (but growing) access to device features and APIs. With JavaScript engines in the browsers getting faster, mobile web apps perform well but still fall behind native app performance.

The extra jolt of performance that dominates natively developed apps is not always necessary. Many business applications do not necessarily require such high levels of performance. In these cases, web and hybrid apps are more cost-effective, efficient, and dynamic due to API adaptability. On the other hand, games that require more advanced performance features should utilize native development.

Publishing to App Stores and Updating Apps
Regardless of the platform, native and hybrid apps are published to an app store. Apple has the strictest rules for accepting apps into its store. It requires the app to run fast and follow some basic UI principles. It could take anywhere from one to two weeks for Apple to either accept or reject an app.

Apple's stringency in App Store acceptance is contended by Google's somewhat more lenient rules, which don't necessarily adhere to the same rigid standards, and therefore accept apps more readily into its Google Play marketplace. Windows, on the other hand, takes a more "middle-of-the-road" approach when it comes to app acceptance. For whichever platform, any updates to native apps would fall under the same rules and regulations.

A mobile web app doesn't need to be published to any store, because it is simply accessed by its URL in the browser or an app icon/bookmark on the phone home screen. App updates are very simple as well. Just push any changes, and the next time the app is opened, the user will get all the new features.

Summary
A native mobile app can produce the best user experience - fast and fluid, can give you the best access to device features, and can be discovered in the app stores. On the other hand, building a native app on every major platform requires more socialized skills, a longer time-to-market, and a bigger budget to build and maintain. For this reason many apps get built as web apps or hybrid apps.

A mobile web app can produce a good user experience that is consistent across a broader range of platforms. As browser and JavaScript engines get faster with every release, the user experience gets better and better and the apps run faster and faster. Once created, this kind of app can be run on any platform, device, phone, or tablet with a browser. On the other hand, browsers on different platforms do not uniformly support all the latest HTML features and API, which can make developing and testing challenging.

A hybrid app offers many of the advantages of both approaches: discoverability in the app stores, access to the most common device APIs, and broad device coverage while not requiring the specialized skills, bigger budgets and longer time-to-market that are more typical of fully native apps.

More Stories By Max Katz

Max Katz heads Developer Relations for Appery.io, a cloud-based mobile app platform. He loves trying out new and cool REST APIs in mobile apps. Max is the author of two books “Practical RichFaces” (Apress 2008, 2011), DZone MVB (Most Valuable Blogger), and is a frequent speaker at developer conferences. You can find out what Max is up to on his blog: http://maxkatz.org and Twitter: @maxkatz.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Microservices Articles
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
As Enterprise business moves from Monoliths to Microservices, adoption and successful implementations of Microservices become more evident. The goal of Microservices is to improve software delivery speed and increase system safety as scale increases. Documenting hurdles and problems for the use of Microservices will help consultants, architects and specialists to avoid repeating the same mistakes and learn how and when to use (or not use) Microservices at the enterprise level. The circumstance w...
More and more companies are looking to microservices as an architectural pattern for breaking apart applications into more manageable pieces so that agile teams can deliver new features quicker and more effectively. What this pattern has done more than anything to date is spark organizational transformations, setting the foundation for future application development. In practice, however, there are a number of considerations to make that go beyond simply “build, ship, and run,” which changes how...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.
Adding public cloud resources to an existing application can be a daunting process. The tools that you currently use to manage the software and hardware outside the cloud aren’t always the best tools to efficiently grow into the cloud. All of the major configuration management tools have cloud orchestration plugins that can be leveraged, but there are also cloud-native tools that can dramatically improve the efficiency of managing your application lifecycle. In his session at 18th Cloud Expo, ...
Traditional IT, great for stable systems of record, is struggling to cope with newer, agile systems of engagement requirements coming straight from the business. In his session at 18th Cloud Expo, William Morrish, General Manager of Product Sales at Interoute, will outline ways of exploiting new architectures to enable both systems and building them to support your existing platforms, with an eye for the future. Technologies such as Docker and the hyper-convergence of computing, networking and...
"We do one of the best file systems in the world. We learned how to deal with Big Data many years ago and we implemented this knowledge into our software," explained Jakub Ratajczak, Business Development Manager at MooseFS, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Containers, microservices and DevOps are all the rage lately. You can read about how great they are and how they’ll change your life and the industry everywhere. So naturally when we started a new company and were deciding how to architect our app, we went with microservices, containers and DevOps. About now you’re expecting a story of how everything went so smoothly, we’re now pushing out code ten times a day, but the reality is quite different.
Gone are the days when application development was the daunting task of the highly skilled developers backed with strong IT skills, low code application development has democratized app development and empowered a new generation of citizen developers. There was a time when app development was in the domain of people with complex coding and technical skills. We called these people by various names like programmers, coders, techies, and they usually worked in a world oblivious of the everyday pri...