Blog ARTNOVA
Dziękujemy za subskrypcję.
Na podany adres email zostało wysłane potwierdzenie zapisu.
OK
Tworzenie aplikacji internetowej – jaką wybrać technologię?
Blog ARTNOVA
  • Home
  • UX Blog
  • Tworzenie aplikacji internetowej – jaką wybrać technologię?

Tworzenie aplikacji internetowej – jaką wybrać technologię?

Web design
Artur Kruk
Audyt UX Manager

Nie musisz być informatykiem, żeby wcześniej czy później zetknąć się z tematem „tworzenie aplikacji internetowej”. Chcesz zlecić wykonanie firmowej strony albo sklepu i… pierwszy krok może być trudny. Bo jeśli nie jesteś programistą, problemem może być zrozumienie pytań potencjalnego wykonawcy. Nawet tych najprostszych, typu: „na czym Ci to postawić?”.
W artykule przybliżę podstawowe terminy i technologie służące do budowania aplikacji webowych. Podpowiem też na co zwrócić uwagę dokonując wyborów i pokażę co może się stać, jeżeli wybór nie będzie przemyślany.

 

Co to są aplikacje internetowe

Uważasz, że chociaż korzystasz ze smartfona i laptopa, to aplikacje webowe omijasz dużym łukiem? Bo nie masz czasu na gry i komputer służy do pracy? No to jesteś w dużym błędzie. Aplikacje internetowe otaczają Cię w wirtualnej rzeczywistości z każdej strony.

 

Formalnie rzecz biorąc, aplikacja webowa, to program zainstalowany na serwerze, którego używasz posługując się urządzeniem (smartfonu, tabletu, laptopa, komputera PC) mającym dostęp do Internetu. Bardzo często nie musisz niczego instalować na urządzeniu, ponieważ korzystasz z aplikacji za pośrednictwem przeglądarki internetowej.

Typy aplikacji webowych

Rodzajów aplikacji internetowych jest wiele. Począwszy od stron internetowych, po dedykowane rozwiązania służące do wykonywania konkretnych czynności. Poniżej przedstawiam listę popularnych typów aplikacji.

Strony internetowe

Statyczne lub tworzone dynamicznie witryny informacyjne, dotyczące na przykład firmy, organizacji, projektu lub tematu, bądź tematyki. Pozwalają na przeglądanie zawartości, opcjonalnie umożliwiają zapis do newslettera i inne proste operacje.

 

Jeśli chcesz się dowiedzieć więcej o różnorodności stron w sieci, sprawdź artykuł Rodzaje stron internetowych.

Serwisy społecznościowe

Aplikacje tworzone i udostępniane w celu umożliwienia interakcji między użytkownikami. Pozwalają na zakładanie konta i zarządzanie nim, udostępnianie treści przez korzystających, tworzenie grup, wyszukiwanie informacji oraz komunikację z innymi osobami.

Sklepy internetowe

Dedykowane aplikacje służące do prezentowania i umożliwiania zakupu produktów. Z reguły wyposażone w rozbudowaną funkcjonalność wyszukiwania i sortowania treści, często zintegrowane z aplikacjami zewnętrznymi (np. do obsługi płatności).

 

Jeśli zastanawiasz się nad wyborem odpowiedniej platformy dla swojego biznesu online, sprawdź artykuł Jaką platformę wybrać dla sklepu internetowego.

Aplikacje dla biznesu

Należą do nich na przykład systemy do zarządzania bazą klientów i kontaktów z nimi (CRM – Customer Relationship Management, czyli zarządzanie relacjami z klientami), lub systemy do zarządzania produkcją, logistyką, księgowością (ogólnie rozwiązania ERP – Enterprise Resource Planning, czyli zarządzanie zasobami przedsiębiorstwa). Aplikacje tego typu pozwalają zalogowanym użytkownikom na spersonalizowane wprowadzanie, korzystanie i przetwarzanie danych (np. wprowadzanie informacji o leadzie, planowanie terminu spotkania, przypisywanie do klienta zrealizowanych transakcji itp.)

Serwisy edukacyjne

Aplikacje webowe umożliwiające zdalnym użytkownikom korzystanie z różnego rodzaju prezentacji i materiałów dydaktycznych, kursów, szkoleń. Oferują zróżnicowaną funkcjonalność dla nauczycieli oraz uczniów. Pierwszym pozwalają m.in. wprowadzać informacje i nadzorować proces nauki. Drugim umożliwiają personalizowany dostęp do materiałów, ankiet, komunikatorów etc.

Aplikacje usługowe

Wszelkiego rodzaju serwisy udostępniające wyspecjalizowaną funkcjonalność. Na przykład systemy rezerwacji (hotele, służba zdrowia i in.) czy zaawansowanego przeglądu i wyszukiwania danych (np. biblioteki).

