Opublikowano 4 min. czytania

Trusted Web Activity (TWA) to sposób wyświetlania aplikacji typu Progressive Web App (PWA) za pomocą Chrome Custom Tabs. Technologia ta pozwala w bardzo szybki sposób wykorzystać obecną stronę internetową do stworzenia "instalowalnej" aplikacji na Androida i umieszczenia jej w sklepie Google Play. Aplikacja taka funkcjonuje w trybie pełnoekranowym, bez paska adresu, sprawiając wrażenie używania natywnej aplikacji.

Zalety TWA

  • Wspólna baza kodu na wiele platform - obniża koszt wytworzenia aplikacji.
  • Proste i szybkie aktualizacje - UI aplikacji i dane są pobierane w całości z webserwera, nie ma potrzeby przechodzenia każdorazowo przez proces publikacji nowej wersji w Google Play. Każdy użytkownik otrzymuje aktualizację natychmiast.
  • Niski crash rate - ryzyko awarii aplikacji jest niewielkie, ponieważ cała zawartość jest pobierana z zewnątrz.
  • Mały rozmiar aplikacji - przeciętny rozmiar wynosi jedynie ok. 200 kB.

Jak użyć TWA?

1. Zapewnij zgodność ze standardem PWA

Aby móc "opakować" stronę internetową w technologię TWA, musi ona najpierw być zgodna ze standardem PWA. W wykonaniu tego zadania pomocne będzie narzędzie Lighthouse od Google oraz mój wcześniejszy artykuł wyjaśniający czym jest PWA i jak dostosować stronę do wymogów PWA.

Postępując zgodnie z tymi wytycznymi, trzeba zapewnić stronie co najmniej:

  • plik manifest.json z podstawowymi informacjami o aplikacji,
  • service workera odpowiedzialnego za działanie w trybie offline (np. wyświetlenie strony z informacją o konieczności przejścia w tryb online),
  • obsługę całego ruchu przez protokół HTTPS,
  • dobrą responsywność, aby dobrze wyglądała także na małym ekranie.

Audyt Lighthouse

2. Wygeneruj pliki APK/AAB do publikacji w Google Play

Do tego bardzo dobrze nadaje się narzędzie Bubblewrap rozwijane przez Google. Przygotuj środowisko zgodnie z jego instrukcją zawartą w pliku README.md, a następnie zainstaluj Bubblewrap poleceniem:

npm i -g @bubblewrap/cli

Następnie zainicjuj nowy projekt Androida, podając link do pliku manifest.json:

bubblewrap init --manifest https://example.com/manifest.json

Generator zada Ci kilka pytań niezbędnych do wygenerowania aplikacji, będących głównie potwierdzeniem wartości zawartych w manifeście. Bardzo istotna jest część dotycząca klucza niezbędnego do podpisania aplikacji przed publikacją w Google Play (signing key). Można wygenerować nowy lub wykorzystać istniejący. Ważne jest, aby go nie zgubić, gdyż spowoduje to utratę możliwości aktualizacji aplikacji w przyszłości i konieczność utworzenia nowej, co będzie wiązało się m.in. z utratą wszystkich ocen i opinii.

Generowanie aplikacji TWA z użyciem Bubblewrap

Po udzieleniu wszystkich odpowiedzi zostanie wygenerowana struktura plików i folderów projektu Android dokładnie tak samo, jak przy użyciu Android Studio.

Następnie wystarczy zbudować aplikację poleceniem:

bubblewrap build

Spowoduje to wygenerowanie plików AAB i APK gotowych do publikacji w Google Play.

3. Opublikuj assetlinks.json

Zawartość wyświetlana przez Trusted Web Activity, jak sama nazwa mówi, jest zaufana (trusted). Oznacza to, że strona powinna zadeklarować za pomocą specjalnego pliku JSON, że jest powiązana z konkretną aplikacją na Androida. Odbywa się to za pomocą pliku o nazwie assetlinks.json umieszczanego w katalogu .well-known, który powinien być dostępny publicznie (https://example.com/.well-known/assetlinks.json).

Po zbudowaniu aplikacji przez Bubblewrap, plik assetlinks.json jest już wygenerowany w katalogu z projektem. Natomiast jeśli robisz to w inny sposób, możesz wygenerować go samodzielnie za pomocą narzędzia Statement List Generator.

Bardzo ważne jest, aby zawarty w nim SHA-256 fingerprint był zgodny z tym przypisanym do aplikacji Androida, który można podejrzeć w Google Play Console w sekcji "Podpisywanie aplikacji". W przeciwnym razie aplikacja będzie uruchamiać się z widocznym paskiem adresu, zamiast w trybie pełnoekranowym!

Przykłady aplikacji TWA

  1. Google Maps Go - lżejsza wersja Google Maps.
  2. Morele.net - sklep z elektroniką użytkową.
  3. Smakowity.pl - moja własna aplikacja z przepisami kulinarnymi.