Każdy produkt cyfrowy składa się z kilku warstw, elementów. Nie ważne czy jest to aplikacja webowa, mobilna, desktopowa. Na pewno znajdziesz w niej UI/UX, Frontend, Backend czy jakiegoś typu infrastrukturę. Żeby łatwiej Ci wyjaśnić czym są te poszczególne warstwy będę się posługiwał analogią domu. Dlatego że dom jako budynek mieszkalny i proces powstawania, budowy domu jest bardzo zbliżony do procesu powstawania produktu cyfrowego. W dodatku dom jest czymś fizycznym, namacalnym. Łatwo nam sobie wyobrażać różne aspekty z domem związane. Produkt cyfrowy to jest coś kompletnie wirtualnego, dlatego analogia procesu budowlanego pomoże nam sprowadzić kilka zagadnień na ziemię.
Z jakich elementów składa się aplikacja, produkt cyfrowy?
Spis treści
ToggleDesign
Budujesz dom. Pierwsze co robisz jak już masz jakiś pomysł, wyobrażenie tego, gdzie i jak chcesz mieszkać, no to idziesz do architekta. Tym architektem w kontekście powstawania produktu cyfrowego jest UX Designer. To jest osoba, która pomoże Ci zaprojektować plan poszczególnych pięter, tego gdzie jest jakie pomieszczenie, jakie funkcje są w tych pomieszczeniach dostępne. W aplikacji webowej to mogą być podstrony, a w mobilnej ekrany. UX Designer zaprojektuje więc w jakim pomieszczeniu mamy łóżko (funkcja spania w domu), prysznic (funkcja kąpieli) czy z jakiego pomieszczenia dostaniemy się do kuchni. Ponieważ rozmawiamy o kwestiach kompletnie wirtualnych, to UX Designer będzie chciał nam przedstawić koncept nad którym pracuje, tak żebyśmy mogli sobie łatwiej wyobrazić jak ten produkt końcowy może wyglądać. I tutaj będzie posługiwał się takimi narzędziami jak wireframe’y. To są takie bardzo proste, czarno-białe ekrany aplikacji. Służą temu, żebyśmy mogli zrozumieć co na jakim ekranie, jaka funkcjonalność, jaka informacja będzie dla użytkownika dostępna. Następnie w procesie najczęściej pojawia się potrzeba tego, żeby jeszcze dokładniej zobrazować to, jak użytkownik końcowy będzie wchodził w interakcję z systemem. Do tego wykorzystuje się mockupy. To już są takie wizualizacje poszczególnych ekranów, poszczególnych podstron, w które można wejść, kliknąć. Najczęściej są w nich predefiniowane jakieś proste operacje, funkcjonalności. Np. są trzy scenariusze, które możemy w takich mockupach wykonać. Przejść z tego ekranu na ten. Zamówić produkt w aplikacji zakupowej w ramach testowego scenariusza etc. Mockupy zawierają już jakieś elementy graficzne, kolorystykę naszej przyszłej aplikacji, więc łatwiej nam sobie wyobrazić ten produkt końcowy.
No i na tym etapie w przypadku budowy domu zapraszamy już bardzo często projektanta wnętrz. Jeżeli chodzi o produkt cyfrowy będzie to UI Designer. Osoba odpowiadająca za interface, za design aplikacji, systemu. Czyli to jak poszczególne assety wyglądają, gdzie są rozmieszczone na ekranie, jakie elementy mamy na każdym z ekranów dostępne. Oczywiście w praktyce najczęściej będzie to jedna i to sama osoba, która po prostu ma kompetencje w obu tych obszarach.
Infrastruktura aplikacji
Jak już mamy koncept, pomysł na to, wizualizację tego jak ten system, jak ten dom będzie miał wyglądać, to najpierw potrzebujemy fundamentu. No i tym fundamentem w przypadku produktów cyfrowych jest infrastruktura. Może być albo cloudowa albo on-premise’owa. Infrastruktura cloudowa oznacza tyle, że do osadzenia naszej przyszłej aplikacji korzystamy z rozwiązań dostarczonych nam przez producentów rozwiązań chmurowych, takich jak Amazon Web Services – AWS, jak Microsoft Azure czy GCP – Google Cloud Platform. Dokładnie o tym czym jest Cloud Computing przeczytasz w artykule “Cloud Native Development & Computing – co to? Intro, warstwy, zalety i wady”.
Na potrzeby tego artykułu ważne jest to, że mamy zewnętrznego dostawcę. Daje on nam gotowe elementy do budowy fundamentu, na którym później możemy osadzać naszą aplikację czy nasz budynek. Alternatywą dla tego rozwiązania jest on premise, czyli ta ścieżka, w której decydujemy się samemu stworzyć fundament i zajmować się jego utrzymaniem. Czyli jak to się w świecie IT zwykło mawiać, trzymamy to rozwiązanie u siebie na serwerze w piwnicy.
Backend
Dalej musimy zacząć myśleć o wszystkich instalacjach, bazowych elementach budynku. Czyli musimy mieć poprowadzoną wodę, gaz, prąd. Wszystkie instalacje jakich potrzebujemy do poszczególnych pomieszczeń w zależności od ich funkcji. No i to można przełożyć na produkt cyfrowy jako warstwę backendową. To jest cała logika aplikacji. Z którego pomieszczenia będą dostępne jakie instalacje? Z którego ekranu będą dostępne jakie dane, jakie funkcjonalności? Musimy mieć w kuchni dostępną wodę. Jeżeli mamy piec gazowy, musi mieć dostępny gaz. Jeżeli mamy w aplikacji ekran, który odsyła nas do zrobienia zdjęcia, logika aplikacji musi nam umożliwić przejście do aparatu. Więc backend to jest coś, co zapewnia nam od strony logicznej dostęp do potrzebnych funkcjonalności.
Specjaliści zajmujący się tym obszarem to Backend Developerzy czy Backend Inżynierowie. Będą obsługiwać takie technologie, języki programowania jak Java Script, w ostatnim czasie bardzo bardzo popularny, jak JAVA, jak Ruby, jak C#, jak Go Lang, jak Python. Oczywiście jest ich znacznie więcej.
Frontend
Mamy już fundament, mamy nasze instalacje, mamy ściany tego budynku, no i teraz wchodzimy w warstwę frontendową. Frontend, czyli wszystko to, z czym w interakcję może wejść użytkownik, czego może dotknąć, co może kliknąć. W przypadku domu będzie to całe wykończenie. Podłogi, ściany, wszystkie meble. W przypadku produktu cyfrowego wszystkie podstrony, ekrany, assety, przyciski, grafiki. Zwróć uwagę, że elementy Frontendowe wywołują Backendowe funkcje. Np. klikając konkretny przycisk na ekranie, przechodzisz do ustawień czy do innego miejsca aplikacji. Odkręcając wodę w kuchni korzystasz z instalacji wodno-kanalizacyjnej, czyli warstwy Backendowej. Frontend Deweloperzy, Frontend Inżynierowie to będą osoby operujące w takich technologiach jak Java Script (ponownie) ze wszystkimi swoimi frameworkami, jak CSS, jak HTML, jak Angular.
Aplikacje webowe, mobilne i desktopowe
Mamy już fundament, mamy ściany, instalacje, mamy wykończenie, więc w tym domu możemy mieszkać. Co więcej, do takich samych funkcji możemy mieć dostęp w różnych pomieszczeniach. Czyli łazienka może być i na parterze i na pierwszym i na drugim piętrze. Te poszczególne piętra są analogią aplikacji webowych, mobilnych i desktopowych. Czyli do tych samych danych możemy mieć dostęp poprzez różne interfejsy. Z łazienki możesz skorzystać na dole, możesz skorzystać na górze, jednak to w jaki sposób wchodzisz w interakcję z tymi danymi, z tym rozwiązaniem może być różne. Funkcjonalność może być ta sama, a może być też ograniczona. W łazience na piętrze możesz miesz i wannę i prysznic, a w łazience na parterze już tylko prysznic. Bo ta łazienka na górze została inaczej zaprojektowana. To już jest kwestia interfejsów, tego co producent oprogramowania chciał, żeby było dostępne w poszczególnych wariantach aplikacji.
Obejrzyj film: