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.
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.
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
- Google Maps Go - lżejsza wersja Google Maps.
- Morele.net - sklep z elektroniką użytkową.
- Smakowity.pl - moja własna aplikacja z przepisami kulinarnymi.