Jak spostrzegam aplikacje webowe i desktopowe?

Do wiedzy specjalistycznej z zakresu programowania jeszcze mi daleko, to już napotkałem się z pytaniem, a dokładnie dwa razy. Jaka aplikacja najlepsza? Webowa czy desktopowa? Sam nie byłem do końca pewny co powiedzieć, dlatego zawsze rzuciłem to co mi najbliższe, czyli aplikacja desktopowa. Teraz już wiem, że nie zawsze pokrywa się to z rzeczywistością. Po wielu przemyśleniach w końcu ułożyłem sobie teorię. Postanowiłem się podzielić z nią na swoim blogu z tą myślą, że pomogę osobą, które również borykają się z tym samym problemem.

Odpowiadając na zadane pytanie zawsze padało z moich ust – oczywiście, że aplikacja desktopowa. Nie robiłem tego bezmyślnie. Posiadam doświadczenie z projektowania stron oraz od niedawna programuje w C#. Moje zamiłowanie do aplikacji desktopowych wzięło się chyba dlatego, że przez ostatni czas tworzyłem projekty z myślą o nich. W końcu technologie WinForms czy WPF to API dla interfejsu Windowsa. Również jestem zwolennikiem decentralizacji i nie uzależniania wszystkiego od jednego sprzętu. Tworząc aplikacje desktopowe zawsze idę tokiem myślenia, że pewne obliczenia są wykonywane po stronie klienta, a nie centralnej maszyny. Chodź nie zawsze jest to prawdą. Takie rozwiązanie oczywiście ma swoje wady i zalety. Nie ma co tutaj ich wyliczać. Wszystko zależy od zastosowania naszego projektu i poziomu naszej wiedzy. Szczególnie to drugie zmienia bardzo dużo.

Aplikacje webowe – zalety i wady

Byłem już na spotkaniu, w którym debatowałem na temat aplikacji webowej i desktopowej. Ustalaliśmy formę projektu programistycznego. Moi szefowie stanęli po stronie aplikacji webowych. Cenili sobie ich wygodę i multiplatformowość. Poza tym bardzo liczył się czas realizacji. Aby stworzyć system w jak najkrótszym czasie i minimalnym kosztem. Utrzymanie kodu dla każdej platformy oddzielnie jest znacznie bardziej trudne. Ja, jak zapewne się domyślacie, upierałem się na desktopie. Mam co prawda duże doświadczenie w front-end jeśli chodzi o aplikacje webowe, ale z back-end jest już nie co inaczej. Przekalkulowałem sobie, że dla mnie projekt to nie tylko analiza i kodowanie, ale i również wprowadzenie do nowej technologii i intensywne szkolenia. A mi również zależało na jak najszybszym zrealizowaniu aplikacji.

Krótko po zakończeniu spotkania zrozumiałem jednak, że aplikacje webowe mają swoje zalety. W moim przypadku wybór tej formy projektu zredukowałby w znacznym stopniu czas jaki musiałbym poświęcić na pracę. Aplikacje webowa są znacznie łatwiejsze w utrzymaniu. Dzięki swojej uniwersalności nie wymagają od programisty dostosowywania czy przepisywania kodu na każdą platformę oddzielnie. Wystarczy tylko obecność przeglądarki internetowej. Wszelkie poprawki czy aktualizacje są widoczne od razu. Zapewniając w ten sposób rozwój i wsparcie bez konieczności ingerencji w stacje robocze.

Aplikacje webowe nie są wykonywane po stronie klienta. Zaawansowane operacje i przetwarzanie odbywa się po stronie serwera. Wynik tych operacji jest zwracany w formie strony internetowej, która generowana jest potem w przeglądarce użytkownika. Niesie to ze sobą odpowiednie kompromisy. Od użytkownika nie wymaga się dużej wydajności jego komputera, ale z kolei serwer, na którym stoi aplikacja musi mieć dostęp do większych zasobów. W końcu wszystkie zapytania kierowane od klientów są przetwarzane po jego stronie. Wszelkie opóźnienia odbiją się na wydajności naszej aplikacji webowej.

Usługi chmurowe

Na pewno wiele osób ze mną się zgodzi, że aplikacje webowe nabierają na popularności wraz z chmurami obliczeniowymi. Przechowywanie danych, przetwarzanie, analizowanie. Wszystko odbywa się w chmurze, czyli w centrach danych o bardzo dużej mocy obliczeniowej. Udostępnianych jest bardzo dużo różnych usług, ale większość z nich to aplikacje webowe, które służą do zarządzania, wymiany plików czy przetwarzania. Za przykład może tutaj posłużyć platforma Microsoft Azure, Google Drive czy Amazon. Przesyłając jakieś zdjęcia na dysk w chmurze, wykorzystujemy interfejs webowy z poziomu naszej przeglądarki internetowej.

Przykładowa aplikacja Microsoft Azure przedstawiająca statystyki

Przykładowa aplikacja Microsoft Azure przedstawiająca statystyki

Zastosowanie aplikacji webowych

