Adobe zmniejsza rozmiar aplikacji o 20% dzięki pakietom aplikacji i Dynamicznemu przesyłaniu
Wprowadzenie
Narzędzia Adobe wspomagające kreatywność i produktywność pomagają użytkownikom od 1982 roku. Aplikacje Adobe takie jak Photoshop, Illustrator czy Lightroom cieszą się uznaniem twórców od kilku dekad, jednak tym, co przyniosło marce największą sławę, jest dobrze znany, wynaleziony prawie 30 lat temu format PDF.
Flagowa aplikacja mobilna Adobe na Androida Adobe Acrobat Reader to bezpłatne, uznawane za światowy standard narzędzie do wyświetlania, podpisywania i komentowania dokumentów PDF. Pobrano ją już ponad 500 milionów razy. I choć od premiery minęło już wiele lat, aplikacja cały czas staje się lepsza. Jak mówi Shubham Garg, informatyk w Adobe: „W zeszłym roku aplikacja na Androida wzbogaciła się o całe mnóstwo funkcji”. Użytkownicy byli tymi funkcjami zachwyceni, ale zaczęli też zauważać coraz większy rozmiar aplikacji, co spowodowało spadek liczby konwersji. To był problem, „szczególnie na rynkach rozwijających się, gdzie bardzo wyraźnie widać obie te kwestie” – dodaje Shubham.
Rozwiązanie
Dzięki pakietom Android App Bundle firma Adobe bez większego wysiłku zmniejszyła rozmiar aplikacji Acrobat. „Przejście na pakiety aplikacji nie było trudne” – przyznaje Shubham. „Nasza aplikacja obsługiwała już minimalną wersję pakietu Android SDK i Gradle, więc ze swojej strony musieliśmy wprowadzić jedynie drobne zmiany w kodzie”. Po bezpiecznym przekazaniu Google kopii klucza podpisywania wdrożenie przebiegło bezproblemowo.
Poza przejściem na pakiety firma Adobe postanowiła też wdrożyć kilka funkcji w formie modułowej, aby jeszcze bardziej zmniejszyć rozmiar aplikacji. „Używaliśmy już w aplikacji modułów bibliotek, ale funkcje dynamiczne sprawiły, że spojrzeliśmy na modularyzację z innej persektywy” – wyjaśnia Shubham. „Aplikację można przesłać osobno, z pominięciem czasu kompilowania zależności jej funkcji, a funkcje i tak można zainstalować później”.
Pierwszą funkcją skonfigurowaną modułowo była opcja „Wypełnij i podpisz”. Dzięki dynamicznemu przesyłaniu nie trzeba już było uwzględniać w każdym pliku APK wszystkich gęstości ekranów i zasobów językowych. A ponieważ starsze pliki APK były już podzielone ze względu na architekturę, zespół nie musiał wykonywać żadnych dodatkowych działań, aby zapewnić ich zgodność z pakietami aplikacji.
Wyniki
Pakiety aplikacji i dynamiczne przesyłanie pozwoliły zmniejszyć rozmiar aplikacji Acrobat o 15 MB, czyli około 22–25%. W przypadku niektórych urządzeń różnica była jeszcze większa i wynosiła nawet 30%. Wdrożenie przebiegło idealnie. „Nie zauważyliśmy żadnego pogorszenia wydajności ani żadnych problemów z pobieraniem” – potwierdza Shubham. Jego zdaniem jest to częściowo zasługa testów. „Polegaliśmy na wewnętrznym udostępnianiu aplikacji, które umożliwiło nam symulację działań użytkownika w Sklepie Play, a także pozwoliło nam przesyłać aplikacje z możliwością debugowania bez przejmowania się obsługą wersji”.
Zastosowanie pakietów to także oszczędność czasu: teraz zespół musi przesłać do Google Play tylko 1 artefakt. Wspomina Shubham: „Wcześniej używaliśmy 4 plików APK podzielonych według architektury”. Teraz wystarczy 1 pakiet. Zespół zauważył też wzrost konwersji zakończonych instalacją o 5–7% i mniejszą liczbę skarg na rozmiar aplikacji.
Jeśli chodzi o dynamiczne przesyłanie, „plik z aplikacją ma mniejszy rozmiar, a instalacja przebiega szybciej” – zauważa Shubham. Przed modularyzacją zespół przesyłał przy każdej wersji 4 różne pliki APK. A ponieważ każdy z nich miał inny kod wersji, podstawowe wskaźniki i statystyki trzeba było mierzyć osobno, co było dość kłopotliwe i wiązało się z ryzykiem wystąpienia błędów. Dzięki pakietom aplikacji przesyłany jest jeden artefakt, z jednym kodem wersji. Podsumowuje Shubham: „Pomogło nam to uprościć proces programowania i pozwoliło na udostępnianie testerom pojedynczej kompilacji, która na pewno zadziała na wszystkich urządzeniach”.
Co dalej? „Chcielibyśmy poeksperymentować z funkcjami przesyłania warunkowego, aby zobaczyć zalety zmniejszenia rozmiaru aplikacji, oraz z dynamicznym przesyłaniem konkretnych funkcji kierowanych na konkretne grupy odbiorców” – zdradza Shubham.
Wypróbuj
Z pakietów Android App Bundle mogą korzystać wszyscy deweloperzy aplikacji i gier. Zacznij już dziś