Wygoda jest czymś, z czego nigdy nie możemy być w pełni zadowoleni. Dlatego właśnie twórcy oprogramowania są zawsze zmuszeni do przesuwania granic, aby stworzyć lepsze wrażenia użytkownika, bez kompromisu dla funkcjonalności. Wszystko w imię oszczędzania churn w dzisiejszym konkurencyjnym biznesie. Ludzie chcą wygody i dlatego aplikacje hybrydowe zostały przyjęte z zadowoleniem.
Co jest tak wyjątkowego w aplikacjach hybrydowych? WebViews!
Aplikacje hybrydowe
Jak sama nazwa wskazuje, są one mieszanką Native i Web Applications. Są one dostępne w sklepach z aplikacjami do pobrania i wymagają uwierzytelnienia dostępu z urządzenia jak aplikacje natywne, ale mają również przeglądarkę osadzoną w aplikacji (WebView) do renderowania HTML. Instagram jest dobrym przykładem aplikacji hybrydowej.
Pamiętasz czasy, kiedy aby uzyskać dostęp do dowolnego linku strony trzeciej, zwykliśmy otwierać go w nowej przeglądarce na urządzeniu, co skutkowało wyprowadzeniem nas z aplikacji, z której chcieliśmy skorzystać? To była katastrofa dla UX, która została rozwiązana przez stworzenie okna przeglądarki in-app dla ułatwienia stron internetowych osób trzecich jako część układu aktywności. Kudos to WebViews!
Dlaczego potrzebujesz WebViews?
- Zapewniają lepszą kontrolę nad UI twojej aplikacji.
- Nie musisz aktualizować całej aplikacji, jeśli chcesz tylko zaktualizować zawartość aplikacji, jeśli, na przykład, chcesz upublicznić nadchodzącą sprzedaż w swojej aplikacji lub jakąś inną ekscytującą ofertę.
- Nie zostaniesz popchnięty do innej aplikacji innej firmy, ale raczej zostaniesz przekierowany do przeglądarki w aplikacji, która pobiera zawartość z sieci dla Ciebie. Zapewnia to wygodę pozostania w zamierzonej aplikacji. Weźmy na przykład Instagram, gdzie trzeba przesunąć w górę w niektórych historiach i jesteś przekierowany na stronę internetową za pośrednictwem przeglądarki w aplikacji, zamiast otwierać zawartość w Chrome, Safari, Firefox, lub jakiejkolwiek innej przeglądarki. Możesz swobodnie poruszać się po treści na przekierowanej stronie internetowej, przewijając w górę/dół, powiększając/zmniejszając lub wyszukując tekst.
- WebViews pozwalają na rozwój międzyplatformowy, co skutkuje zmniejszeniem kosztów rozwoju i elastycznością dla dewelopera. Uwaga: Nie możemy jednak sprawić, by pojedynczy build aplikacji działał na wielu systemach operacyjnych. Możemy tylko ułatwić rozwój innego budynku z pomocą rozszerzeń internetowych poprzez HTML, CSS, JavaScript, itp.
- Firmy często mają na celu zbudowanie aplikacji wrapper istniejącej aplikacji internetowej. Czyniąc to, firmy mają na celu stworzenie obecności w sklepach z aplikacjami przy stosunkowo mniejszym wysiłku. Ponadto, frameworki takie jak Ionic pozwalają na dodanie aplikacji do sklepu z aplikacjami i wdrożenie jej do mobilnej sieci jako PWA.
Dla wygenerowania WebView, programista musi:
- Opracować instancję klasy
webview
. - Wbudować przeglądarkę w swojej aplikacji.
- Dodaj funkcjonalności przeglądarki za pomocą biblioteki WebView.
- Dodaj uprawnienia internetowe w pliku Android Manifest.
- Dodaj kod dla WebView, aby otworzyć przeglądarkę in-app.
Testowanie WebView – Odnosi się do tworzenia i wykonywania przypadków testowych w celu sprawdzenia efektywnie działających mechanizmów WebView.
Pamiętaj o następujących rzeczach podczas testowania WebViews:
- Sprawdź czy aplikacja reaguje zgodnie z zamierzonym zachowaniem poprzez przerwanie ładowania strony internetowej.
- Jeśli treść zawiera hiperłącza do adresów e-mail w WebView, upewnij się, że te hiperłącza otwierają aplikację pocztową w urządzeniu po ich dotknięciu.
- W podobny sposób przetestuj hiperłącze do numeru telefonu – czy kieruje ono użytkownika do aplikacji, czy nie? Ponadto, jak reaguje hiperłącze, jeśli karta SIM nie jest włożona do urządzenia?
- Testuj reakcję WebView w różnych trybach sieci – 2G, 3G, WiFi, LTE.
- Specjalne znaki powinny być również testowane. Wraz z powiększaniem/zmniejszaniem, nawigacją po zawartości strony internetowej poprzez przewijanie w górę/dół lub nawigacją po ekranie poprzez przewijanie w lewo/prawo.
- Sprawdź tolerancję WebView na czynniki zewnętrzne takie jak SMS, spadek sygnału, powiadomienia, połączenia, itp.
- Sprawdź zachowanie twojej aplikacji, gdy zewnętrzna aplikacja jest uruchamiana poprzez hiperłącze z twojej zawartości strony internetowej.
- Zmień orientację swojego urządzenia i przetestuj, czy Twoja zawartość strony internetowej jest w stanie je obsłużyć.
- Testuj, czy wyświetlanie grafiki jest zadowalające.
- Kompresuj okno przeglądarki i sprawdź, czy tekst jest odpowiednio kompresowany.
- Platforma cross-browser będzie bardzo pomocna w testowaniu wyżej wymienionych wskazówek do testowania. Pozwoli to również zorientować się, jak Twój WebView jest przedstawiany docelowym odbiorcom.
Jak przeprowadzić testy WebView
Espresso Web for Android WebView – To narzędzie pomaga w badaniu i kontrolowaniu zachowania komponentów WebView UI poprzez ponowne wykorzystanie atomów z API WebDriver. Jest to jedno z najczęściej używanych narzędzi do testowania aplikacji hybrydowych. Jest wymagane do sprawdzenia integracji natywnych komponentów UI aplikacji i jej komponentów UI WebView.
Przed użyciem Espresso Web, musisz dokładnie przeanalizować kod źródłowy swojej strony internetowej w celu określenia haków dla jej metod. Z tego powodu może to stać się bardzo skomplikowane dla dużych stron internetowych.
Alternatywne podejście
Inne podejście polegałoby na zapomnieniu kodu stron trzecich i skupieniu się tylko na kodzie opartym na Androidzie. Zasadniczo, WebView mapuje elementy strony internetowej; pozwalając użytkownikowi na interakcję z nimi poprzez obiekty widoku Androida i ich rozszerzenia. Te widoki nie mają identyfikatora, co czyni je niedostępnymi za pomocą findViewById(int id), ani nie można uzyskać dostępu do tych identyfikatorów w pakiecie aplikacji.
To nie znaczy, że nie można ich śledzić. Możesz z pomocą Android Device Monitor, samodzielne narzędzie do dostarczania UI do pomocy wielu narzędzi do analizy i debugowania aplikacji Android.
- Musisz zrobić zrzut każdego ekranu na emulatorze z Android Device Monitor.
- Zorientuj się, jak WebViews są wewnętrznie zorganizowane.
- Wykonaj działania na nich z pomocą UiAutomator.
.