Rozpoczynając tworzenie większości aplikacji mobilnych, musimy zastanowić się nad wyborem technologii w jakiej zostanie napisany backend, zaprojektować bazę danych, działanie API itd. Co jeśli moglibyśmy pominąć te wszystkie kroki? Tu właśnie wkracza Google, ze swoim Firebase.
Z backendem w chmurach
Firebase, to tak zwana usługa Backendu (z angielskiego Backend as a Service – BaaS). Oferuje ona szereg usług pozwalających twórcom aplikacji implementować podstawowe funkcjonalności natychmiastowo, bez potrzeby tworzenia własnego backendu. Ponadto, większość z usług jest oferowana za darmo!
Korzystanie z tego rozwiązania ma wiele zalet, które sprawi, że praktycznie zerowym nakładem czasu, możemy cieszyć się z pełnej funkcjonalności backendu w naszej aplikacji. Zanim przejdziemy do omówienia najciekawszych z usług oferowanych przez Firebase, przyjrzyjmy się jak zaimplementować BaaS od Googla w naszej aplikacji.
Ogień w aplikacji
Implementacja Firebase jest bardzo prosta, co należy policzyć na wielki plus. Omówimy ją krótko na przykładzie języka Java z frameworkiem Androida. Nie jest to jednak jedyny dostępny język, w którym możemy wykorzystywać funkcjonalności Firebase. W dokumentacji, znajdziemy także poradniki implementacji dla aplikacji napisanych w m.in. Swift, C++, czy Unity. Przejdźmy więc do krótkiego omówienia jak wygląda dodawanie Firebase do naszej aplikacji.
Pierwszym krokiem, który musimy wykonać, jest zarejestrowanie naszej aplikacji w konsoli Firebase, podając ID aplikacji (com.company.appname). Następnie potrzebujemy pobrać wygenerowany plik konfiguracyjny google-services.json i dodać go do projektu. By móc korzystać z odpowiednich bibliotek, musimy również dodać odpowiednie zależności do Gradle i… to tyle! Jesteśmy już w stanie korzystać z usług Firebase. By używać chociażby Google Analitics, wystarczy stworzyć odpowiedni obiekt:
1 |
private FirebaseAnalytics mFirebaseAnalytics; |
1 2 |
//W funkcji OnCreate mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); |
Po wklejeniu tych dwóch linii kodu, Google Analitics będzie automatycznie zbierał informacje o aktywności użytkowników w naszej aplikacji!
Integrację można Firebase, można uprosić do wręcz jednego kliknięcia! Osiągniemy to, korzystając z asystenta Firebase w Android Studio. Przeprowadzi on praktycznie całą implementację za nas.
Jeśli potrzebujecie bardziej precyzyjnych informacji, odsyłam do dokumentacji Firebase dla Androida, którą znajdziecie tutaj.
Budowa aplikacji
Po szybkim omówieniu, jak dodać Firebase do naszej aplikacji, popatrzmy jakie dobrodziejstwa oferuje.
Cloud Firestore
Jest to jedna z najpopularniejszych oraz najważniejszych funkcjonalności Firebase. Cloud Firestore, to baza danych NoSQL, będąca swego rodzaju następcą Realtime Database. Jej struktura oparta jest na kolekcjach i dokumentach. Poniżej znajdziecie przykładowy kod pokazujący w jaki sposób tworzone są kolekcje i dokumenty:
1 2 3 4 5 6 7 8 9 10 |
CollectionReference cities = db.collection("cities"); Map<String, Object> data1 = new HashMap<>(); data1.put("name", "San Francisco"); data1.put("state", "CA"); data1.put("country", "USA"); data1.put("capital", false); data1.put("population", 860000); data1.put("regions", Arrays.asList("west_coast", "norcal")); cities.document("SF").set(data1); |
Źródło: https://firebase.google.com/docs/firestore/query-data/get-data
Cloud Firestore to nie tylko baza danych NoSQL, oferuje ona także wiele ciekawych udogodnień: automatyczna synchronizacja danych w chmurze; wsparcie dla lokalnego przechowywania danych, pozwalające aplikacji na działanie w trybie offline; zautomatyzowane skalowanie bazy danych i wiele więcej.
Cloud Storage
Jest to magazyn w chmurze, cechujący się m.in. łatwością w użyciu i zautomatyzowaną kontrolą przesyłania oraz pobierania plików przez sieć – w przypadku zerwania połączenia, przesyłanie zostanie zatrzymane, a po ponownym połączeniu wznowione. Wyróżnia się też wysokim poziomem bezpieczeństwa przechowywanych danych.
Authentication
Firebase, to nie tylko obsługa plików oraz baz danych. Może on także zająć się autentykacją użytkowników, korzystających z Twojej aplikacji. Usługa oferuje kompleksowe rozwiązanie w zakresie identyfikacji tożsamości użytkownika, pozwalając na logowanie się nie tylko przy użyciu klasycznego loginu i hasła, lecz również kont Google, Facebook, Twitter, czy GitHub. Google, jest znane ze swoich rozwiązań w dziedzinie cyber-bezpieczeństwa, tak więc również Firebase wyróżnia się kompleksowymi zabezpieczeniami.
Cloud Functions
Jeśli potrzebujesz serwera, który ma odpowiadać również za logikę twojej aplikacji, Firebase i w tym przypadku Ci pomoże. Cloud Functions uchroni Cię przed potrzebą samodzielnego tworzenia, utrzymywania oraz skalowania własnego backendu. Jedyne co potrzebujesz zrobić, to samodzielnie napisać swoje funkcje w Node.js. Będą one automatycznie uruchamiane przez inne usługi Firebase. Przykładowo, po przesłaniu zdjęcia do Cloud Storage przez użytkownika, możesz przetworzyć je przy użyciu właśnie Cloud Functions. Pozwala to połączyć pozostałe funkcjonalności, według własnych potrzeb.
Cloud Messaging
Usługa ta pozwala na wysyłanie użytkownikom, wiadomości oraz powiadomień na ich urządzenia. Do dyspozycji mamy mechanizmy pozwalające na tworzenie grup docelowych dla wysyłanych powiadomień oraz dostosowanie ich treści.
Jakość aplikacji
Jak wiadomo, nie samym wdrażaniem nowych funkcjonalności programista stoi – bugi to chleb powszedni. Każde narzędzie ułatwiające walkę z nimi, jest zawsze mile widziane. Na tym polu Firebase również dorzuca swoje trzy grosze.
Crashlitics
Pierwszą z usług, która ułatwia dbanie o jakość aplikacji, to Crashlitics. Jest to system pozwalający na śledzenie wszelakich błędów w twojej aplikacji, które występują na urządzeniach użytkowników. Po pierwsze, Crashlitics automatycznie wysyła raporty o błędach w czasie rzeczywistym, dzięki czemu stale jesteśmy na bieżąco z funkcjami aplikacji, które potrzeba poprawić. Ponadto usługa ta pozwala na filtrowanie i kategoryzowanie błędów oraz udostępnia logi błędów z urządzenia, co znacząco ułatwia poznanie przyczyn błędu.
Test Lab
Kolejną ciekawą usługą jest Test Lab. Oferuje on możliwość uruchamiania zautomatyzowanych testów, na fizycznych oraz wirtualnych urządzeniach. Uważam, że dla początkującego developera, jest to jedna z ciekawszych funkcjonalności Firebase. Pozawala ona w prosty sposób wyłapywać błędy, chociażby poprzez uruchamianie tzw. „testu małpy”, w którym program wciska wszystkie możliwe przyciski dostępne w aktywnościach aplikacji i wpisuje w pola tekstowe, podane przez nas dane. Ponadto test ten nie potrzebuje dodatkowego pisania kodu, wystarczy jedynie wrzucić plik apk. Po wykonaniu takiego testu, generowane są raporty o napotkanych błędach wraz z logami oraz tworzone są diagramy aktywności, pokazujące przejścia między aktywnościami. Nie raz pozwoliło mi to, wyłapać błąd o którego istnieniu nie miałem pojęcia.
Rozwój aplikacji
Firebase, to nie tylko ułatwia samo tworzenie aplikacji, lecz również śledzenie aktywności użytkowników. Służy do tego Google Analitics, które pozwala na tworzenie wydarzeń powiązanych z korzystaniem z aplikacji. Firebase jest również zintegrowany z AdMob oraz Google Ads, co pozwala na proste zarządzanie reklamami w aplikacji oraz kampaniami marketingowymi w innych serwisach.
Podsumowanie
Wymienione powyżej usługi, to nie wszystko co ma do zaoferowania Firebase, jest tego znacznie więcej! Ponadto produkt ten jest stale rozwijany, o czym świadczy chociażby zaprezentowany jakiś czas temu ML Kit – Biblioteki do uczenia maszynowego dla aplikacji mobilnych.
Firebase to z pewnością ciekawa usługa, która może przypaść do gustu wielu deweloperom. Nie dość, że pozwala ona uprościć proces produkcyjny aplikacji, to pomaga również w utrzymaniu jakości produktu. Jeśli jesteście gotowi na rozpoczęcie przygody z Firebase, zapraszam was do zapoznania się z dokumentacją i życzę wam przyjemnego tworzenia aplikacji 😊.
Jeżeli chcecie dowiedzieć się więcej o podstawowych narzędziach dla deweloperów, zapraszam Was do poniższego artykułu.