Rozwiązania hybrydowe

Przedstawiony podział aplikacji webowych to klasyfikacja wzorcowa. W rzeczywistości rozwiązania często się łączą lub przenikają. Proste strony firmowe, ale także na przykład portale informacyjne, prowadzić mogą w pewnym zakresie sprzedaż, lecz trudno je zakwalifikować do sklepów. Strona firmowa umożliwia w płynny sposób przejście ze strony głównej do systemu obsługi kadrowej i użytkownik może nawet nie zdawać sobie sprawy, że korzysta już z innej aplikacji (modułu HR aplikacji ERP).

Definicje pojęć

Zanim jednak zacznę wymieniać i nieco przybliżać tajemnicze nazwy, krótkie wprowadzenie. Jak już wiesz, aplikacja webowa to oprogramowanie na serwerze i przeglądarka lub dedykowany program na Twoim urządzeniu. W świecie informatyki to jednak dwa światy.

Frontend i backend – co to znaczy?

Wszystko co dzieje się po Twojej stronie, na Twoim laptopie, w Twojej przeglądarce określa się mianem frontendu. Technologie frontendowe są więc odpowiedzialne za prezentację interfejsu użytkownika, czyli wszystkiego, co widzi i może zrobić osoba posługująca się aplikacją jako klient.

 

Drugi obszar, nazywany backendem, związany jest z serwerem. Technologie backendowe odpowiadają za zarządzanie serwerem i komunikację z bazą danych oraz za przetwarzanie i przechowywanie danych.

Języki programowania, biblioteki i frameworki – co jest czym?

Oprogramowanie – zarówno frontendowe, jak i backendowe – tworzone jest z wykorzystaniem języków oprogramowania, czyli elementarnych poleceń, przy pomocy których programista definiuje sposób działania aplikacji. Nie oznacza to jednak, że każdy deweloper, każde działanie programu pisze „od początku”, korzystając bezpośrednio z poleceń danego języka.

 

Typowe operacje zapisywane są w postaci funkcji i procedur, pogrupowanych w biblioteki. Zdecydowana większość programistów korzysta w pracy z bibliotek, nie wiedząc i nie analizując jak zbudowane są poszczególne funkcje. Biblioteki gromadzą z reguły funkcje związane z jednym rodzajem działania, np. z prezentacją danych w postaci wykresów. Funkcje w takiej bibliotece dotyczą m.in. formatowania wyglądu linii wykresu, czyli określania jej grubości i koloru, tworzenia skali liniowej na podstawie wartości prezentowanych na wykresie itp.

 

Deweloperzy korzystają również z frameworków, czyli rozbudowanych środowisk programistycznych. Środowiska takie powstały i są stosowane w celu przyspieszenia, ułatwienia i ustandaryzowania tworzenia oprogramowania. W skład frameworków wchodzą narzędzia (edytory, repozytoria), zestawy bibliotek programistycznych oraz bardziej złożone wzorce realizujące typowe powtarzalne czynności (np. logowanie do systemu).

 

infografika: Tworzenie aplikacji internetowej - jaką wybrać technologię.
Infografika: Tworzenie aplikacji internetowej – jaką wybrać technologię.

 

Aplikacje internetowe – najpopularniejsze technologie

Technologie front-endowe

Oto kilka powszechnie wykorzystywanych technologii niezbędnych do tworzenia klienckiej strony aplikacji webowych:

  • HTML – język znaczników, służy do definiowania struktury i zawartości strony internetowej,
  • CSS – język do tworzenia arkuszy stylów, odpowiedzialnych za wygląd i układ elementów interfejsu,
  • JavaScript – język programowania, którego używa się, aby stworzyć na stronie elementy interaktywne, takie jak animacje i efekty wizualne, czy formularze,
  • React – framework JavaScript, który pozwala tworzyć interaktywne interfejsy aplikacji webowych,
  • Angular – kolejny framework JavaScript, pozwalający m.in. zarządzać stanem aplikacji i przełączaniem między widokami
  • Vue – inny popularny framework JavaScript, który umożliwia łatwą integrację z innymi bibliotekami i narzędziami oraz pozwala na tworzenie skalowalnych aplikacji.

Technologie back-endowe – czym są?

