Skip to content

Commit 875ce4d

Browse files
committed
Update paper to reflect iOS 11.3 Beta 1 changes.
1 parent b3e72cf commit 875ce4d

7 files changed

+76
-36
lines changed

bibliography.bib

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
%% This BibTeX bibliography file was created using BibDesk.
22
%% http://bibdesk.sourceforge.net/
33
4-
%% Created for Thomas Steiner at 2018-01-18 04:19:25 +0100
4+
%% Created for Thomas Steiner at 2018-01-31 13:42:12 +0100
55
66
77
%% Saved with string encoding Unicode (UTF-8)
@@ -367,3 +367,12 @@ @misc{chrome2018useragent
367367
Title = {User Agent Strings},
368368
Type = {Blog},
369369
Year = {2018}}
370+
371+
@misc{mondello2018safari,
372+
Author = {{Ricky Mondello}},
373+
Howpublished = {\url{https://twitter.com/rmondello/status/956256845311590400}},
374+
Journal = {Twitter},
375+
Number = {Jan 2018},
376+
Title = {@rmondello on Twitter: ``iOS 11.3 and macOS 10.13.4 include Service Workers---a~powerful specification that allows background scripts to power offline web applications. i\textsc{os}~11.3 also consults Web App Manifest when adding web apps to the home screen''},
377+
Type = {Blog},
378+
Year = {2018}}

index-sheet.pdf

-484 KB
Binary file not shown.

ios-results.pdf

69.4 KB
Binary file not shown.
450 KB
Loading
473 KB
Loading

whats-in-a-webview.pdf

106 KB
Binary file not shown.

whats-in-a-webview.tex

Lines changed: 66 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@
134134
and---together with Web App Manifests---allow users to \emph{install \textsc{pwa}s}
135135
to their devices' home screens.
136136
Service Workers being a Web standard, support has landed in several
137-
stand-alone Web browsers---among them (but not limited to)
137+
stand-alone Android Web browsers---among them (but not limited to)
138138
Chrome and its open-source foundation Chromium, Firefox, Edge, Opera,
139-
\textsc{uc}~Browser, Samsung Internet, as well as preview versions of Safari.
139+
\textsc{uc}~Browser, Samsung Internet, and---eagerly awaited---i\textsc{os} Safari.
140140
In this paper, we examine the \textsc{pwa} feature support situation in \emph{Web Views},
141141
that is,\ \emph{in-app Web experiences} that are explicitly \emph{not} stand-alone browsers.
142142
Such in-app browsers can commonly be encountered in chat applications like WeChat or WhatsApp,
@@ -204,8 +204,9 @@ \subsection{History of Progressive Web Apps}
204204
and---together with Web App Manifests~\cite{caceres2017manifest}---allowed
205205
users to actually \emph{install \textsc{pwa}s} to their devices' home screens
206206
with proper operating system integration~\cite{kinlan2017a2hs}.
207-
Other browsers like Mozilla Firefox, Microsoft Edge, Opera, \textsc{uc}~Browser, Samsung Internet,
208-
Apple Safari Technology Preview, and several browsers more followed in implementing Service Workers.
207+
Other Android browsers like Mozilla Firefox, Microsoft Edge, Opera, \textsc{uc}~Browser, Samsung Internet,
208+
and---eagerly awaited---Apple Safari on i\textsc{os},
209+
as well as several browsers more followed in implementing Service Workers.
209210
Now, even multinational companies like Twitter
210211
or trivago bet on \textsc{pwa}~\cite{gallagher2017twitterlite,twg2017trivago},
211212
as well as giant national players like Tencent News or Sina Weibo in China~\cite{zhu2017pwa}.
@@ -280,17 +281,13 @@ \section{Background on Web Views}
280281
each having their own benefits and drawbacks.
281282
In the following, we describe the options on the two popular
282283
mobile operating system Android and i\textsc{os}.
283-
At time of writing (January 2018), Safari on i\textsc{os}
284-
does not support Service Workers and thus \textsc{pwa}s yet,
285-
albeit work on implementing them has started, and
286-
first versions of Safari Technology Preview on Apple's
287-
desktop operating system mac{os} have enabled
288-
Service Workers by default~\cite{davis2017safari}.
289-
In the spirit of Progressive Enhancement~\cite{champeon2003progressiveenhancement},
290-
where new features will just be used when they are available,
291-
and in the hope of Service Workers landing on the i\textsc{os} platform
292-
in the not too distant future,
293-
we nevertheless describe the Web View situation on i\textsc{os} as well.
284+
While Android had enjoyed Service Worker support for as long as 2014~\cite{cooney2014chromium},
285+
at time of writing (February 2018), Safari on i\textsc{os}
286+
for the first time supported Service Workers
287+
in Beta versions of i\textsc{os}~11.3~\cite{mondello2018safari}.
288+
The implementation is still incomplete and several bugs exist, but in the spirit of
289+
Progressive Enhancement~\cite{champeon2003progressiveenhancement}
290+
the situation is expected to improve over time.
294291

295292
\subsection{Web Views on Android}
296293

@@ -414,9 +411,6 @@ \subsection{Parallelisms on the Two Operating Systems}
414411
share cookies, permissions, \emph{etc.}
415412
with the particular system's main browser.
416413
Solely Android's Trusted Web Activity so far has no i\textsc{os} equivalent yet.
417-
If (or rather as soon as) Apple catches up with implementing Service Workers,
418-
our findings will be applicable on i\textsc{os} as well,
419-
according to the parallelisms described in this section.
420414

421415
\section{Detecting \textsc{pwa} Features}
422416
\label{sec:pwa-feature-detector}
@@ -589,7 +583,8 @@ \subsection{Feature-Detecting Various \textsc{pwa} Features}
589583
'Offline Capabilities': 'caches' in win,
590584
'Push Notifications': 'pushManager' in reg,
591585
'Add to Home Screen': doc.createElement('link')
592-
.relList.supports('manifest'),
586+
.relList.supports('manifest') &&
587+
'onbeforeinstallprompt' in win,
593588
'Background Sync': 'sync' in reg,
594589
'Navigation Preload': 'navigationPreload' in reg,
595590
'Silent Push': 'budget' in nav &&
@@ -634,28 +629,52 @@ \subsection{Implementation Details}
634629
which, rather than using a~\texttt{WebView},
635630
displays Web content in a~\texttt{CustomTabsIntent}.
636631
Despite the exact same underlying browser engine (Chrome/65.0.3310.3),
637-
the more powerful \texttt{CustomTabsIntent}-based in-app browser
632+
the \texttt{CustomTabsIntent}-based in-app browser
638633
clearly wins the \textsc{pwa} feature competition.
639-
For non-domain experts we note that the \texttt{WebView}
634+
For non-domain experts we note that on Android the \texttt{WebView}
640635
can be easily spotted by looking for the string
641636
``wv'' in the displayed user agent~\cite{chrome2018useragent}.
637+
The corresponding i\textsc{os} screenshots, likewise
638+
based on the same underlying browser engine (Safari~11.1),
639+
can be seen in \autoref{fig:facebook-ios-safari11_1} with a~\texttt{WKWebView} displayed in Facebook
640+
and in \autoref{fig:twitter-ios-safari11_1} with an \texttt{SFSafariViewController}
641+
displayed in Twitter.
642642
643643
\begin{figure}[t]
644644
\centering
645-
\includegraphics[width=.5\columnwidth,frame]{pwa-feature-detector-wechat-android-chrome65}
646-
\caption[\textsc{pwa} Feature Detector running in WeChat.]{
647-
\textsc{pwa} Feature Detector running on Android~8.1.99 in the app WeChat
648-
in a~\texttt{WebView} based on Chrome~65.}
649-
\label{fig:wechat-android-chrome65}
645+
\begin{subfigure}[t]{0.475\columnwidth}
646+
\includegraphics[width=1\columnwidth,frame]{pwa-feature-detector-wechat-android-chrome65}
647+
\caption[\textsc{pwa} Feature Detector running in WeChat.]{
648+
In WeChat in a~Chrome~65 based \texttt{WebView}.}
649+
\label{fig:wechat-android-chrome65}
650+
\end{subfigure}
651+
\quad
652+
\begin{subfigure}[t]{0.475\columnwidth}
653+
\includegraphics[width=1\columnwidth,frame]{pwa-feature-detector-twitter-android-chrome65}
654+
\caption[\textsc{pwa} Feature Detector running in Twitter.]{
655+
In Twitter in a~Chrome~65 based \texttt{CustomTabsIntent}.}
656+
\label{fig:twitter-android-chrome65}
657+
\end{subfigure}
658+
\caption{\textsc{pwa} Feature Detector running on Android~8.1.99.}
650659
\end{figure}
651660
661+
652662
\begin{figure}[t]
653663
\centering
654-
\includegraphics[width=.5\columnwidth,frame]{pwa-feature-detector-twitter-android-chrome65}
655-
\caption[\textsc{pwa} Feature Detector running in Twitter.]{
656-
\textsc{pwa} Feature Detector running on Android~8.1.99 in the app Twitter
657-
in a~\texttt{CustomTabsIntent} based on Chrome~65.}
658-
\label{fig:twitter-android-chrome65}
664+
\begin{subfigure}[t]{0.475\columnwidth}
665+
\includegraphics[width=1\columnwidth,frame]{pwa-feature-detector-facebook-ios-safari11_1}
666+
\caption[\textsc{pwa} Feature Detector running in Facebook.]{
667+
In Facebook in a~Safari~11.1 based \texttt{WKWebView}.}
668+
\label{fig:facebook-ios-safari11_1}
669+
\end{subfigure}
670+
\quad
671+
\begin{subfigure}[t]{0.475\columnwidth}
672+
\includegraphics[width=1\columnwidth,frame]{pwa-feature-detector-twitter-ios-safari11_1}
673+
\caption[\textsc{pwa} Feature Detector running in Twitter.]{
674+
In Twitter in a~Safari~11.1 based \texttt{SFSafariViewController}.}
675+
\label{fig:twitter-ios-safari11_1}
676+
\end{subfigure}
677+
\caption{\textsc{pwa} Feature Detector running on i\textsc{os}~11.3 Beta~1.}
659678
\end{figure}
660679
661680
\section{Results and Discussion}
@@ -710,6 +729,17 @@ \section{Results and Discussion}
710729
\end{center}
711730
\end{figure}
712731
732+
\begin{figure}[t]
733+
\renewcommand{\figurename}{Table}
734+
\begin{center}
735+
\centerline{\includegraphics[width=.65\columnwidth,trim=4.3cm 16.4cm 4.3cm 1.5cm, clip]{ios-results.pdf}}
736+
% https://docs.google.com/spreadsheets/d/18xaJeIrfaA-8wNucK7IDQMfr5LHjsBcey4lHF3Pkd1o/edit?usp=sharing
737+
\caption{\textsc{pwa} feature support situation on i\textsc{os} for both \texttt{WKWebView} (Facebook)
738+
and \texttt{CustomTabsIntent} (Twitter).}
739+
\label{table:safari}
740+
\end{center}
741+
\end{figure}
742+
713743
\subsection{Discussion of the \texttt{WebView} Results}
714744
715745
Table~\ref{table:webview} unsurprisingly shows that the more mature
@@ -856,10 +886,11 @@ \section*{Acknowledgements}
856886
857887
\begin{figure*}[b]
858888
\begin{center}
859-
\centerline{\includegraphics[trim=.5cm 13.75cm .5cm .5cm, clip]{index-sheet.pdf}}
860-
\caption{Index sheet with all tested device screenshots showing both \texttt{WebView}s
861-
and \texttt{CustomTabsIntent}s running in different applications.
862-
High-resolution screenshots available at \url{https://photos.app.goo.gl/FdRsGOgtgNfvRIKB2}.}
889+
\centerline{\includegraphics[width=\paperwidth, trim=0cm 2.5cm 0cm 0cm, clip]{index-sheet.pdf}}
890+
\caption{Index sheet with all tested device screenshots showing Android \texttt{WebView}s and
891+
\texttt{CustomTabsIntent}s, as well as i\textsc{os} \texttt{WKWebView} and \texttt{SFSafariViewController},
892+
running in different applications.
893+
Higher resolution screenshots are available at \url{https://photos.app.goo.gl/Kh3DyhpL6Q58G7tn1}.}
863894
\label{fig:indexsheet}
864895
\end{center}
865896
\end{figure*}

0 commit comments

Comments
 (0)