Od początku istnienia sieci mamy do czynienia z różnymi stronami internetowymi, które początkowo miały formę statycznych HTML i pełniły funkcję tylko informacyjną. Ich treść była stała i aby uległa zmianie musiał na nią wpłynąć twórca. Od zawsze istniały również przeróżne aplikacje desktopowe, które musiały być osobno instalowane na komputerach. Z biegiem czasu i wraz z rozwojem technologii strony internetowe stały się bardziej dynamiczne, z kolei ich twórcy zyskiwali narzędzia i umiejętności, aby czerpać z nich więcej korzyści. Doszło więc do tego, że twórcy byli w stanie przenieść coraz więcej procesów i funkcjonalności ze standardowej aplikacji do strony internetowej, czyniąc z niej aplikację internetową (lub aplikację webową), które z powodzeniem realizuje potrzeby docelowego odbiorcy bez konieczności instalowania dodatkowego oprogramowania na komputerze użytkownika.
Aplikacje webowe i strony internetowe - różnice pod kątem oczekiwań
Surfując po Internecie natrafiamy na różne strony internetowe. Większość z nich pełni funkcję głównie informacyjną. Zaliczają się do nich wszelkie portale z aktualnościami, blogi czy też strony firmowe. Nie wymagają one od nas zbytniej interakcji, a ich głównym celem jest dostarczanie nam pożądanych danych.
Inaczej rzecz ma się w przypadku aplikacji internetowych, które oprócz przedstawienia nam informacji są gotowe na odebranie danych od nas oraz ich przetworzenie. Są to swego rodzaju programy komputerowe umieszczone na serwerze, które za pośrednictwem połączenia internetowego wymieniają dane pomiędzy siecią komputerową a hostem użytkownika komputera poprzez przeglądarkę internetową.
Otwierając dany adres w przeglądarkach internetowych na pierwszy rzut oka nie wiemy, z czym mamy do czynienia. Najprościej jednak rzecz ujmując w dużym skrócie – jeśli na stronie nie ma logowania, prawdopodobnie mamy do czynienia ze stroną internetową. Przykładami aplikacji internetowej są wszelkie media społecznościowe (np. Facebook, Instagram, Twitter), skrzynki pocztowe (np. Gmail) czy też bardziej rozbudowane aplikacje użytkowe jak Trello czy Slack.
Strona internetowa ma charakter informacyjny
Jeśli naszym głównym celem jest przekazanie użytkownikom pewnych informacji, np. aktualności lub naszej oferty, czyniąc ich biernymi odbiorcami, wystarczy nam do tego standardowa strona internetowa. Nawet jeśli wyposażymy ją w formularz kontaktowy oraz blog z systemem komentarzy, wciąż będziemy mieć do czynienia ze stroną. W przypadku systemu komentarzy może dojść do stworzenia pewnego uwierzytelnienia, lecz od strony programistycznej mówienie tutaj o aplikacji internetowej byłoby sporym nadużyciem. Samo logowanie daje nam możliwość jedynie umieszczania komentarzy (czyli też pewnych informacji) w żaden sposób jednak nie przetwarzając dalej naszych operacji.
Aplikacja webowa może zachęcać do interakcji
Aplikacjami webowymi (ang. web application) nazywamy serwisy, które oferują nam znacznie więcej niż standardowe strony internetowe. Posiadają swoje cechy charakterystyczne wyróżniające je na rynku. Najważniejsze atuty to:
- Brak konieczności instalacji aplikacji internetowej na komputerze użytkownika – wystarczy działająca przeglądarka.
- Uniwersalność jeśli chodzi o system operacyjny – jedna aplikacja internetowa działa pod każdym systemem (np. Windows, MacOS).
- Elastyczność wobec wszelkich urządzeń – dzięki responsive web design jesteśmy w stanie stworzyć jeden produkt, który będzie użyteczny zarówno dla desktopu, tabletu jak i smartfonu.
Stawia się tutaj na tzw. interakcje, czyli możliwość wprowadzenia przez użytkownika danych, które są przetwarzane po stronie aplikacji i zwracane odbiorcy, tworząc pewną nową wartość, której wcześniej nie było. Prostym przykładem są tutaj wszelkie konfiguratory online, dzięki którym klient może dopasować poszczególne elementy do siebie „wyklikując” szereg opcji. Aplikacja dzięki temu zwraca nam całkiem nowy produkt, który standardowo nie występuje.
Aplikacje webowe desktopowe
Same aplikacje webowe dzielą się na dodatkowe podtypy, jak chociażby aplikacje webowe desktopowe. Przykładem takiego rozwiązanie jest UXpin, który oprócz dostępu przez przeglądarkę udostępnia nam możliwość korzystania z aplikacji po kliknięciu w ikonkę. W rzeczywistości w tle uruchamiany jest i tak silnik przeglądarki, a my działając w obrębie jednego okna mamy uczucie korzystania z aplikacji desktopowych. Podobnie rozwiązały to niektóre systemy CRM, umożliwiając dostęp zarówno przez przeglądarkę jak i pulpit.
Aplikacje webowe mobilne
Standardowych aplikacji mobilnych na rynku jest mnóstwo. Ich stworzenie wymaga jednak znajomości odpowiednich języków programowania oraz muszą być pobrane i zainstalowane na telefonie. Istnieją jednak aplikacje, które są zarówno webowe (korzystające z przeglądarki) jak i mobilne (czyli dopasowane do charakterystyki naszych małych, przenośnych urządzeń). Mowa tutaj o PWA (Progressive Web Apps). Są to aplikacje webowe zbudowane przy użyciu najpopularniejszych technologii, czyli HTML, CSS i JavaScript. Dzięki temu że są webowe, można z nich korzystać na dowolnej platformie. Ich główną cechą jest to, że potrafią działać offline m.in. dzięki mechanizmowi Service Worker oraz korzystaniu z pliku manifestu. Dodatkowymi atutami jest możliwość stosowania powiadomień web push oraz fizyczny dostęp do urządzenia, który wzbogaca nam możliwości interakcji. Dzięki temu aplikacje PWA są zbliżone do ich natywnych odpowiedników. Nie ma potrzeby pobierania i instalowania dodatkowego oprogramowania z Google Play lub App Store. Przykładem użycia PWA są serwisy takie jak Pinterest, AliExpress, Twitter Lite czy też Forbes. Tutaj możesz znaleźć więcej informacji o tej technologii.
Różnice technologiczne między aplikacją webową a stroną internetową
Technologie wykorzystywane w aplikacjach webowych
Istnieje wiele technologii, które wykorzystywane są do projektowania aplikacji webowych. Pokrótce opiszemy te najbardziej popularne oraz te, które mają przed sobą najciekawszą przyszłość.
- Node.js – otwarte, wieloplatformowe środowisko wykonujące kod JavaScript poza przeglądarką, czyli server-side. Opracował je Ryan Dahla w 2009 roku. Firmy korzystające obecnie z Node.js to LinkedIn, PayPal, Netflix czy też Uber. Paradygmat "JavaScript everywhere" zawdzięcza swoje istnienie właśnie Node.js. Dzięki niemu twórcy mogą tworzyć aplikacje po stronie serwera i przeglądarki w jednym i tym samym języku.
- Django – popularny, otwarty framework napisany w Pythonie. Służy w głównej mierze do tworzenie aplikacji internetowych. Został opracowany w 2005 roku. Realizuje wzorzec Model-Template-View (MTV), który nawiązuje do popularnego MVC. Warto wiedzieć, że w Django napisane są takie serwisy jak Pinterest czy Instagram.
- PHP – jest to interpretowany skryptowy język programowania. Teoretycznie mógłby się znaleźć również w sekcji poświęconej technologiom wykorzystywanym przy stronach internetowych, ponieważ z powodzeniem można za jego pomocą stworzyć taką witrynę, której główna funkcja wciąż ma charakter informacyjny. Często stosowany do tworzenia wszelkich systemów CMS. Równocześnie nadaje się do tworzenia rozbudowanych aplikacji, korzysta z niego m.in. na rynku polskim Allegro. Został stworzony w 1994 roku przez Rasmusa Lerdorfa.
- Ruby on Rails – nazywany również RoR lub potocznie - Rails. Kolejny framework open sourcowy, stworzony tym razem przez Duńczyka Davida Heinemeiera Hanssona w 2004 roku. Został napisany w Ruby, korzystając z wzorca Model-View-Controller (czyli MVC). Aktualna, stabilna wersja to 6.0. Służy m.in. do tworzenia aplikacji webowych.
- ASP.NET - jest to platforma na licencji open source. Jej przeznaczenie to podobnie jak poprzedników z listy powyżej - tworzenie dynamicznych stron i aplikacji internetowych. Jest następcą technologii Microsoft Active Server Pages (ASP). Dzięki zastosowaniu CLR (Common Language Runtime) umożliwia twórcom pisanie kodu za pomocą dowolnego języka .NET. Technologia została opracowana w 2002 roku przez Microsoft.
- AngularJS – tym razem mamy do czynienia z otwartym frameworkiem spod znaku Google. Pierwsze wydanie miało miejsce w 2009 roku. Opiera się na wzorcu MVC i posiada swoją własną filozofię. Twórcy mieli opracowane konkretne wytyczne, w jakim celu tworzą AngularJS. Są to m.in. oddzielenie manipulacji w DOMie od logiki aplikacji, czy też oddzielenie warstwy klienckiej aplikacji od warstwy serwerowej.
- Vue.js – platforma JavaScript udostępniana na zasadzie open source, służąca tworzeniu interfejsów użytkownika i aplikacji internetowych. Została opracowana przez Evana You, obecnie rozwija ją m.in. polska firma Netguru.
- React – inaczej React.js lub ReactJS. Został stworzony przez Facebooka, a światło dzienne ujrzał w 2013 roku. Najprościej mówiąc jest to biblioteka JavaScript, za pomocą której możemy tworzyć interfejsy użytkownika. Z powodzeniem za pomocą React powstaną również nie tylko aplikacje internetowe, ale też aplikacje mobilne. Należy jednak pamiętać, że zaawansowane aplikacje wymagają zbudowania serwera, z którym będą wymieniać dane, np. poprzez socket.
- CGI – pisząc o technologiach wykorzystywanych w aplikacjach internetowych nie sposób nie wspomnieć o CGI (ang. Common Gateway Interface). Jest jedną z pierwszych tego typu usług, która pojawiła się na rynku i z powodzeniem działa do dnia dzisiejszego. Często stosowany do obsługi zdalnej wszelkich routerów. W praktyce jest to protokół dla serwera WWW służący do uruchomiania programów w konsoli. Takie programy nazywamy skryptami CGI lub po prostu - CGI. Efektem ich działania jest dynamiczne wygenerowanie strony dla użytkownika. Jego początki miały miejsce już w 1993 roku w National Center for Supercomputing Applications (NCSA).
- JSP – technologia umożliwiająca tworzenie dynamicznie generowanych stron w oparciu o standardowe języki, np. HTML, XML. Do prawidłowego działania JavaServer Pages wymagany jest właściwy serwer z serwletem typu Apache Tomcat lub Jetty. Sam JSP nawiązuje do PHP i ASP, ale wywodzi się od języka programowania Java i to jego używa. Stworzony w 1999 roku przez Sun Microsystems.
Technologie mające zastosowanie w stronach internetowych
Naturalnie tworząc aplikacje również korzysta się z technologii występujących standardowo na zwykłych stronach internetowych. Należy pamiętać, że każdy język został stworzony w określonym celu, a jego prawidłowe stosowanie daje same plusy i korzyści. Część z nich się wzajemnie uzupełnia, a część jest dla siebie alternatywą.
- HTML – ang. Hypertext Markup Language. Język znaczników tekstu, od którego praktycznie wszystko się zaczęło. Jego początki sięgają 1991 roku, kiedy to Tim Berners-Lee opublikował pierwsze 22 znaczniki, które przetrwały do dzisiaj. Obecnie prawie cały świat posługuje się HTML5, który powstał na podstawie HTML4 i XHTML.
- CSS – ang. Cascading Style Sheets – kaskadowe arkusze stylów. Język został opracowany w 1996 r. przez W3C. Przykładowy arkusz stylów opisuje, w jaki sposób mają być prezentowane wszelkie znaczniki i elementy wykorzystywane w pliku HTML. Odpowiada za warstwę wizualną strony internetowej.
- JavaScript – jest to skryptowy język programowania, w skrócie JS. Opracowany w 1995 roku przez ECMA. Głównie ma na celu obsługę wszelkich interakcji i reagowanie na zdarzenia, które wykonuje użytkownik. Używany w głównej mierze na stronach internetowych. Obecnie bardzo popularnym rozwiązaniem jest ECMAScript 6, którego JavaScript jest implementacją.
Należy zwrócić uwagę, że większość systemów CMS obsługujących strony internetowe wykorzystują takie technologie jak PHP, RoR, Django czy też ASP.NET.