Powszechnie znane i używane technologie do programowania serwerowej części aplikacji webowej, odpowiedzialnej za przetwarzanie i przechowywanie danych:

  • PHP – język programowania służący m.in. do generowania dynamicznych treści na stronach (formularzy, tabel, komunikatów) oraz kodowania skryptów odpowiedzialnych za przetwarzanie danych i obsługę plików,
  • Node.js – platforma programistyczna, pozwalająca na budowanie aplikacji JavaScript po stronie serwera oraz kodowanie aplikacji desktopowych (lokalnych), dobrze sprawdza się w obsłudze wielu jednoczesnych połączeń (jak w czatach),
  • Python – język programowania, pozwalający m.in. na przetwarzanie danych w czasie rzeczywistym,
  • Laravel – framework dla języka PHP, który oferuje wiele funkcji, takich jak baza danych, czy system autoryzacji,
  • Ruby on Rails – framework dla języka Ruby, dostarczający wiele funkcji obsługi bazy danych, zarządzania zasobami serwera i innych,
  • ASP.NET – framework dla języka C#, który oferuje bogaty zestaw funkcji bezpieczeństwa, takich jak uwierzytelnianie i autoryzacja, zapewniających ochronę aplikacji przed nieuprawnionym dostępem.

WordPress

Zapewne wielu programistów w tym momencie głośno protestuje. „Wordpress to przecież tylko CMS!” (Content Management System, czyli system do zarządzania treścią). „Jak można stawiać go w jednym rzędzie z Reactem, albo Angularem???” „To nie jest żadna technologia, to tylko program z wtyczkami!”.

 

