Programowanie na Androida
Wyzwania klientów
Z czym przychodzą do nas klienci
Firmy często kontaktują się z firmą zajmującą się tworzeniem aplikacji na Androida, gdy muszą stworzyć nowy produkt na Androida, rozszerzyć istniejący zespół lub ustabilizować i zmodernizować aplikację będącą już w fazie produkcyjnej.
Aplikacja może działać poprawnie na urządzeniach testowych zespołu, ale nie działać na sprzęcie używanym przez rzeczywistych klientów. Raporty o awariach i błędach ANR mogą być powiązane z konkretnymi dostawcami urządzeń lub wersjami systemu operacyjnego, a odpowiedzialność za selekcję i analizę przyczyn źródłowych pozostaje niejasna w całym zespole.
Ręczne testy regresyjne, problemy z polityką i zależności między wersjami mogą wielokrotnie opóźniać planowane daty wydania. Gotowe poprawki mogą czekać na kolejną wersję, zamiast szybko dotrzeć do użytkowników.
Terminy dotyczące docelowego poziomu API, zmiany uprawnień, limity wykonywania w tle i wymagania dotyczące bezpieczeństwa danych są zgodne z harmonogramem platformy i polityką Google, a nie z planem rozwoju funkcji zespołu produktowego. Aplikacje, które nie będą odpowiednio utrzymywane, mogą w końcu napotkać ograniczenia dotyczące aktualizacji lub dostępności w Google Play.
Starsza baza kodu z przestarzałymi zależnościami, ograniczonym pokryciem testami lub niejasną architekturą może sprawić, że nawet drobne zmiany będą ryzykowne. Może to również spowolnić wdrażanie, skomplikować szacowanie i zwiększyć nakład pracy wymagany do obsługi nowszych wersji Androida.
Czas zimnego uruchamiania, zużycie pamięci, wykorzystanie baterii i ogólna responsywność mogą wydawać się akceptowalne w przypadku sprzętu flagowego, ale stają się problematyczne w przypadku urządzeń średniej klasy, z których korzysta duża część odbiorców.
Po okresach słabej łączności użytkownicy mogą napotkać nieaktualne, zduplikowane lub brakujące rekordy. Bez jasnych reguł synchronizacji, ponawiania prób i rozwiązywania konfliktów, odtworzenie i zdiagnozowanie tych problemów może być trudne dla zespołów wsparcia technicznego i inżynierów.
Zespół wewnętrzny może skupić się na back-endzie i rozwoju stron internetowych, pozostawiając prace nad Androidem inżynierom, którzy pracują z platformą tylko okazjonalnie. Może to spowolnić wydawanie wersji i utrudnić podejmowanie decyzji technicznych dotyczących konkretnej platformy.
Przegląd usług
Pełny cykl rozwoju aplikacji na Androida – od architektury po długoterminowe wsparcie
Nasza tworzenie niestandardowych aplikacji mobilnych Usługi dla systemu Android obejmują inżynieryjną stronę produktu, w tym architekturę, implementację, testowanie, wydanie, modernizację i prace po wydaniu. Współpraca może rozpocząć się od nowej aplikacji lub od bazy kodu, która ma już użytkowników i wymaga dalszego rozwoju.
Problem i rozwiązanie
Problem
Android działa na urządzeniach wielu dostawców, z różnymi wersjami systemu operacyjnego, rozmiarami ekranów, profilami pamięci i specyficznymi dla danego dostawcy mechanizmami działania w obszarach takich jak wykonywanie w tle i zarządzanie baterią. Google również z czasem aktualizuje wymagania dotyczące platformy i sklepu. Utrzymanie aplikacji na Androida staje się trudne, a koszty często wynikają nie tylko ze złożoności funkcji, ale także z defektów specyficznych dla danego urządzenia, przestarzałej architektury, niewystarczającego pokrycia testami i zmieniających się wymagań platformy. To częste powody, dla których firmy zaczynają szukać firmy tworzącej oprogramowanie na Androida z dogłębną wiedzą na temat platformy.
Podejście Solbega
Możemy zdefiniować macierz wsparcia urządzeń i systemów operacyjnych na podstawie analizy produktu, danych rynku docelowego i wymagań biznesowych. Architektura, granice modułów, testowanie, CI/CD i strategia wydania są następnie dostosowywane do tej macierzy. W razie potrzeby, wdrażanie etapowe i monitorowanie Play Console mogą być wykorzystane do zmniejszenia ryzyka wydania i identyfikacji regresji przed szerszym wdrożeniem. Starszy kod może zostać poddany refaktoryzacji tam, gdzie blokuje rozwój, a pełne przepisanie jest rozważane tylko wtedy, gdy uzasadnia to uzasadnienie techniczne i biznesowe. Usługi programistyczne dla systemu Android są planowane w oparciu zarówno o plan rozwoju produktu, jak i wymagania platformy Android.
Kiedy ta usługa pasuje
Kiedy warto zaangażować partnera do tworzenia aplikacji na Androida
Firmy mogą włączyć partnera do tworzenia aplikacji mobilnych na system Android w różnych sytuacjach.
Zaplecze, model danych i reguły biznesowe mogą już istnieć. Zadanie polega na stworzeniu klienta Android, który integruje się z tymi samymi systemami, zapewniając jednocześnie środowisko zaprojektowane specjalnie dla platformy Android.
Aktualizacja interfejsu API docelowego, zmiana zasad, wymóg dotyczący uprawnień lub nowa deklaracja mogą wymagać rozwiązania, zanim wpłyną na zdolność aplikacji do publikowania aktualizacji lub pozostawania dostępną dla użytkowników docelowych.
Istniejąca baza kodu może wymagać przeglądu, udokumentowania, przetestowania i ustabilizowania przed dalszym rozwojem. Celem jest zrozumienie architektury, zależności i ryzyka technicznego przed dodaniem nowej funkcjonalności.
Aplikacje na system Android mogą wspierać obsługę terenową, logistykę, magazynowanie, sprzedaż detaliczną i inne wewnętrzne procesy, w tym scenariusze obejmujące zarządzane lub współdzielone urządzenia oraz dystrybucję poza sklepem publicznym.
Niektóre produkty z systemem Android wymagają komunikacji z urządzeniami peryferyjnymi, czujnikami, systemami przemysłowymi lub innym sprzętem zewnętrznym. W takich przypadkach obsługa protokołów, stabilność połączenia, odzyskiwanie błędów i integracja z platformą mogą stać się istotnymi wymaganiami technicznymi.
Produkt może wymagać ukierunkowanych prac inżynieryjnych, gdy wskaźniki awarii, błędy ANR, wydajność uruchamiania lub inne wskaźniki jakości zaczynają mieć wpływ na użytkowników i wersje.
Klient może zachować prawo własności do planu rozwoju, jednocześnie zatrudniając inżynierów Androida na określony zakres lub okres. Rozwiązania w zakresie tworzenia aplikacji na Androida w tym modelu można dostosować do procesów, narzędzi i praktyk inżynieryjnych już stosowanych przez wewnętrzny zespół.
Co obejmuje praca
Co obejmuje tworzenie aplikacji na Androida
Dokładny skład zależy od projektu i zakresu prac zespołu klienta. Usługi tworzenia aplikacji mobilnych na Androida mogą obejmować następujące obszary.
Inżynieria Androida
Prace mogą obejmować architekturę aplikacji, implementację interfejsu, warstwę danych, działanie offline, przetwarzanie w tle oraz integrację z usługami platformy Android. Rozwój odbywa się zgodnie z ustalonymi minimalnymi i docelowymi wymaganiami SDK, a praktyki inżynieryjne i przegląd kodu są definiowane zgodnie z konfiguracją projektu.
Integracja zaplecza i API
Zakres może obejmować przegląd kontraktów API, uwierzytelnianie, obsługę błędów, logikę ponawiania prób oraz synchronizację z usługami zaplecza. Jeśli wymagane API jeszcze nie istnieje, zespół może zdefiniować możliwości i dane wymagane przez klienta Androida.
Zapewnienie jakości i automatyzacja testów
Testowanie może łączyć urządzenia fizyczne, emulatory oraz pokrycie chmury urządzeń zgodnie z uzgodnioną macierzą urządzeń i systemów operacyjnych. W zależności od architektury produktu, wymagań jakościowych i konfiguracji dostawy można stosować testy jednostkowe, integracyjne, instrumentacyjne i regresyjne.
Inżynieria wydania
Praca nad wydaniem może obejmować konfigurację kompilacji, podpisywanie, ścieżki wydań w Google Play, etapowe wdrażanie w stosownych przypadkach oraz przygotowywanie oferty w sklepie zgodnie z bieżącą polityką i docelowymi wymaganiami interfejsu API.
Inżynieria po wydaniu
Po wydaniu praca może obejmować monitorowanie awarii i błędów ANR, profilowanie wydajności, selekcję problemów oraz kolejne wydania przy użyciu Konsoli Play i innych uzgodnionych narzędzi do monitorowania.
Dlaczego Solbeg
Dlaczego firmy wybierają Solbeg do tworzenia oprogramowania na Androida
Solbeg łączy doświadczenie w inżynierii Androida z możliwościami back-endu, kontroli jakości, integracji, wdrażania i dostarczania, aby wspierać zarówno nowe aplikacje, jak i produkty już w fazie produkcyjnej. Nasze zespoły mogą pracować w całym cyklu wdrażania, dostosowując zaangażowanie do architektury produktu, obsługiwanej bazy urządzeń, planu działania i istniejącego środowiska technologicznego.
Ekspertyza na platformie Android
Solbeg tworzy i wspiera aplikacje na Androida, mając na uwadze wymagania specyficzne dla danej platformy, takie jak fragmentacja urządzeń, kompatybilność z systemem operacyjnym, działanie w tle, wydajność i wymagania Google Play. Pomaga to zespołom rozwiązywać problemy techniczne specyficzne dla Androida w ramach ogólnego planu rozwoju produktu, a nie jako odizolowane problemy związane z wydaniem.
Doświadczenie z aplikacjami już będącymi w fazie produkcyjnej
Solbeg może przejąć istniejące produkty Android z ugruntowanymi bazami kodu, integracjami, użytkownikami i logiką biznesową. Nasze zespoły mogą dokonać przeglądu architektury, zależności, pokrycia testowego, konfiguracji kompilacji i ryzyka technicznego, a następnie zdefiniować praktyczną ścieżkę stabilizacji, modernizacji lub dalszego rozwoju, nie zakładając konieczności całkowitego przepisania kodu.
Zapewnienie jakości na różnych urządzeniach i wersjach systemów operacyjnych
Dedykowani specjaliści ds. zapewnienia jakości (QA) mogą testować aplikacje na urządzeniach fizycznych, emulatorach i w środowiskach chmurowych urządzeń, zgodnie z ustaloną macierzą urządzeń i systemów operacyjnych. Testowanie może obejmować funkcjonalność, kompatybilność, stabilność, wydajność, integracje oraz specyficzne dla systemu Android zachowanie w całym cyklu życia produktu.
Możliwości integracji zaplecza i systemu
Aplikacje na Androida można w razie potrzeby zintegrować z istniejącymi usługami zaplecza, systemami wewnętrznymi, interfejsami API innych firm oraz sprzętem zewnętrznym. W przypadku konieczności rozszerzenia interfejsów API lub usług pomocniczych, inżynieria zaplecza może również zostać uwzględniona w tym samym zakresie dostawy.
Wydanie i obsługa Google Play
Nasze zespoły mogą wspierać konfigurację kompilacji, podpisywanie, ścieżki wydań, etapowe wdrażanie oraz przygotowanie do aktualnych zasad Google Play i docelowych wymagań API. Monitorowanie po wydaniu może również pomóc w identyfikacji awarii, błędów ANR, spadków wydajności i innych problemów, które mogą wymagać dalszych działań inżynieryjnych.
Elastyczne, długoterminowe wsparcie inżynieryjne
Solbeg może zapewnić dodatkowe zasoby Android dla wewnętrznego zespołu lub przejąć odpowiedzialność za bieżący rozwój produktu, jego modernizację i wsparcie. Skład zespołu i możliwości realizacji dostaw można dostosować do zmieniających się priorytetów produktu, wymagań platformy i potrzeb inżynieryjnych.
Porównanie
Rozwój natywny i wieloplatformowy Androida
Zanim zakres projektu zostanie sfinalizowany, należy wybrać metodę realizacji. Jest to częsty czynnik brany pod uwagę przez firmy porównujące firmy tworzące aplikacje na Androida, ponieważ każdy model ma inne implikacje dla dostępu do platformy, konserwacji, zatrudnienia personelu i rozwoju wieloplatformowego.
Natywny Android z Kotlinem
Natywny rozwój Androida zapewnia bezpośredni dostęp do interfejsów API Androida, możliwości platformy, narzędzi zwiększających wydajność, integracji sprzętowej, przetwarzania w tle i innych funkcji specyficznych dla Androida. Może być szczególnie przydatny w przypadku aplikacji o głębokiej integracji z platformą, wysokich wymaganiach wydajnościowych lub długoterminowej strategii rozwoju specyficznej dla Androida.
Dla zespołów poszukujących firmy tworzącej aplikacje natywne dla systemu Android, takie podejście oznacza również utrzymanie dedykowanej bazy kodu Androida, gdy ten sam produkt jest dostępny na iOS. Może to zwiększyć nakład pracy związany z rozwojem i utrzymaniem konkretnej platformy, gdy oba ekosystemy muszą ewoluować równolegle.
Wieloplatformowy ze wspólną warstwą interfejsu
Wspólna baza kodu może ograniczyć duplikację, gdy wymagane są zarówno systemy Android, jak i iOS, a produkt w dużej mierze opiera się na podobnych przepływach pracy i funkcjonalnościach opartych na API. Takie podejście może uprościć rozwój i utrzymanie na różnych platformach.
Niektóre funkcje specyficzne dla danej platformy mogą nadal wymagać natywnych modułów lub dodatkowej obsługi frameworka, szczególnie gdy produkt w dużym stopniu opiera się na interfejsach API specyficznych dla systemu Android, dostępie sprzętowym, działaniu w tle lub nowo wprowadzonych funkcjach platformy.
Wspólna logika biznesowa z natywnymi interfejsami
Innym podejściem jest współdzielenie części logiki domeny, sieci lub pamięci masowej przy jednoczesnym zachowaniu natywnych interfejsów w systemach Android i iOS. Pozwala to ograniczyć duplikację logiki biznesowej, zachowując jednocześnie interfejs użytkownika i wzorce interakcji specyficzne dla danej platformy.
Wadą jest większa złożoność kompilacji i architektury, mniejsza grupa inżynierów mających doświadczenie w tym podejściu oraz biblioteki lub integracje, które mogą nadal wymagać implementacji specyficznych dla danej platformy.
Właściwy wybór zależy od tego, jak bardzo produkt zależy od zachowania platformy, czy iOS jest w zakresie projektu, jak zorganizowane są zespoły i jak długo aplikacja ma być utrzymywana. Żadne z tych podejść nie jest uniwersalnie lepsze, dlatego porównanie należy przeprowadzić w odniesieniu do rzeczywistego zestawu funkcji i planu rozwoju produktu.
Przetwarzanie
Jak podchodzimy do tworzenia aplikacji na Androida
Typowy projekt realizowany przez agencję zajmującą się tworzeniem aplikacji na system Android może przebiegać według poniższych etapów, których szczegółowość i kolejność powinny być dostosowane do zakresu projektu i stanu istniejącej aplikacji.
-
Odkrycie i przegląd techniczny
Dokonujemy przeglądu wymagań, istniejącego kodu (jeśli dotyczy), analiz, umów back-endowych, integracji oraz profilu urządzeń użytkowników docelowych. Wynik może obejmować opis zakresu, zidentyfikowane ryzyka techniczne, założenia i szacunkowy zakres.
-
Zakres i skład zespołu
Definiujemy, co należy do zakresu początkowego i jakie role są wymagane do jego realizacji. Wielkość i skład zespołu zależą od uzgodnionej funkcjonalności, integracji, wymagań jakościowych i modelu realizacji, a nie od sztywnego szablonu.
-
Wprowadzenie
Ustanawia się dostęp do repozytoriów, środowisk, narzędzi projektowych, kanałów komunikacji i odpowiednich kont w sklepach. Z klientem uzgadnia się również przepływ prac programistycznych, proces kompilacji, częstotliwość raportowania, obowiązki i zasady współpracy.
-
Dostawa iteracyjna
Rozwój może przebiegać stopniowo, a funkcjonalność produktu jest weryfikowana w miarę jego rozwoju. Testowanie pod kątem uzgodnionej macierzy urządzeń i systemu operacyjnego może być wdrożone w całym procesie rozwoju, zamiast pozostawiać je wyłącznie na osobną, końcową fazę.
-
Wydanie i kontynuacja
W stosownych przypadkach ścieżki wydań Google Play lub wdrażanie etapowe można stosować łącznie z monitorowaniem awarii, ANR, wydajności i produktu. Wyniki uzyskane po wydaniu mogą posłużyć do opracowania prac stabilizacyjnych, optymalizacji i określenia zakresu dalszego rozwoju.
FAQ
Często zadawane pytania dotyczące rozwoju Androida
Przydatne dane wejściowe obejmują wymagania lub listę funkcji, dostęp do istniejącej aplikacji i bazy kodu (jeśli dotyczy) oraz dokumentację zaplecza lub API. Dane analityczne dotyczące dystrybucji urządzeń i systemów operacyjnych, jeśli są dostępne, mogą poprawić dokładność zakresu wsparcia i testowania. Na podstawie tych informacji możemy zdefiniować zakres projektu, założenia techniczne i szacunkowy zakres.
Tak. Przejęcie istniejącej aplikacji może rozpocząć się od przeglądu technicznego obejmującego architekturę, zależności, pokrycie testami, konfigurację kompilacji i podpisywania, integracje oraz dostęp do sklepu. Pomaga to określić, co należy uwzględnić przed rozpoczęciem znaczącego rozwoju. Firmy porównujące firmy tworzące aplikacje na Androida mogą również skorzystać z tego typu oceny, aby zrozumieć stan i ryzyko związane z istniejącym produktem przed przejściem do dalszych działań.
Macierz obsługiwanych urządzeń i systemów operacyjnych można zdefiniować na podstawie analizy produktu, danych rynku docelowego oraz wymagań biznesowych. Testowanie może łączyć urządzenia fizyczne, emulatory i pokrycie urządzeń chmurą zgodnie z tą macierzą. Zachowania specyficzne dla dostawcy, takie jak ograniczenia tła lub optymalizacja baterii, mogą zostać dodatkowo przetestowane, jeśli ma to znaczenie dla bazy obsługiwanych urządzeń.
Jeśli aplikacja nie spełnia już docelowych wymagań API Google Play, nowe aktualizacje mogą zostać zablokowane, a dostępność dla nowych użytkowników nowszych wersji Androida może zostać ograniczona. Wymagany nakład pracy związany z migracją zależy od takich czynników, jak wycofane interfejsy API, zmiany w działaniu platformy, zależności i biblioteki innych firm. Wymagania te można śledzić w odniesieniu do planu działania produktu, aby zaplanować niezbędne aktualizacje przed upływem obowiązującego terminu.
Zależy to od funkcjonalności produktu, wymagań specyficznych dla platformy, oczekiwań dotyczących wydajności oraz tego, czy iOS jest również częścią planu rozwoju. Natywny Android może być preferowany w przypadku aplikacji, które w dużym stopniu zależą od interfejsów API Androida, dostępu sprzętowego, złożonego działania w tle lub głębokiej integracji platform. Programowanie międzyplatformowe może być dobrym rozwiązaniem, gdy obie platformy współdzielą większość logiki biznesowej i przepływów pracy użytkowników. Porównanie można przeprowadzić z rzeczywistym zestawem funkcji przed sfinalizowaniem podejścia do implementacji.
W wielu projektach publikowanie odbywa się za pośrednictwem konta programisty Google Play klienta, więc właściciel oferty, recenzji, historii wydań i tożsamości programisty pozostaje po stronie klienta. Podpisywanie dokumentów, dostęp do konta, uprawnienia i obowiązki związane z publikacją powinny zostać zdefiniowane przed pierwszym wydaniem produkcyjnym.
Dane Android Vitals, dane z Play Console i analityka produktu mogą być wykorzystywane do monitorowania wskaźników awarii, błędów ANR, wydajności uruchamiania i innych uzgodnionych wskaźników jakości po premierze. Metryki te mogą pomóc w podejmowaniu decyzji dotyczących wdrożenia, stabilizacji, optymalizacji wydajności i dalszych prac rozwojowych.