The Current State of Progressive Web Apps

Total Page:16

File Type:pdf, Size:1020Kb

The Current State of Progressive Web Apps Dirk-Jan Rensema The Current State of Progressive Web Apps A study on the performance, compatibility, consistency, security and privacy, and user and business impact of progressive web apps Informatics Bachelor Thesis Term: VT20 Supervisor: Dr. Bridget T. Kane PhD Examiner: Prof. John Sören Pettersson Abstract Since the late 80s the web has been evolving through new standards, added functionality, device performance and improved user experience. Websites evolved from static information to what is now known as web apps in which web technologies started to replace regular native programs and apps, as web apps slowly started offering similar functionality and performance, with the added benefit of being cross-platform. Over time, even more functionality and improvements were added to the web apps which, with the right combination, made them progressively become more like apps. In 2015, this combination got named by Google as Progressive Web Apps (PWA) which allow users to add web apps to their home-screens and use them like native apps. PWAs can support being used offline, give notifications, use the device’s hardware and more. In this thesis, the compatibility, performance, security, privacy, and user/business impact of fundamental elements of PWA are researched through literature review and experimental analysis. Eight browsers are tested on four operating systems for compatibility of the Service Worker, Web App Manifest, add to home-screen ability and offline usage functionality. For performance, tests are done on a website called Fleet Management System (FMS) which is a track and trace system for Inter-Data Europe b.v. who will keep using the implementation and knowledge created from this study. For security, privacy and user/business impact, a literature review is done on past studies, use-cases and discoveries made during the implementation and tests. The results show that most of PWA’s fundamental functionality is supported by most major browsers, especially on Android and on Chromium browsers, with the exception of iOS in which only Safari supports anything to do with PWA. Performance is found to be heavily dependent on implementation strategy but can make a significant difference if implemented correctly. Security is found to allow certain abuse and sensitive data leaks depending on implementation. Furthermore, user reengagement and revenue of major companies are found to increase significantly after implementing PWA. I Table of contents 1. Introduction ............................................................................................................................ 1 1.1. Background .................................................................................................................. 1 1.1.1. The Web - History ................................................................................................ 1 1.1.2. Web Apps ............................................................................................................. 2 1.1.3. The rise of the smart phones – Responsive design ............................................... 2 1.1.4. Websites disguised as Programs .......................................................................... 3 1.1.5. Progressive Web App – The natural progression ................................................. 3 1.1.6. Service workers .................................................................................................... 4 1.1.7. Caching ................................................................................................................. 4 1.1.8. Manifest ................................................................................................................ 5 1.2. Purpose ........................................................................................................................ 5 1.2.1. Target group ......................................................................................................... 6 1.3. Method ......................................................................................................................... 6 1.3.1. Platforms and Browsers ....................................................................................... 6 1.3.2. Research Question – Current state of PWA ......................................................... 6 1.4. Ethical consideration ................................................................................................... 8 1.5. COVID-19 ................................................................................................................... 8 2. Literature Overview ............................................................................................................... 9 2.1. Native, cross-platform frameworks and PWA ............................................................ 9 2.2. Security, Privacy and Abuse ........................................................................................ 9 2.3. Performance and compatibility .................................................................................. 10 2.4. Use Cases ................................................................................................................... 11 2.4.1. Trivago ............................................................................................................... 11 2.4.2. Uber .................................................................................................................... 11 2.4.3. Rooted Objects ................................................................................................... 11 2.4.4. George.com ........................................................................................................ 12 2.4.5. Best Western River North Hotel ........................................................................ 12 2.4.6. Pinterest .............................................................................................................. 12 2.5. PWA Life Cycle ........................................................................................................ 13 2.6. Developing PWA ....................................................................................................... 13 2.6.1. Service Worker ................................................................................................... 14 2.6.2. Web App Manifest ............................................................................................. 16 3. Results .................................................................................................................................. 17 3.1. Implementation .......................................................................................................... 17 3.1.1. Requirements ...................................................................................................... 17 II 3.1.2. Setup ................................................................................................................... 17 3.1.3. Manifest .............................................................................................................. 17 3.1.4. Service Worker ................................................................................................... 18 3.1.5. Cache-first implementation ................................................................................ 20 3.2. Compatibility ............................................................................................................. 20 3.2.1. Service Worker ................................................................................................... 20 3.2.2. Web App Manifest ............................................................................................. 21 3.2.3. Add to home screen capability ........................................................................... 22 3.2.4. Offline usage ...................................................................................................... 24 3.3. Performance ............................................................................................................... 25 3.4. Security and Privacy .................................................................................................. 25 3.4.1. Push-notification abuse ...................................................................................... 25 3.4.2. Cryptocurrency mining ...................................................................................... 26 3.4.3. Authenticated pages being cached after session expiration or logout ................ 26 3.5. User and Business impact .......................................................................................... 26 4. Analysis and Discussion ....................................................................................................... 27 4.1. Compatibility Analysis .............................................................................................. 27 4.2. Performance Analysis ................................................................................................ 27 4.3. Security and Privacy Analysis ................................................................................... 28 4.4. FMS Analysis ............................................................................................................ 28 4.5. User and Business impact .......................................................................................... 29 4.6. Summary ...................................................................................................................
Recommended publications
  • HTTP Cookie - Wikipedia, the Free Encyclopedia 14/05/2014
    HTTP cookie - Wikipedia, the free encyclopedia 14/05/2014 Create account Log in Article Talk Read Edit View history Search HTTP cookie From Wikipedia, the free encyclopedia Navigation A cookie, also known as an HTTP cookie, web cookie, or browser HTTP Main page cookie, is a small piece of data sent from a website and stored in a Persistence · Compression · HTTPS · Contents user's web browser while the user is browsing that website. Every time Request methods Featured content the user loads the website, the browser sends the cookie back to the OPTIONS · GET · HEAD · POST · PUT · Current events server to notify the website of the user's previous activity.[1] Cookies DELETE · TRACE · CONNECT · PATCH · Random article Donate to Wikipedia were designed to be a reliable mechanism for websites to remember Header fields Wikimedia Shop stateful information (such as items in a shopping cart) or to record the Cookie · ETag · Location · HTTP referer · DNT user's browsing activity (including clicking particular buttons, logging in, · X-Forwarded-For · Interaction or recording which pages were visited by the user as far back as months Status codes or years ago). 301 Moved Permanently · 302 Found · Help 303 See Other · 403 Forbidden · About Wikipedia Although cookies cannot carry viruses, and cannot install malware on 404 Not Found · [2] Community portal the host computer, tracking cookies and especially third-party v · t · e · Recent changes tracking cookies are commonly used as ways to compile long-term Contact page records of individuals' browsing histories—a potential privacy concern that prompted European[3] and U.S.
    [Show full text]
  • RELEASE NOTES UFED PHYSICAL ANALYZER, Version 5.0 | March 2016 UFED LOGICAL ANALYZER
    NOW SUPPORTING 19,203 DEVICE PROFILES +1,528 APP VERSIONS UFED TOUCH, UFED 4PC, RELEASE NOTES UFED PHYSICAL ANALYZER, Version 5.0 | March 2016 UFED LOGICAL ANALYZER COMMON/KNOWN HIGHLIGHTS System Images IMAGE FILTER ◼ Temporary root (ADB) solution for selected Android Focus on the relevant media files and devices running OS 4.3-5.1.1 – this capability enables file get to the evidence you need fast system and physical extraction methods and decoding from devices running OS 4.3-5.1.1 32-bit with ADB enabled. In addition, this capability enables extraction of apps data for logical extraction. This version EXTRACT DATA FROM BLOCKED APPS adds this capability for 110 devices and many more will First in the Industry – Access blocked application data with file be added in coming releases. system extraction ◼ Enhanced physical extraction while bypassing lock of 27 Samsung Android devices with APQ8084 chipset (Snapdragon 805), including Samsung Galaxy Note 4, Note Edge, and Note 4 Duos. This chipset was previously supported with UFED, but due to operating system EXCLUSIVE: UNIFY MULTIPLE EXTRACTIONS changes, this capability was temporarily unavailable. In the world of devices, operating system changes Merge multiple extractions in single unified report for more frequently, and thus, influence our support abilities. efficient investigations As our ongoing effort to continue to provide our customers with technological breakthroughs, Cellebrite Logical 10K items developed a new method to overcome this barrier. Physical 20K items 22K items ◼ File system and logical extraction and decoding support for iPhone SE Samsung Galaxy S7 and LG G5 devices. File System 15K items ◼ Physical extraction and decoding support for a new family of TomTom devices (including Go 1000 Point Trading, 4CQ01 Go 2505 Mm, 4CT50, 4CR52 Go Live 1015 and 4CS03 Go 2405).
    [Show full text]
  • Para Movernos Por Internet
    acenswhitepapers Distintos navegadores para movernos por Internet Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www.acens.com WHITEPAPER: DISTINTOS NAVEGADORES PARA MOVERNOS POR INTERNET Para que los usuarios puedan navegar por Internet y ver la información que más les interesa en cada momento, utilizamos los programas denominados navegadores, o también conocidos con la palabra inglesa browsers. Un navegador web es un programa que permite ver la información que contiene una página web. El navegador interpreta el código en el que está escrita la página web y lo presenta en pantalla permitiendo al usuario interactuar con su contenido y navegar hacia otros lugares de la red mediante enlaces o hipervínculos. La funcionalidad básica de un navegador web es permitir la visualización de documentos de texto, posiblemente con recursos multimedia incrustados. Los documentos pueden estar ubicados en la computadora en donde está el usuario, pero también pueden estar en cualquier otro dispositivo que esté conectado a la computadora del usuario o a través de Internet, y que tenga los recursos necesarios para la transmisión de los documentos. Cuando apareció el mundo de Internet, el número de navegadores que había disponibles era muy limitado, pero con el crecimiento del uso de la red, este número de navegadores ha ido en aumento, y ahora, todas las grandes empresas del sector informático suelen tener sus propios navegadores, como son el caso de Microsoft, Firefox, Apple.... Todos estos navegadores tienen sus ventajas, pero también sus desventajas, y es el usuario quien debe seleccionar qué navegador utilizar, según sus necesidades. Vamos a repasar los navegadores más utilizados en la actualidad.
    [Show full text]
  • What Is the Best Download Browser for Android How to Set a Default Browser on Android
    what is the best download browser for android How to Set a Default Browser on Android. This article was written by Nicole Levine, MFA. Nicole Levine is a Technology Writer and Editor for wikiHow. She has more than 20 years of experience creating technical documentation and leading support teams at major web hosting and software companies. Nicole also holds an MFA in Creative Writing from Portland State University and teaches composition, fiction-writing, and zine-making at various institutions. The wikiHow Tech Team also followed the article's instructions and verified that they work. This article has been viewed 4,187 times. This wikiHow teaches you how to change your Android’s default web browser to another app you’ve installed. Best Fastest Android Browser Available On Play Store 2021. Anyone know, what’s powering the Smartphone? Battery! No. Well, that’s the solution first involves your mind right. But the solution is the INTERNET. Yes without the internet what’s the purpose of using a smartphone. So to interact with the internet, we’d like some kinda tool, that features an interface. Here comes the BROWSER. Its main job is to attach us to the web . Fastest Android Browser. So why not we just look for Browser and install any random browser from play store and begin interacting with the internet. And why there are numerous Browsers to settle on from, confused right? Yeah, there are many Browsers with its unique features aside from just surfing the web. And now we’re only getting to mention Speed here because everyone loves Fast browsing experience.
    [Show full text]
  • Dolphin Browser Android 2020
    Dolphin browser android 2020 Continue There's no shortage of great web browsers for Android, and which one you use is pretty much down to personal preference. If we had to choose one however, we believe Chrome is the best choice for speed, support on all devices, and integrated features. Google ChromePlatform: Android Price: Free download of PageFeaturesTabbed browsing with familiar, mobile interface ChromeBrowsing gestures, including pull to update, double tap to zoom in, and swiping left/right on the toolbar, to switch or open new tabs Supports Chrome Sync, which allows you to access and sync open tabs, browsing history, search history and bookmarks on devicesInte those with voice search in Android for a high-profile search and resultsA customizable home screen with shortcuts for wide-view sitesSmart address bar, which auto-wraps search results and view history as you enter, as well as suggestions if you made a typo or error. Built-in support for Google Translate, which can automatically translate pages in other languages to your preferred language, an auto-filling form that can fill in email addresses and other information without having to enter it all manually in Incognito browsing mode, won't save the search or historyCustomizable page by scaling for availability purposes, and the ability to override page instructions, to disable zoomAbility to switch between mobile and desktop versions of sites from the menu bar (if the page supports change)Chrome Data Saver, which compresses and optimizes page requests to save bandwidth (by routing them through Google's servers in the first place)Customizable search (if for some reason you want to use the engine other than Google)One touch of sharing from the menu bar to any other app on your Android deviceOn-page search via Find on the Google Cloud PrintBuilt support page- in Don't track supportDYDe he ExcelsGoogle Chrome does not may be the most multi-function packed browser you can download but it's definitely the fastest and best integrated with Android.
    [Show full text]
  • Dolphin Browser Request Desktop Site
    Dolphin Browser Request Desktop Site Glossy Parry decays his antioxidants chorus oversea. Macrobiotic Ajai usually phenomenalizing some kinos or reek supinely. Felicific Ramsay sequesters very sagittally while Titos remains pyogenic and dumbstruck. You keep also half the slaughter area manually, by tapping on the screen. You can customize your cookie settings below. En WordPresscom Forums Themes Site by link doesn't work on. Fixed error message in Sync setup sequence. The user agent is this request header a grade of metadata sent west a browser that. Dolphin For Android Switch To stock Or Mobile Version Of. Fixed browser site is set a clean browser? 4 Ways to turning a Bookmark Shortcut in contemporary Home Screen on. What gear I say? Google Chorme for Android offers this otherwise known as Request that site. The desktop version of gps in every data, its advanced feature. It is dolphin browser desktop sites from passcards and loaded. Tap on account settings screen shot, dropbox support the best android browser desktop site design of ziff davis, gecko include uix. But, bush too weary a premium service. Store only hash of potato, not the property itself. Not constant is Dolphin Browser a great web browser it also needs a niche few. Download Dolphin Browser for PC with Windows XP. Dolphin browser Desktop Mode DroidForumsnet Android. For requesting the site, which you use is not, identity and telling dolphin sidebar function to manage distractions and instapaper sharing menu. Note If for desktop version of iCloudcom doesn't load up re-type wwwicloudcom in the address bar. This already horrible ergonomics.
    [Show full text]
  • 26 Sept 2019
    M A L A Y S I A Warta Kerajaan S E R I P A D U K A B A G I N D A DITERBITKAN DENGAN KUASA HIS MAJESTY’S GOVERNMENT GAZETTE PUBLISHED BY AUTHORITY Jil. 63 TAMBAHAN No. 20 26hb September 2019 TMA No. 36 No. TMA 138. AKTA CAP DAGANGAN 1976 (Akta 175) PENGIKLANAN PERMOHONAN UNTUK MENDAFTARKAN CAP DAGANGAN Menurut seksyen 27 Akta Cap Dagangan 1976, permohonan-permohonan untuk mendaftarkan cap dagangan yang berikut telah disetuju terima dan adalah dengan ini diiklankan. Jika sesuatu permohonan untuk mendaftarkan disetuju terima dengan tertakluk kepada apa-apa syarat, pindaan, ubahsuaian atau batasan, syarat, pindaan, ubahsuaian atau batasan tersebut hendaklah dinyatakan dalam iklan. Jika sesuatu permohonan untuk mendaftarkan di bawah perenggan 10(1)(e) Akta diiklankan sebelum penyetujuterimaan menurut subseksyen 27(2) Akta itu, perkataan-perkataan “Permohonan di bawah perenggan 10(1)(e) yang diiklankan sebelum penyetujuterimaan menurut subseksyen 27(2)” hendaklah dinyatakan dalam iklan itu. Jika keizinan bertulis kepada pendaftaran yang dicadangkan daripada tuanpunya berdaftar cap dagangan yang lain atau daripada pemohon yang lain telah diserahkan, perkataan-perkataan “Dengan Keizinan” hendaklah dinyatakan dalam iklan, menurut peraturan 33(3). WARTA KERAJAAN PERSEKUTUAN WARTA KERAJAAN PERSEKUTUAN 6398 [26hb Sept. 2019 26hb Sept. 2019] PB Notis bangkangan terhadap sesuatu permohonan untuk mendaftarkan suatu cap dagangan boleh diserahkan, melainkan jika dilanjutkan atas budi bicara Pendaftar, dalam tempoh dua bulan dari tarikh Warta ini, menggunakan Borang CD 7 berserta fi yang ditetapkan. TRADE MARKS ACT 1976 (Act 175) ADVERTISEMENT OF APPLICATION FOR REGISTRATION OF TRADE MARKS Pursuant to section 27 of the Trade Marks Act 1976, the following applications for registration of trade marks have been accepted and are hereby advertised.
    [Show full text]
  • Iphone/Ipod Touch and Ipad Apps for Education
    iPhone/iPod Touch and iPad Apps for Education The iPhone, iPod Touch and iPad are more than just toys for games, video and music. It has also become a device for business, learning and information. The range of applications that are available for these devices is growing each week. We want to specifically look at applications that have possibilities for the classroom. From communication to social networking to reference material, here is a sampling of the many applications available. Table of Contents Utilities and Connectivity ..................................................................................................... 2 Audio Recording and Editing ............................................................................................... 3 Mind Mapping .................................................................................................................... 4 All Things Google ................................................................................................................ 4 Communication and Social Networking ............................................................................... 5 Campus Apps ...................................................................................................................... 6 Reference and Information .................................................................................................. 7 What About the Built in Apps? ............................................................................................ 9 Class Resources ..................................................................................................................
    [Show full text]
  • Running GOODWOOD LIVE for Android Using Dolphin Browser
    01-Jun-2017 Running GOODWOOD LIVE for Android using Dolphin Browser 1. Download and install the Dolphin web browser from Google Play Store. 2. After Dolphin browser is installed, go to the device’s security settings (accessible from the main / home screen) and set permissions as “ON” - to allow installation of applications from unknown sources 3. After above process is over, start Dolphin browser. 4. Visit this link https://dolphin.com/lab/en/ on dolphin browser. Download and install Flash Player from the list. 5. Please note: there maybe instances where Dolphin Browser or Flash Player has not been installed. As such you may have to check from the Play Store file / pending installation list whether the file download installation has been interrupted or is pending and restart the same. 6. Important: successful installation of Dolphin browser and Flash player will display both the Icons as below on your android system screen. Note: Showing of both icons is very important, if both icons as below are not showing, then you may have to recheck device settings / play store installation list / File Manager Pending list or seek technical help to install both these systems as per the steps given above. Both the icons might not be place side-to-side as showing below. They can be in different screens of your android device. 7. If both the icons are showing properly then, Start Dolphin Browser and go to settings in Dolphin browser by clicking on the small Dolphin icon 8. Important: Inside settings - tick on the option “Dolphin Jetpack for Flash”.
    [Show full text]
  • Mobile Web Browsers in Android Deriving Reference Architecture
    International Journal of Computer Applications (0975 – 8887) Volume 180 – No.15, January 2018 Mobile Web Browsers in Android Deriving Reference Architecture Ashraf Abdulmunim Abdulmajeed College of Computers Sciences and Mathematics University of Mosul ABSTRACT information on the structure of these applications for the One of the most interesting changing in the today’s web users purposes of evolution and maintenance. It is essential feature is relying heavily on the mobile web browsers to do all their that allows any software developer to understand a software daily life activity. There are many numbers of web browsers system even if that particular system did not have reports and who have their mobile versions released and which work as documentations related to the specification architecture. It effectively and efficiently as the stationary web browsers represents a model template for the construction of new although they do have certain limitations. The reference systems as it could be used to identify sections and areas architecture provides a template solution for the architecture where reusability could be achieved at different stages and of a particular domain. In this paper, we present new levels of abstractions. Also, it could serve as a guidance to proposed reference architecture for web browser in the mobile support the process of understanding the legacy code and domain based on the analysis of three selective mobile web provides insight into evolutionary trends in mobile web browsers. The work includes (1) the extraction of the browser domain [1]. To the best of our knowledge, mobile conceptual and concrete architectures for three selected well- web browsers (including popular ones such as Chrome from known mobile web browsers namely: Firefox, Google Google and Firefox from Mozilla) are still lacking reference Chrome and Dolphin, (2) the analysis and discussion of the architectures for their mobile application.
    [Show full text]
  • A First Look at Mobile Ad-Blocking Apps
    A First Look at Mobile Ad-Blocking Apps Muhammad Ikram Mohamed Ali Kaafar Data61, CSIRO and UNSW Data61, CSIRO Sydney, Australia Sydney, Australia Email: [email protected] Email: [email protected] Abstract—Online advertisers, third party trackers and analyt- of Ad-blocking1 tools, packaged as mobile apps, in popular ics services are constantly tracking user activities as they access mobile app stores such as Google Play. web services through their web browsers or mobile apps. While, This paper presents the first characterisation study of An- web browser plugins disabling and blocking Ads (often associated tracking/analytics scripts), e.g. AdBlock Plus[3] have been well droid mobile Ad-Blocking apps with a focus on security studied and are relatively well understood, an emerging new and privacy offered by these apps. In particular, we analyse category of apps in the tracking mobile eco-system, referred as the Android permissions mobile Ad-Blockers request and we the mobile Ad-Blocking apps, received very little to no attention. perform static analysis of the code to investigate the presence With the recent significant increase of the number of mobile of malware and third party tracking libraries. Ad-Blockers and the exponential growth of mobile Ad-Blocking apps’ popularity, this paper aims to fill in the gap and study this We collect and extract from a corpus of more than 1.5 new category of players in the mobile ad/tracking eco-system. million Android apps, 97 mobile apps for which the name or This paper presents the first study of Android Ad-Blocking the description suggest they enable to either block ads or to apps (or Ad-Blockers), analysing 97 Ad-Blocking mobile apps block trackers.
    [Show full text]
  • Comparative Study on I/O Characteristics of Mobile Web Browsers
    Comparative Study on I/O Characteristics of Mobile Web Browsers Myungsik Kim, Seongjin Lee, and Youjip Won Department of Computer Science Engineering, Hanyang University, Seoul, Korea. fmskim77, insight, [email protected] Abstract—Web browsers are one of the most widely used is tightly coupled with SQLite database and it creates excessive application in smartphone. Since there are a number of different amount of I/Os. In order to reduce network I/Os for web layout engines for the web browsers, the IO efficiency of each data, Dolphin browser rigorously caches the web data which browsers are very different. In this paper, we identify areas of improvement by analyzing and comparing the IO characteristics in result generates significant amount of disk I/Os. Note that of four widely used web browsers, that is Chrome, Firefox, SQLite is a transaction based database and manages roll-back Opera, and Dolphin. Via analyzing I/O characteristics of the or roll-forward journal depending on SQLite journal modes, four mobile web browsers, Firefox browser is the most efficient which generates more I/Os than what user has updated, and I/O behavior and Dolphin Browser is the worst one. Firefox has moreover file system writes journal for the database journal highest buffered writes in 57%. Journal and metadata are 21% which is the smallest fraction of all I/O size. In contrast, Dolphin written by the SQLite [4]. has highest synchronous write ratio in 79%. Dolphin generates 502 of fsync() calls which is 6× more than Firefox. Through II. EXPERIMENT the comparative study, we identify areas for improvement by comparing I/O characteristics of the mobile web browsers.
    [Show full text]