Być może tak, ale… Najbardziej rozpowszechnionym rodzajem aplikacji webowej jest strona www. Szacuje się, że na świecie jest około 200 milionów aktywnych witryn (https://techjury.net/blog/how-many-websites-are-there/). Według różnych szacunków do stworzenia 40-60% stron został wykorzystany WordPress (https://www.wpbeginner.com/beginners-guide/ultimate-list-of-wordpress-stats-facts-and-other-research/). Dla mnie liczby mówią same za siebie. Myśląc o firmowej stronie, e-sklepie, czy innym systemie webowym trzeba wziąć pod uwagę również WordPress. Nawet jeśli to „niepoważna” technologia i ma swoje ograniczenia na przykład związane z wydajnością.

 

Po długim wstępie kilka słów o tym czym jest Wordpress i na co pozwala. Jest to najpopularniejszy system CMS. Umożliwia łatwe zarządzanie treścią na stronie internetowej. Pozwala na umieszczanie i modyfikację tekstów, zdjęć, filmów bez konieczności znajomości języków oprogramowania. Oczywiście samo stworzenie strony czy sklepu internetowego wymaga pracy deweloperów (często wymagającej zaawansowanych umiejętności), ale obsługa już niekoniecznie.

Wybór najlepszej technologii dla web developmentu – co warto wziąć pod uwagę

Jak poradzić sobie z wyborem technologii? Nie jest to trywialny problem. Szczególnie jeśli rozmawiasz z kilkoma potencjalnymi wykonawcami, którzy mają dziesiątki argumentów przemawiających za ich propozycją.

 

Poniżej umieściłem krótką listę czynników związanych z tworzeniem i utrzymaniem oprogramowania. Nawet jeśli nie dotyczą one bezpośrednio Ciebie jako zamawiającego wykonanie aplikacji, to mają wpływ na koszt, czas realizacji i ryzyka. Analiza wymienionych kwestii pomoże Ci dokonać wyboru technologii i wykonawcy Twojej strony, sklepu lub aplikacji webowej.

Cel i zakres projektu

Wybór technologii wynika w znacznym stopniu od rodzaju i skali aplikacji webowej. Rozbudowany framework użyty do budowy strony-wizytówki to przerost formy nad treścią. Próba stworzenia zaawansowanej aplikacji obsługującej dziesiątki albo setki tysięcy użytkowników przy pomocy „czystego” CMS WordPress również ma ograniczony sens. Owszem można to zrobić, ale utrzymanie rozwiązania kosztuje dużo więcej niż na przykład w przypadku połączenia z frameworkiem React (Headless CMS).

Doświadczenie i umiejętności programistów

Ważne, aby zespół pracujący nad tworzeniem aplikacji w konkretnej technologii miał umiejętności i doświadczenie w korzystaniu z niej. To naprawdę warto sprawdzić, bo nauka na Twój koszt może bardzo podnieść cenę za gotową aplikację webową.

Bezpieczeństwo

Nawet jeśli do końca nie zrozumiesz zawiłych kwestii technicznych, dowiedz się czy wybrana technologia jest bezpieczna i posiada odpowiednie mechanizmy ochrony przed atakami hakerskimi i innymi zagrożeniami. Poszukaj co na ten temat „pisze się” w Sieci.

Skalowalność aplikacji

Wybierając technologię warto szukać takiej, która umożliwi łatwą rozbudowę aplikacji internetowej oraz ewentualną integrację z innymi systemami. Dobra decyzja może uchronić Cię przed koniecznością tworzenia za jakiś czas oprogramowania od nowa, przy użyciu innej technologii.

Łatwość zasilania w treści

Podejmując decyzję o technologii, w której będzie wykonana aplikacja dla Ciebie, sprawdź jak wyglądają aktualizacje treści i modyfikacje. Na przykład w przypadku stron internetowych warto zadbać o to, by proste zmiany nie wymagały każdorazowo ingerencji programistów.

Koszty

Umieszczone na końcu listy, ale mające w ostatecznym rozrachunku podstawowe znaczenie dla Twojego biznesu. Warto policzyć ROI uwzględniając minimum koszty pracy programistów, zakupu niezbędnych licencji (w tym subskrybowanych). Zdecydowanie warto zrobić to jeszcze przed przystąpieniem do tworzenia aplikacji.

 

Szukasz wykonawcy profesjonalnej strony WWW?

Prześlij brief i zamów bezpłatną wycenę

 

 

Konsekwencje niewłaściwego wyboru technologii do tworzenia aplikacji webowych

Skutki błędnego wyboru technologii mogą być problemami różnej skali. Od drobnych niedogodności w korzystaniu z aplikacji, przez duże opóźnienia w realizacji i przerwy w funkcjonowaniu, po zakończenie projektu bez stworzenia oprogramowania.

 

Patrząc na problemy z punktu widzenia funkcjonalności czy kosztów utrzymania aplikacji zawsze warto pamiętać o aspekcie biznesowym. Przykładowo niska wydajność sklepu internetowego, czyli długi czas wczytywania i filtrowania produktów, przekłada się na user experience. Wraz ze wzrostem dyskomfortu z korzystania ze sklepu przez użytkowników, spada współczynnik konwersji. Obniżają się więc również przychody i zyski.

Ograniczenia funkcjonalności

Niewłaściwy wybór technologii może sprawić, że nie będzie możliwe wyposażenie aplikacji we wszystkie funkcje określone w wymaganiach. Może też okazać się, że pełna realizacja oczekiwań jest nieproporcjonalnie droga lub wymaga tworzenia dodatkowych, niestandardowych rozwiązań.

Niska wydajność

Błędnie dobrana technologia może prowadzić do niskiej wydajności aplikacji. To z kolei oznacza wolniejsze ładowanie i utrudnione interakcje systemu z użytkownikami.

Problemy z bezpieczeństwem

Zastosowanie rozwiązań podatnych na ataki hakerskie i inne zagrożenia bezpieczeństwa może wiązać się z utratą kluczowych danych przedsiębiorstwa. W skrajnie niekorzystnym scenariuszu może to prowadzić do upadku biznesu.

Trudności w utrzymaniu

Wybrana technologia, zaprojektowana architektura aplikacji oraz sposób implementacji mogą utrudniać utrzymanie rozwiązania oraz naprawę ujawnionych błędów. W efekcie obsługa techniczna działającego systemu może wiązać się ze znacznymi kosztami i problemami organizacyjnymi.

Problemy z skalowalnością

Niepoprawne oszacowanie liczby użytkowników lub brak planu rozwoju funkcjonalności aplikacji webowej w czasie często prowadzą do wyboru technologii uniemożliwiającej lub utrudniającej rozwój systemu. W efekcie trzeba tworzyć rozwiązania zastępcze pozwalające na obsługę dużej liczby użytkowników.

Wysokie koszty

Wybór przewymiarowanej w stosunku do rzeczywistych potrzeb technologii niemal zawsze skutkuje nadmiernymi wydatkami. Wiążą się one przede wszystkim z utrzymaniem zespołu specjalistów oraz opłatami za licencje, a także w niektórych sytuacjach za platformę sprzętową lub hosting.

Podsumowanie

Mam nadzieję, że deweloperzy podsumują artykuł w stylu „no, z grubsza tak, ale… [tu długi ciąg argumentów za i przeciw poszczególnym technologiom, skrótom w opisach i uproszczeniom]”. Jeśli się nie udało to jakoś będę musiał z tym żyć, ale wierzę, że trochę pomogłem nie-informatykom. Przede wszystkim pomogłem zrozumieć co jest czym w świecie technologii aplikacji internetowych, o co pytać potencjalnych wykonawców strony lub sklepu, czego dopilnować. Przynajmniej w pierwszym przybliżeniu.

Podobne wpisy

05.10.2021 5 października 2021
User eXperience (UX)

Mierniki UX – jak mierzyć poziom satysfakcji użytkowników?

Audyt UX Manager
Od ponad dwudziestu pięciu lat aktywnie zaangażowany w tworzenie i sprzedaż profesjonalnych rozwiązań IT. Doświadczony analityk biznesowy oraz koordynator i menedżer projektów. Prywatnie miłośnik klasycznej literatury science-fiction i gier logicznych.
Blog ARTNOVA
Poszerzaj z nami swoją wiedzę na temat UX
Zasubskrybuj nasz newsletter
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments