Aplikacja webowa czy mobilna?
Na jakie platformy najlepiej tworzyć produkt?
APLIKACJE MOBILNE
Mikołaj Mężyk
7/25/2024
Większość nowych większych produktów cyfrowych to różnego typu aplikacje. Aplikacje desktopowe często są kolejnym krokiem lub narzędziem rozwiązującym specyficzny, zazwyczaj wysoce skomplikowany problem (np. profesjonalna obróbka zdjęć czy IDE). Dlatego pominiemy kwestię aplikacji desktopowych. Jeśli ktoś potrzebuje aplikacji desktopowej, prawdopodobnie zdaje sobie z tego sprawę. Zostają dwie główne opcje: aplikacja webowa lub mobilna.
Aplikacje webowe są tworzone do używania za pomocą przeglądarki (np. Chat GPT). Mają one kilka zasadniczych zalet:
Po pierwsze, próg wejścia dla użytkownika jest bardzo niski - wystarczy wejść na stronę, nie trzeba nic pobierać na urządzenie. Jest to wielka zaleta, gdy chcemy dotrzeć do większej liczby ludzi. Przeciętny użytkownik ma niewiele aplikacji, zwłaszcza takich, których używa często. Jeśli nasz produkt nie będzie mu wybitnie potrzebny, to pewnie usunie go przy czyszczeniu telefonu ze śmieci. Przy aplikacji webowej nie ma takiego problemu. Nawet jeśli użytkownik wejdzie raz w tygodniu, to nic się nie stanie. Czasami to nawet lepiej - skoro i tak przynosi zarobki (np. z powodu subskrypcji), to nie ma sensu martwić się, że rzadko korzysta i w konsekwencji generuje niewielkie koszty.
Po drugie, jesteśmy bardziej niezależni. Nie musimy przejmować się regułami App Store’a czy Google Play, ani płacić im wysokich prowizji. Zyskujemy pełną kontrolę nad naszym produktem. Oczywiście, tracimy niektóre bonusy, które oferują giganci, ale w ogólnym rozrachunku niezależność prawie zawsze wychodzi na plus.
Z drugiej strony mamy aplikacje mobilne. W opinii wielu ludzi z branży, są one bardziej domyślnym produktem dla startupu.
Głównym problemem jest konieczność tworzenia oprogramowania na dwa systemy operacyjne (Android i iOS). Jest to poważne utrapienie dla małych zespołów. Kiedyś problem był jeszcze większy, bo trzeba było pisać dwa kompletnie różne projekty (Kotlin lub Java na Android oraz Swift na iOS). Sytuację wyraźnie poprawiło powstanie React Native oraz Fluttera. Są to dojrzałe systemy pozwalające osiągnąć prawie natywne parametry aplikacji (zwłaszcza Flutter). Niemniej jednak, trzeba wszystko ustawiać w dwóch sklepach, co dalej stanowi kłopot.
Aplikacje mobilne mają też wiele zalet - ludzie (zwłaszcza młodzi) je lubią, oferują większe możliwości nietypowych funkcji, mogą być bardziej skomplikowane. Jeśli ma to być aplikacja używana równie często jak Facebook czy Uber, to aplikacja mobilna jest najlepszym wyborem.
Trochę rzadziej dostrzeganym plusem jest możliwość działania offline. W komercyjnych rozwiązaniach coraz rzadziej się to przydaje (zawsze jest jeszcze jakiś serwer czy baza danych), ale jeśli aplikacja powstaje do użytku wewnątrz firmy, to czasami możliwość działania niezależnie od dostępu do internetu może być zasadniczym plusem (zwłaszcza gdy jest to proste narzędzie - np. specjalistyczny kalkulator do obliczania bardzo nietypowych rzeczy).
Podsumowując, im częściej aplikacja jest używana oraz im bardziej jest skomplikowana, tym więcej sensu ma zrobienie jej na urządzenia mobilne. Warto podkreślić, że znacząca większość współcześnie powstających projektów w pełni poradziłaby sobie jako aplikacja webowa. Prawdopodobnie taki projekt wyjdzie na tym lepiej - niższy próg wejścia bardzo pomaga w pozyskaniu użytkowników na początkowym etapie działania aplikacji.
Teraz, w czym pisać? Moim zdaniem, Flutter to najlepszy wybór. O jego ogromnych zaletach przy tworzeniu aplikacji mobilnych już pisałem, ale to dopiero początek. Flutter osiągnął taki poziom dojrzałości, że aplikacje webowe tworzone w nim doskonale sobie radzą.
Główną zaletą Fluttera jest pisanie w Darcie. Jest to wygodne dla programistów, szybkie i bardzo czytelne. Jest to jeden z najlepszych języków do utrzymywania projektu. Warto odnotować jeszcze jeden ogromny plus - przejście z aplikacji webowej na mobilną i vice versa jest banalne. To dalej ten sam kod źródłowy, wymagający tylko niewielkich zmian w kilku plikach. To najwygodniejszy sposób prowadzenia produktu. Jakikolwiek update jest pisany od razu na wszystkie systemy, a nie ma trzech kompletnie różnych projektów, które trzeba jakoś spójnie prowadzić (zwłaszcza, że w końcu prowadzą to różne zespoły - nawet wielkie firmy czasem się rozjeżdżają, a co dopiero pięcio- czy dziesięcioosobowe przedsiębiorstwo).
W jednym artykule trudno omówić całą złożoność problemu. Główne założenie, które chciałbym, żeby Państwo wynieśli z lektury, jest takie, że aplikacje webowe nie są wcale passe, zwłaszcza, że większość projektów nie potrzebuje nic więcej. Aplikacje mobilne są dalej ciekawą opcją, ale nie zawsze są najlepszym wyjściem. Niezależnie od tego, co wybierzemy, Flutter jest fenomenalnym narzędziem. Jego niedostatki widać dopiero w dużych i specyficznych projektach, a osoba odpowiedzialna za takie przedsięwzięcie doskonale wie, jakie inne narzędzie będzie jej pasować.