Według mnie aplikacje webowe mają swoje zastosowanie w pewnych sytuacjach. Publiczne systemy takie jak sklepy internetowe, media społecznościowe, fora internetowe czy aplikacje bankowe są idealnym przykładem. Wyobraź sobie, że teraz twój ulubiony Facebook byłby obsługiwany z poziomu aplikacji. Musiałbyś ją pobrać, zainstalować, a później regularnie aktualizować. A tak wchodzisz na stronę i się logujesz. Dla użytkownika wygoda, a dla firmy oszczędność. Nie muszą dostosowywać i programować swojej aplikacji klienckiej dla każdej platformy oddzielnie. Chodź Facebooka akurat byłoby na to stać. Dla mniejszych firm niekoniecznie. Każdy z nas korzysta z najpopularniejszych przeglądarek. Różnice w renderowaniu są coraz mniejsze, a każdy system operacyjny posiada przynajmniej podstawową przeglądarkę. Likwiduje to również po części problem z mocą obliczeniową komputera klienta. Wszystko odbywa się po stronie serwera. Chociaż tutaj nie zawsze jest to prawdą. Coraz więcej stron wymaga więcej mocy obliczeniowej niż kiedyś, powodując, że starszy sprzęt gorzej radzi sobie z obsługą. Spowodowane jest to po części wyświetlanymi reklamami lub animacjami i efektami wizualnymi.

Allegro jako przykład aplikacji webowej

Allegro jako przykład aplikacji webowej

Decydując się na aplikację webową przede wszystkim uwzględniałbym odbiorców, liczbę użytkowników i infrastrukturę. Dla systemów, które muszą być publicznie dostępne, wdrożenie aplikacji desktopowej byłoby sporym kosztem. Lepiej jest wtedy zainwestować w lepszą infrastrukturę. Publiczni użytkownicy korzystają z różnych systemów i urządzeń. Nie jesteśmy w stanie przewidzieć jak będzie zachowywała się nasza aplikacja. Dostosowywanie jej zabiera nie tylko pieniądze, ale i również czas.

Aplikacja desktopowa

Stacjonarne aplikacje nadal będą miały dużą przewagę jeśli chodzi o możliwości i wydajność. Przynajmniej tak mi się zdaje. Nie jesteśmy uzależnieni (chociaż nie zawsze) od jednego centralnego serwera. Wiele operacji obliczeniowych wykonuje się po naszej stronie klienta. Programiści są również w stanie zapewnić więcej funkcji integrujących. Możemy scalić interfejs czy wykorzystywać elementy dostępne z poziomu systemu operacyjnego. Wybierając aplikację desktopową przede wszystkim mam na myśli odbiorców, którzy są bardzo dobrze nam znani. Wiemy mniej więcej na jakie platformy będzie uruchamiana i co będzie robiła. Koszty w tym wypadku nie będą większe. Skupiamy się tylko na określonej grupie, a serwery nie muszą być mocniejsze niż w przypadku aplikacji webowej.

Adobe Photoshop jako przykład aplikacji desktopowej

Adobe Photoshop jako przykład aplikacji desktopowej

Aplikacje desktopowe pozwalają również na pracę w trybie offline. Nie musimy zapewniać ciągłego dostępu do sieci lokalnej czy Internetu. Jeśli wszystkie potrzebne zasoby są obecne na dysku, nie ma potrzeby ich pobierania. Jest to szczególnie ważne w przypadku komputerów mobilnych, kiedy dostęp do Internetu niekiedy jest ograniczony.

Podsumowanie

Mój blog to też w pewnym sensie aplikacja, a dokładnie system CMS. Ściągając teraz klienta tylko po to, aby przeczytać jeden lub dwa artykuły byłyby w tym wypadku bezsensowne. Szybko zrezygnowałbyś z wejścia na moją stronę. Ale w sytuacji kiedy chcesz zaprojektować logo lub baner musisz skorzystać z aplikacji graficznej. Na przeglądarce na pewno byłoby to trochę problematyczne. Ze względu na moc obliczeniową i możliwości. A na koniec krótkie podsumowanie mojego artykułu.

Aplikacja webowa

  • Stosowana dla systemów o publicznym dostępie,
  • Udostępniana na różne platformy,
  • Uzależniona od centralnego serwera,
  • Wymaga ciągłego dostępu do sieci lub Internetu.

Aplikacja desktopowa

  • Stosowana dla systemów o dostępie na określone platformy i odbiorców,
  • Pozwala przenieść obciążenie na komputer użytkownika,
  • Integruje się z systemem operacyjnym,
  • Nie wymaga stałego dostępu do sieci.

One thought on “Jak spostrzegam aplikacje webowe i desktopowe?”

  1. Aplikacje desktopowe mają dużą wadę w przypadku systemów do zarządzania firmą: każdy pracownik, na różnych urządzeniach, ma dostęp do innych danych. A w przypadku dynamicznych procesów może to opóźniać pracę. Dzięki możliwości wprowadzenia informacji do aplikacji webowej wszyscy użytkownicy od razu mają dostęp do aktualnych informacji. Dlatego właśnie w swojej firmie wdrożyłam Kamflex, webowy system CRM. Dostęp do informacji jest dla nas niezwykle ważny, a dzięki tej aplikacji nie musimy się martwić o rozbieżności, które mogą mieć miejsce w przypadku systemów desktopowych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *