The progress of PWA (Progressive Web Applications) mobile apps

The first part of a two blog series on Progressive Web Application introduces the easily adaptable and popular PWA and a very distinct history behind it. It also lines out the future and advantages of the web-based application. The second blog post will line out the adoption of PWAs among some of the recognized businesses and the benefits they have incurred.

The two blog posts will help digital business owners make up their mind on utilizing PWA to either make a foray into the mobile screens of their user base or complement their native app offering to reach out to a wider audience.

The first time the idea of Progressive Web Applications (PWA) was coined way back in 2007. Albeit, it was not christened PWA then. At the launch of the iPhone, the legendary Steve Jobs shared his idea of web apps developed in HTML5 using AJAX architecture that would be fully integrated into the device through the safari browser engine.

In 2015 Frances Berriman and Alex Russell, senior engineers with Google, observed a new class of websites providing a better user experience than traditional web applications. These applications rated high on user experience were independent of the browser tab and lived on their own while maintaining their ubiquity and linkability. Berriman and Russell named this new breed of applications as Progressive Web Applications.

Eric Bidelman, Senior Staff Developers Programs Engineer, introduced PWA at the Google I/O event in 2016.

The potential of PWAs can be gauged in the fact that two of the world’s biggest tech rivals Microsoft and Google, joined hands to make room for the technology.

Since becoming a widely recognized term in technology, PWA’s have made rapid strides towards widespread acceptance. Apple Inc., whose founder had first proposed web-based mobile applications, is actively pursuing it but calling it by a different name. They use the term: “HTML5 Apps” and “Home Screen web apps” instead.

Inside PWAs

A PWA is built and lives on the web but has capabilities similar to the native apps. Be it the look and feel or the way the app behaves it is quite similar to native apps.

A progressive web application leverages the website, adds some extra features that enhance the web properties to drive capabilities on mobile. In technical parlance, that would mean serving your web site over HTTPS and having a service worker and manifest.json file to turn your website into a PWA.

A service worker or a JavaScript enables the website to function in the absence of an internet connection. The service worker acts like a proxy server and acts as a bridge between the browser and the network and helps intercept network requests and serve custom responses.

PWA – How it works

PWA provides easy optimization of your website to enable mobile experience for your users irrespective of the platform. Simply put it renders a seamless experience across iOS and Android platforms and does not require uploading on any app stores. This also eliminates the need for users to install updates on their phones. Every time there is a new version of the app, it just needs to be deployed on the webserver and is automatically available to the users when they visit next.

PWAs are in demand and for legit reasons

Talk of PWAs and the discussion invariably steers towards a comparison between a native application and PWA capabilities. Listed below are a few factors enticing businesses to take a plunge into the mobile-first world with a PWA. It also is a viable option for businesses looking to complement their existing native application to expand their reach across devices and platforms.

  • Truly progressive: PWAs work for every user irrespective of the browser or the platform because the base is built with progressive enhancements.
  • Highly responsive: Progressive web applications are highly responsive and seamlessly adapt to the various screen sizes be it desktops, different mobile devices, and tablets.
  • Closely replicating native apps: The user experience and interface match up to that of native applications.
  • Easily and regularly updated: The process of running updates is convenient thanks to the data update process offered by service workers.
  • Secure: As PWAs run through HTTPS, it ensures safety in content delivery and content interaction.
  • Searchable: Indexed by search engines PWAs show up in Google search results.
  • Installable: Installing PWA applications is an easy affair as it does not require users to download it from the app store or play store, consuming little space.
  • Linkable: A clickable link is all it takes to install or share the application among users.
  • Offline functionality: PWAs work without the internet connection leveraging data cached from the last instance the user interacted with the application

We are confident that with the evolution of PWAs there will be many more benefits that may come to the fore. Are there benefits or interesting facts about PWA that you have come across and would like to share with us? Drop it here in the comments section.

Read the next blog on the adoption of PWAs among some of the recognized businesses and the benefits they have incurred.

Five of the Most Popular Databases for Mobile Apps

Mobile OS is growing bigger and bigger and recently Android mobile OS surpassed Windows OS as the most used Operating System in the world. As mobile OS is growing larger and hardware as powerful as any normal computing device, data computation from mobiles is also increasing.

The database is the most common way of storing and managing data. For quite some time now,  databases are handled on server-side or cloud and mobile devices only communicate with them through the network. However, to make applications more responsive and less dependent on network connectivity, the trend of offline usage or less dependency on the network is gaining popularity. Nowadays, applications keep DB locally or make a copy of DB over the cloud onto local devices and sync with it once in a day or whenever there is network connectivity. This will help in faster and responsive applications that are functional even when there is no or limited internet connectivity.

Databases for mobiles need to be:

  • Lightweight as storage is limited on mobile devices.
  • No server requirement.
  • In the form of the library with no or minimal dependency (embeddable) so that it can be used when needed
  • Fast and secure.
  • Easy to handle through code, and the option to make it private or shared with other applications.
  • Low memory and power consumption.

