Angelo Faella
Angelo FaellaSoftware Engineer @ PHLAY

7 rad dla programistów Androida

Dowiedz się, jak usprawnić swoją pracę przy rozwoju aplikacji androidowych.
11.03.20206 min
7 rad dla programistów Androida

Minęły już ponad dwa lata, odkąd po raz pierwszy zainteresowałem się programowaniem Androida. Chciałbym się z Wami podzielić siedmioma rzeczami, których się nauczyłem podczas tej przygody.

1. Wybierz odpowiednią architekturę na początku

Słyszeliście o takich akronimach jak MVC, MVP, MVVM? To architektury oprogramowania i powinniście je znać. Wielu początkujących pisze swój kod tylko podczas zajęć. Może się to wydawać OK na początku, ale w rzeczywistości takie nie jest...

W miarę rozwoju projektu Twój kod będzie coraz bardziej zagmatwany i mocniej powiązany, sprawiając, że testy, utrzymanie i rozwój nowych funkcji będzie bardzo trudny. 

Dlatego powinno się wybrać odpowiednią architekturę już na początku. Tak jak wcześniej powiedziałem, trochę ich jest i każda ma swoje wady i zalety. Google do dzisiaj rekomenduje taką architekturę aplikacji: 

Architektura aplikacji zalecana przez programistów Androida

Jak widać powyżej, każdy komponent jest zależny jedynie od elementu, który jest jeden poziom poniżej. Taki design zapewnia spójny UX, respektuje zasadę Separation of Concerns i pozwala na łatwe testowanie i skalowanie. Nie ma oczywiście idealnej struktury dla każdej sytuacji. Jak mówi Google: 

Niemożliwym jest napisanie aplikacji, która dobrze działa w każdym możliwym scenariuszu, w jeden jedyny sposób. Powyższa architektura jest jednak najlepsza na początek, biorąc pod uwagę różne scenariusze i sposoby pracy. 


Źródła

Nie będę się wdawał w szczegóły tej architektury, bo nic nie wniesie to do artykułu, ale polecę użyteczne źródła: 

2. Zewnętrzne biblioteki: w poszukiwaniu balansu

Kiedy zaczynałem swój pierwszy projekt, chciałem wszystko zrobić od zera. Nie chciałem używać zewnętrznych bibliotek. Pewnie mi się wydawało, że mogę się w taki sposób więcej nauczyć.To prawda, ale tylko dla pierwszego projektu. Ogólnie takie podejście jest niepoprawne. Traci się wtedy mnóstwo czasu na odkrywanie na nowo Ameryki. Potem używałem już gotowych zasobów. To działało, bo można znaleźć darmową bibliotekę na każdą sytuację. Zacząłem zatem dodawać jedną bibliotekę, potem następną i następną, i następną... i mój projekt okazał się niczym więcej niż bezładną mieszaniną zewnętrznych bibliotek. Tak też nie róbcie. Wybierajcie ostrożnie. Nie wszystkie gotowe biblioteki są dobrze napisane i godne zaufania. 

Moja rada to znaleźć złoty środek. Jeśli masz problem i ktoś go już rozwiązał fajną biblioteką, to jej użyj. Jeśli potrzebujesz klienta HTTP, użyj Retrofit. Jeśli musisz często pobierać i zarządzać obrazkami, możesz w tym celu użyć Glide. To świetne, popularne i stabilne biblioteki. 

Wiedz jednak, że nie wszystkie biblioteki mają takie cechy. Zawsze sprawdzaj, kto jest autorem i, jeśli masz na to czas, prześledź kod źródłowy i postaraj się zrozumieć, jak dany problem został rozwiązany. 


Źródła

Android Arsenal ma sporą bazę danych z prawie wszystkimi możliwymi bibliotekami Androida.

3. Zacznij z prostym i przejrzystym UI

Jeśli pracujesz jako Android developer w dużej firmie, praca nad designem UI i UX przypadnie pewnie komuś innemu. Jeśli jednak pracujesz w startupie lub nad osobistym projektem, będziesz się musiał zająć i tym. I jeśli dobry interfejs jest wisienką na torcie dobrego produktu, to zły interfejs może go całkowicie zrujnować. 

Interfejs użytkownika jest jak żart - jeśli musisz go tłumaczyć, to znaczy, że jest do kitu” - Martin LeBlanc

Błędem, jaki często popełniałem, było umieszczanie zbyt wielu elementów w interfejsie. Użytkownicy są wtedy zagubieni, a estetycznie też to dobrze nie wygląda. Moja rada to prostota i przejrzystość. Staraj się tworzyć proste i przyjazne dla użytkowników interfejsy, zwłaszcza jeśli nie masz dużych umiejętności designerskich. Jeśli jednak takowe posiadasz, postaraj się go ulepszyć, aby bardziej zapadał w pamięć. 

Pamiętaj o tym, aby przetestować swój interfejs na urządzeniach o różnych rozmiarach i różnym dpi. Nie używaj stałych jednostek miary takich jak piksele, zwróć się raczej ku takim jak dp lub sp dla tekstu. 


Źródła 

  • Dribbble: kiedy nie wiesz jak zacząć, poszukaj inspiracji wśród tej społeczności.
  • Google Material Design: zestaw wytycznych, komponentów i narzędzi, które wspierają najlepsze praktyki projektowania interfejsów użytkownika. 
  • The Psychology of Everyday Things: dobra książka Dona Normana skupiająca się na koncepcji użyteczności w codziennym życiu

4. Dużo testuj 

