Szybsze i prostsze działanie komunikatora Hike dzięki komponentom architektury Androida
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Firma Hike, która powstała w 2012 r., tworzy usługi, które mają uprościć internet i umożliwić dostęp do niego w Indiach. Hike łączy czat, wiadomości, kanały i integracje z aplikacjami innych firm do transportu i płatności.
Firma opracowała te funkcje bardzo szybko i w różnych momentach, co spowodowało powstanie „znacznego długu technicznego i architektonicznego”. Ponieważ ten dług techniczny stawał się wąskim gardłem dla stabilności, łatwości konserwacji i wydajności, firma chciała szybko uprościć swój kod.
Rozwiązanie
Firma Hike sięgnęła po składniki architektury Androida, które, jak mówi dyrektor ds. technicznych Vishwanath Ramarao, stały się „naszym szwajcarskim scyzorykiem do rozwiązywania wszystkich tych problemów”. Zaczęła używać ViewModel, która umożliwia przetrwanie danych podczas zmian konfiguracji (takich jak obracanie ekranu); LiveData, czyli klasy obserwatora danych; oraz biblioteki trwałości Room.
„Jesteśmy nowoczesną, reaktywną aplikacją, a biblioteki Room i LiveData doskonale pasują do naszych zasad projektowania” – dodaje Ramarao.
Firma Hike testuje też bibliotekę Paging, która ułatwia aplikacji stopniowe wczytywanie informacji w miarę potrzeb ze źródła danych bez przeciążania urządzenia i zbyt długiego oczekiwania na duże zapytanie do bazy danych.
„Znaliśmy ogólnie komponenty architektury i chcieliśmy dowiedzieć się o nich więcej” – mówi Ramarao. „To, co zaczęło się jako badanie sprawdzonych metod w ekosystemie Androida, stało się ważnym narzędziem do radzenia sobie z długiem technicznym i architektonicznym. Ostatecznie stało się to sposobem na modernizację naszej architektury i praktyk programistycznych”.
Wyniki
Dzięki komponentom architektury firma Hike znacznie zmniejszyła łączną liczbę wierszy kodu w swojej aplikacji, a także sprawiła, że kod stał się bardziej czytelny i łatwiejszy w utrzymaniu. Komponenty architektury Androida pomogły im też zwiększyć odsetek użytkowników, którzy nie doświadczyli awarii, do ponad 99%, co wcześniej było dla nich trudne do osiągnięcia.
Rozpocznij
Składniki architektury Androida są dostępne dla wszystkich deweloperów w ramach Androida Jetpack. Pierwsze kroki z komponentami architektury Androida
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2018-05-03 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2018-05-03 UTC."],[],[],null,["# Hike Messenger gains speed and simplicity with Android Architecture Components\n\nLaunched in 2012, Hike is building products with the aim of simplifying the\ninternet to bring India online. Hike combines chat, messaging, feeds,\nand integrations with third-party transportation and payment apps.\nIt developed these features very rapidly and at different points in\ntime, resulting in what the company called \"significant technical and\narchitectural debt.\" Because this debt was becoming a bottleneck to\nstability, maintainability and performance, the company wanted to simplify\nits code quickly.\n\nWhat they did\n-------------\n\nHike turned to [Android Architecture Components](/jetpack/arch), which\nbecame \"our Swiss army knife to tackle all of these challenges\" says\nCTO Vishwanath Ramarao. It began using\n[ViewModel](/topic/libraries/architecture/viewmodel), which allows data to\nsurvive configuration changes (such as screen rotations);\n[LiveData](/topic/libraries/architecture/livedata), an\nobservable data-holder class; and the\n[Room](/topic/libraries/architecture/room) persistence library.\n\"We're a modern, reactive app, and Room and LiveData fit really\nwell with our forward-design principles\" Ramarao adds.\n\nHike is also evaluating the [Paging Library](/topic/libraries/paging),\nwhich makes it easier for an app gradually to load information as needed from a\ndata source, without overloading the device or waiting too long for a big\ndatabase query.\n\u003e \"We were aware of Architecture Components in general and wanted to learn more\"\n\u003e Ramarao says. \"But what started as an exploration of the Android-ecosystem\n\u003e best practices became an important tool to tackle our technical and\n\u003e architectural debt. It ultimately became a way of modernizing our\n\u003e architecture and development practice\".\n\nResults\n-------\n\nThanks to Architecture Components, Hike significantly reduced the total\nlines of code in their app, while also making that code more readable\nand maintainable. Android Architecture Components also helped them to\nraise their crash-free user ratings to well beyond 99 percent,\nsomething they'd struggled to accomplish in the past.\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers as part of\n[Android Jetpack](/jetpack). [Get\nstarted with Android Architecture Components](/jetpack/arch)."]]