There are lots of mobile databases coming into the market but not all of them satisfy all requirements mentioned in this article. Let us discuss a few of the most popular databases for mobile apps and try to highlight their characteristics, pros, and cons.

Progressive web applications are helping businesses increase their user base. Read how 

SQLite

SQLite is relational DB, a lighter version of SQL designed for mobile. It is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. It is an embedded SQL Database engine without any separate server process, unlike any other SQL database.

SQLite supports all the relational database features and is an open-source compact library which is by default, present in two main Mobile OS i.e. Android and iOS, and supported by blackberry and windows phone.

SQLite can be stored both on disk as well as in-memory and each database file is a single disk file and can be used cross-platform. It is very fast and needs very little memory to operate.

Realm DB

The realm is a relational database management system which is like conventional databases, data can be queried and filtered, interconnected, and persisted but also have objects which are life and fully reactive.

Realm DB is developed by Realm and specially designed to run on mobile devices. Like SQLite, Realm is also serverless and cross-platform. It can be stored both on disk as well as in memory.

Realm has so many advantages over native SQLite, like:

  • Objects in Realm are native Objects, You don’t have to copy objects out of the database, modify them, and save them back—you’re always working with the “live,” real object.
  • Objects always stay in sync.
  • The realm is much faster than SQLite. Realm can query up to 57 records/sec, whereas SQLite can do only up to 20 records/sec.
  • Data can be secured with transparent encryption and decryption.
  • Realm has a reactive architecture, which means it can be directly connected to UI, if data changes it will automatically refresh and appear on the screen.
  • It automatically syncs to Realm Object server (if present) when there is network connectivity present.
  • One application can have multiple Realms, both local and remote
  • Can set different permissions for different users.
  • Available for Android, iOS, JavaScript, etc.

ORMLite

ORMLite is a lighter version of Object Relational Mapping which provides some simple functionality for persisting Java objects to SQL databases. It is ORM wrapper over any mobile SQL related DB.

ORMLite is used to simplify complicated SQL operations by providing a flexible query builder. It also provides powerful abstract Database Access Object (DAO) classes.

ORMLite is helpful in big size applications with complex queries because it handles “compiled” SQL statements for repetitive query tasks. It also has support for configuring tables and fields without annotations and supports native calls to Android SQLite database APIs.

But ORMLite does not fulfill all the requirements like it is bulky as compared to SQLite or Realm, slower than SQLite and Realm but faster than most of the other ORMs present in the market.

All in all, ORMLite is a good SQLite replacement if the application is big and complex in terms of DB usage.

Berkeley DB

Berkeley DB is an open-source high performance embedded DB that allows us to handle data in different ways. It was developed by Sleepycat Software but acquired by Oracle in 2006. It provides API for so many languages including Android and iOS.

Berkeley DB can handle data in many ways. It can be in a relational way like SQLite (by replacing SQLite with its own library), or it can be in Key/Value pair data as byte arrays and supports multiple data items for a single key. It also supports java objects as data or it can also be XML documents. Different libraries provide different types of API to handle multiple formats but all packaged Berkeley DB.

Berkeley can work as relational DB as well as NoSQL DB (Depends on which library you are using).

The good thing about Berkeley DB is that the API provided by it are compatible with SQLite. So one can use Berkeley DB without rewriting the whole code again. The combination of Berkeley and SQLite is considered faster and perform better in concurrent and single writing multiple reading operations.

Berkeley is relatively faster than SQLite but because of so many different features, it is bulkier than any other discussed DBs. So if the size of the application is a criterion try to use some other DB, unless you want a feature exclusively provided by Berkeley DB.

Couchbase Lite

Couchbase Lite is a powerful NoSQL embedded JSON database. It is a highly scalable DB with enterprise-level security.

Data in Couchbase Lite is stored as JSON documents. Each document can have one or more attachments which are stored and loaded separately from documents.

Couchbase Mobile is the solution provided by Couchbase Lite for mobile applications. It is comprised of three different components: Couchbase Lite, an embedded NoSQL database, Sync Gateway. Couchbase is an offline-first DB and sync with Cloud is needed or when the network is available.  Couchbase Lite runs locally on the device and persists data as JSON and binary format. All crud operations performed on local DB. The developer does not need to write sync code (if needed) to sync local DB with the cloud, it is handled by Sync Gateway. Couchbase Lite comes with a conflict resolution mechanism that is quite similar to the one used by Git.

Another advantage of Couchbase Lite is that it provided native APIs for Android and iOS and plugins for Xamarin and PhoneGap.

So if there is a requirement of any NoSQL DB in mobile OS, Couchbase lite is the best bet as it is very fast, reliable, and moderate in size.

In the end, it totally depends on the requirements and feasibility for the application to choose which DB will fit in. But every mobile DB should fill most of the above-mentioned requirements if not all.

Our end to end mobile app development services can help ideate, build deploy, update, and maintain your mobile applications without a worry.