Ile razy przyszła Ci do głowy taka myśl: “aplikacja została przetestowana na moim smartfonie i wszystko działa!”. Wiesz dobrze, że to nie wystarczy. Być może skrócenie fazy testowej zaoszczędzi Ci kilka dni, ale może kosztować Cię kilka tygodni na produkcji. Dobrze przepracowana faza testów pomaga w sprawdzeniu stabilności, działania i funkcjonalności Twojej aplikacji przed jej wypuszczeniem. 

Jak testować? To dosyć szeroki temat. Istnieje wiele rodzajów testów i każdy z nich służy do czego innego. 

Poziomy testowania według Android Developers

Jak widać na powyższej ilustracji, można zidentyfikować trzy rodzaje testów:

  • Testy jednostkowe: sprawdzają zachowanie aplikacji klasa po klasie.
  • Testy integracyjne: sprawdzają każdą interakcję między poziomami stosu wewnątrz modułu albo interakcje między powiązanymi modułami.
  • Testowanie graficznego interfejsu użytkownika: sprawdza zachowanie i płynność interfejsu


W oparciu o konkretny przykład użycia Twojej aplikacji musisz zdecydować, jak dużo trzeba dany test przeprowadzić. 

Sprawdzona metoda sugerowana przez Google to podzielić swoje testy w następujący sposób: 70% testów to testy jednostkowe, 20% testów to testy integracyjne, a 10% testów to testowanie graficznego interfejsu użytkownika.


Źródła

  • Test apps on Android: wszystko, czego potrzebujesz do przetestowania swojej aplikacji.
  • TDD on Android: sesja wideo na temat test-driven development z Google I/O w 2017 roku. 

5. Android Studio to Twój najlepszy przyjaciel

Z pewnością już go używasz, ale czy wystarczająco wykorzystujesz jego potencjał? Istnieje wiele narzędzi wbudowanych w Android Studio, które pomogą Ci rozwinąć swoją aplikację. Oto te, których ja najczęściej używam: 

  • Emulator urządzenia jest używany do przetestowania zachowania Twojej aplikacji na różnych urządzeniach z różnymi wersjami Androida. 
  • APK Analyzer analizuje rozmiar aplikacji przez inspekcję zawartości APK.
  • Realtime Profilers analizują rzeczywiste zużycie procesora, pamięci i sieci. 
  • Firebase Assistant połączy aplikację z Firebase i doda wszystkie jego usługi, których akurat potrzebujesz. Wystarczy kilka kliknięć.
  • Vector Asset Studio sprawia, że łatwo jest stworzyć nowy obraz dla każdej gęstości ekranu. 


Android Studio ma też funkcję, która pozwala na zmianę Waszego PC w grzejnik :) 


Źródła

Zobacz więcej w instrukcji Android Studio.

6. Używaj Git. Zawsze. 

Git to system kontroli wersji i można z nim zrobić dwie świetne, lecz bardzo podstawowe rzeczy: śledzić zmiany w plikach i upraszczać pracę nad dużymi projektami z wieloma programistami. 

Nie rozumiem, dlaczego muszę używać Git. Mogę po prostu zrobić kopię zapasową mojego projektu - Ja, sprzed trzech lat


Powiem Wam teraz coś, co sam chciałbym usłyszeć trzy lata temu: potrzebujesz Gita, ponieważ może on radykalnie polepszyć Twój workflow. Dlaczego? Oto powody: 

  • Twój kod źródłowy jest bezpiecznie przechowywany w chmurze i masz do niego dostęp z każdego miejsca. 
  • Wszystkie poprzednie wersje Twojego kodu też są dostępne. Możesz przełączyć się na starsze wersje i wrócić do nich, jeśli coś pójdzie nie tak. 
  • Praca zespołowa jest prostsza. Każdy programista może pracować nad równoległą częścią projektu i łączyć zmiany, gdy zachodzi taka potrzeba. 
  • Możesz mieć wkład w tysiące projektów open-sourcowych. 
  • Z platformami takimi jak GitHub albo BitBucket masz możliwość tworzenia i chwalenia się swoim portfolio. 


Jest tego jeszcze więcej, ale mam nadzieję, że powyższe powody Ci wystarczą. Więc jeśli wydaje Ci się, że nie potrzebujesz Gita, to się mylisz. 


Źródła:

Instrukcje na Github i BitBucket.

7. Używaj checklisty przy wydawaniu produktu

Nadchodzi czas, kiedy wydaje Ci się, że możesz wydać swoją apkę. Ale czy na pewno jest ona gotowa? Na takim etapie pośpiech jest niewskazany i lepiej jest zadać sobie kilka pytań: 

  • Czy usunąłem/am kod debugujący?
  • Czy odpowiednio przetestowałem/am mój produkt?
  • Czy zaktualizowałem/am nazwę i kod wersji w Gradle?
  • Czy włączyłem/am Proguard by obfuskować kod APK?
  • Czy zlokalizowałem/am swoją aplikację?
  • Czy przygotowałem/am swoje konto deweloperskie na Google Play?


Jeśli odpowiedź na każde z powyższych pytań jest twierdząca, to możesz iść dalej. Sugeruję wygenerowanie Android App Bundle zamiast APK do optymalizacji rozmiaru zasobów swojej aplikacji. 

Po publikacji na Google Play, sprawdźcie feedback od użytkowników i wszystkie dane analityczne. Bardzo to pomoże przy ulepszaniu aplikacji. 


Źródła:

Oto świetna checklista stworzona przez Android Developers

W taki sposób dotarliśmy do końca. Oto najważniejsze rzeczy, których nauczyłem się programując Androida. Wiem jednak, że można się jeszcze o wiele więcej nauczyć.

Oryginał tekstu w języku angielskim możesz przeczytać tutaj.

<p>Loading...</p>