Wady i zalety narzędzi no-code. Czy warto z nich korzystać do budowy aplikacji?

Wady i zalety narzędzi no-code. Czy warto z nich korzystać do budowy aplikacji?

Pojawienie się narzędzi no-code spowodowało w ostatnich latach niemałe zamieszanie wśród twórców oprogramowania.

Rozwiązania te rzucają wyzwanie tradycyjnym metodom pisania kodu i oferują nowe możliwości tworzenia aplikacji mobilnych oraz webowych.

W tym artykule analizuję narzędzie no-code z perspektywy programisty. Dzięki temu zobaczysz, w jakich przypadkach takie kreatory są dobrym rozwiązaniem, a kiedy lepiej wybrać klasyczne podejście do kodowania.

Czym są narzędzia no-code?

To platformy, które pozwalają rozwijać aplikacje bez znajomości kodu i standardowych frameworków. Tego rodzaju narzędzia zwykle umożliwiają tworzenie interfejsów z gotowych komponentów.

Narzędzia no-code ułatwiają budowanie aplikacji dzięki prostym blokom z predefiniowami funkcjonalnościami. Poza tym oferują szablony, które przyspieszają proces tworzenia oprogramowania.

Dla kogo są te narzędzia? Powinny się nimi zainteresować zwłaszcza startupy, małe firmy i przedsiębiorcy, którzy chcą wcielić swoje pomysły w życie szybko i niewielkim kosztem.

Zalety

  • Dostępność: Narzędzia no-code pozwalają użytkownikom budować aplikacje nawet jeśli nie mają wiedzy technicznej. W ten sposób zwiększa się pula potencjalnych twórców produktów cyfrowych.
  • Łatwość użytkowania: Platformy no-code są zaprojektowane w taki sposób, żeby były przyjazne użytkownikom. Dzięki temu więcej osób może z nich korzystać. Jeśli bariera technologiczna jest łatwa do pokonania, łatwiej przyciągnąć nowych użytkowników.
  • Szybkie działanie: Budowanie aplikacji bez pisania kodu jest zwykle szybsze niż rozwijanie ich przy zastosowaniu standardowych metod. To szczególnie korzystne, gdy trzeba szybko przygotowywać prototypy.
  • Opłacalność: Często wejściowe koszty platform no-code są niskie. Dzięki takim narzędziom zmniejsza się też potrzeba zatrudniania programistów, co sprawia, że rozwój aplikacji jest mniej kosztowny.
  • Szybkie iteracje: Z pomocą kreatorów no-code można szybko edytować aplikacje. Wystarczy przeciągać elementy i umieszczać je w projekcie.
  • Mniej działań związanych z utrzymaniem: Tego rodzaju platformy przejmują większość zadań związanych z infrastrukturą i utrzymaniem, więc użytkownicy nie muszą się martwić o serwery i aktualizacje systemów bezpieczeństwa.

Wady

  • Ograniczone możliwości personalizacji: Implementacja skomplikowanych animacji i złożonych interfejsów wymaga sporo wysiłku, szczególnie jeśli nie masz doświadczenia w pracy z takimi narzędziami.
  • Zależność: Jeśli polegasz na jakiejś platformie no-code, to znaczy, że przekazujesz temu dostawcy swoje materiały. Bywa to problematyczne, gdy zmienia się cennik, usługa przestaje być realizowana albo platforma kończy wspierać funkcje o kluczowym znaczeniu dla Twojego biznesu.
  • Trudności przy zmianie platformy: Ten punkt jest ściśle związany z poprzednim. Kiedy już zbudujesz aplikację na konkretnej platformie, migracja do innej może być trudna. W rezultacie jesteś przywiązany do jednego dostawcy. Istnieje ryzyko, że w dłuższej perspektywie nie będzie on w stanie zapewnić Ci warunków koniecznych do rozwoju.
  • Wydajność: To może być dość istotne zastrzeżenie dotyczące narzędzi no-code. Często nie są tak dobrze zoptymalizowane jak oprogramowanie tworzone na zamówienie. Może to skutkować wolniejszym działaniem lub problemami ze zgodnością.
  • Ograniczone możliwości integracji: Integracja aplikacji no-code z zewnętrznymi usługami albo API często bywa kosztownym wyzwaniem. Jeśli platforma nie wspiera gotowych integracji, musisz zatrudnić programistów, którzy się tym zajmą. To zwiększa koszt projektu oraz prawdopodobieństwo wystąpienia trudności w kolejnych iteracjach.
  • Skalowalność: Mogą występować problemy z efektywnym skalowaniem aplikacji no-code. Proces ten jest zwykle znacznie trudniejszy niż wtedy, gdy rozwijamy produkt we Flutterze albo za pomocą innych standardowych metod. Może to utrudniać rozwój aplikacji.
  • Próg wiedzy: Chociaż narzędzia no-code są zaprojektowane w sposób przyjazny użytkownikom, nadal trzeba poświęcić trochę czasu na naukę ich obsługi. Kiedy decydujesz się na pisanie kodu, wystarczy, że zatrudnisz kogoś z doświadczeniem w tworzeniu aplikacji. Ale jeśli chcesz sam stworzyć produkt, najpierw musisz spędzić wiele godzin na nauce nowych umiejętności.

Oczywiście niektóre wady mają poważniejsze implikacje niż inne. Z mojego doświadczenia wynika, że ograniczenia związane z integracjami stanowią największy minus rozwiązań no-code.

Twój produkt powinien być na tyle elastyczny, żeby umożliwiać dodawanie nowych funkcjonalności na każdym etapie rozwoju oprogramowania. Jeśli to nie jest możliwe, nie da się rozwijać ani aplikacji, ani biznesu.

Skąd się bierze popularność aplikacji no-code?

Choć łatwo o tym zapomnieć, narzędzia no-code nie są nowością. Towarzyszą nam już od lat. W takim razie dlaczego korzystanie z nich nie jest standardem i i tylko niektóre aplikacje rozwija się dzięki tej technologii?

Wizje nieprzebranych możliwości oferowanych przez narzędzia no-code są dość rozpowszechnione, ale głównie wśród osób, które niewiele wiedzą o rozwoju aplikacji.

Niektórzy mają nadzieję, że być może w przyszłości nie trzeba będzie zatrudniać doświadczonych programistów. To zmniejszyłoby koszty projektów.

Sami programiści pozostają jednak sceptyczni. Bez wątpienia narzędzia no-code oferują pewne korzyści, ale nie można zapomnieć o ich ograniczeniach. Należy korzystać z nich z rozsądkiem, mając na uwadze wymogi projektowe, potencjalne zmiany w zakresie prac i rozwój produktu w przyszłości.

Czy no-code zastąpi programistów?

Narzędzia no-code ułatwiają wykonywanie pewnych zadania związanych z budową aplikacji i pozwalają użytkownikom bez wiedzy technicznej na tworzenie prostych produktów cyfrowych.

Mimo to, platformy te nie zastąpią wiedzy eksperckiej, kreatywności i umiejętności rozwiązywania problemów, które programiści wnoszą do projektu.

Programiści i narzędzia no-code to dwa światy, które powinny się przenikać. Eksperci od IT mogą korzystać z kreatorów, żeby szybciej tworzyć prototypy lub rozwijać mniej ważne komponenty. W ten sposób będą mieć więcej czasu, by skupić się na złożonych aspektach, które wymagają lepszych kwalifikacji.

Obecność programistów jest niezbędna, żeby móc dostarczać złożone rozwiązania, które spełniają określone wymogi. Nie zmieni się to nawet wtedy, gdy sektor no-code będzie lepiej rozwinięty.

Przykład platformy no-code

Obecnie dużą popularnością wśród rozwiązań no-code cieszą się kreatory stron internetowych. Z ich pomocą każdy może tworzyć i publikować strony www bez pisania kodu. Korzystamy przy tym z szablonów i dostosowujemy interfejs do swoich potrzeb przy użyciu bloków. Trzeba je przeciągnąć i dodać do projektu.

Dzięki takim kreatorom można dodawać różne elementy UI, takie jak formularz lub funkcjonalności e-commerce.

Do powszechnie znanych kreatorów stron www zaliczamy:

  • Shopify: Pozwala tworzyć sklepy internetowe i nimi zarządzać. Użytkownicy mogą ustawiać listingi produktów, zarządzać zasobami, przetwarzać płatności i personalizować UI sklepów za pomocą szablonów.
  • Wix: Ten kreator aplikacji no-code udostępnia szablony i oferuje opcje personalizacji. Dzięki wielu predefiniowanym stylom można tworzyć różne typy aplikacji.
  • Squarespace: Tak jak Wix, Squarespace daje możliwość tworzenia atrakcyjnych wizualnie stron. Użytkownicy mogą łatwo projektować blogi, landingi itp.
  • WordPress: Chociaż sam WordPress wykorzystuje kod, możesz z niego korzystać razem z wtyczkami, które działają jak kreatory no-code (np. Divi). Dzięki temu zyskujesz możliwość edytowania wizualnych elementów, co pozwala personalizować strony www.

Jednak jako programista zajmujący się Flutterem chcę zwrócić uwagę zwłaszcza na aplikacje mobilne.

Jakie są narzędzia no-code do tworzenia rozwiązań na urządzenia z systemem Android i iOS? Chciałbym Ci przedstawić obiecującą platformę do tworzenia aplikacji mobilnych o nazwie FlutterFlow.

FlutterFlow

To wizualny kreator do budowy aplikacji stworzony w oparciu o Fluttera. FlutterFlow pozwala użytkownikom wprowadzać własne wartości i korzystać z bloków i suwaków, co umożliwia personalizację. To odpowiednik wcześniej opisanych platform dla aplikacji mobilnych.

FlutterFlow zaczęło tworzyć dwóch byłych inżynierów z Google. Chcieli ułatwić designerom, programistom i przedsiębiorcom budowanie aplikacji mobilnych i webowych. Czemu o tym wspominam? Bo FlutterFlow korzysta z Darta – tak jak Flutter.

Dzięki temu możesz wyświetlić kod źródłowy stworzony w wizualnym interfejsie i go skompilować. Dokładnie tak jak każdą inną aplikację napisaną we Flutterze.

Jak stworzyć oprogramowanie bez pisania kodu?

Aby odpowiedzieć na to pytanie, posłużę się przykładem stworzonym za pomocą FlutterFlow.


Wprowadzenie

Załóżmy, że klient waha się, czy warto przeznaczyć budżet na budowę aplikacji we Flutterze. Chcę go do tego przekonać, dlatego szybko tworzę tzw. Proof of Concept, żeby pokazać mu, jak jego aplikacja może wyglądać w przyszłości.


Po otwarciu FlutterFlow widzę intuicyjny interfejs, gdzie mogę przygotowywać layouty aplikacji, projektować UI i dodawać nowe elementy przy użyciu kreatora.

Po otwarciu FlutterFlow wyświetla się tutorial, który zaznajamia mnie z możliwościami, które to narzędzie oferuje. Uczy mnie, jak korzystać z tej platformy w oparciu o przykładowy layout aplikacji dla podróżujących. W ten sposób dowiaduję się, jak nazywają się główne elementy, co przyda mi się później.

Źródło: FlutterFlow

Skończyłem tutorial i teraz mam dwa ekrany: HomeScreen i ProfilePage (można je nazywać jak nam się podoba).

Co dalej?

Jeśli mam ochotę, mogę wprowadzić kolejne zmiany. Powiedzmy więc, że zamierzam dodać nowe elementy do tego projektu.

Nie chcę niepotrzebnie wydłużać tego artykułu, dlatego pokażę tylko, jak łatwo można dodać widok DetailsPage. Aby go wygenerować, posłużę się wewnętrznym narzędziem AI z FlutterFlow.

Źródło: FlutterFlow

Stworzenie tego ekranu zajmuje trochę czasu, ale ostatecznie otrzymuję widok w trybie dziennym i nocnym.

Mógłbym jeszcze raz użyć tego samego promptu albo go doprecyzować, żeby lepiej spełniał moje potrzeby. Decyduję się jednak na wprowadzenie kilku usprawnień do jednego z rozwiązań zasugerowanych przez generator AI i przechodzę do kolejnego zadania.

Źródło: FlutterFlow

Żeby aplikacja miała sens, powinienem przygotować dane poglądowe i logikę. W tym celu muszę otworzyć sekcję Data Types i stworzyć model dla planu podróży (TravelPlan).

Źródło: FlutterFlow

Chcę wyświetlać przewodniki w aplikacji, dlatego muszę mieć miejsce, gdzie mógłbym przechowywać powiązane z nimi dane (GuideModel). 

Źródło: FlutterFlow

Po przygotowaniu tych modeli, przechodzę do sekcji AppState i tworzę listę z przykładowymi planami podróży.

Jeśli jesteś bardziej techniczną osobą, pewnie się teraz zastanawiasz, jak uznać to narzędzie za alternatywę skoro trzeba wprowadzać przykładowe dane. Wiedz, że FlutterFlow umożliwia integracje z bazami danych w chmurze Firebase i Supabase. Proponuję pozostanie przy przykładowych danych, żeby artykuł był bardziej zrozumiały również dla osób, które nie mają zaawansowanej wiedzy o tym obszarze technologii.

Efekt powinien wyglądać tak:

Źródło: FlutterFlow

Teraz muszę dodać dynamiczne zmienne do aplikacji. Jak to zrobić?

Na początek trzeba przypisać moją listę do widżetu o nazwie ListView. Wystarczy, że wyszukam go w Widget Tree. Potem ustawiam wartość mojej zmiennej AppState w opcjach w zakładce Generate Dynamic Children.

Poniżej można zobaczyć ostateczny rezultat:

Źródło: FlutterFlow

Każda z moich kart ma teraz dostęp do swojej pozycji na liście (czyli w planie podróży). Następny krok to ustawienie indywidualnych pól, które będą korespondować z konkretnymi kartami w modelu.

Pola do zmiany:

  • Image
  • Rating dots
  • Rating text
  • Destination text
  • Prize text

Aby pokazać, jak można dokonać takiej zmiany, zmienię nazwę miejsca docelowego (itinerary).

Źródło: FlutterFlow

W pozostałych polach zadziała ten sam wzór. Jedynie w przypadku ceny (“price text”) muszę jeszcze dodać niestandardowy format “0 USD”, żeby przed kwotą wyświetlał się prefiks USD.

Formatowanie pochodzi z języka Dart, którego używa Flutter.

Ta karta w trybie projektowym wygląda w ten sposób:

Źródło: FlutterFlow

Jak teraz mogę połączyć TravelPlan ze stroną Details?

Muszę przekazać parametry z TravelPlan do ekranu podczas nawigowania.

Niestety nie mogę tego zrobić po prostu podając mój spersonalizowany DataType, ponieważ ta opcja nie jest obecnie dostępna. Jeśli chcesz, możesz sprawdzić, jakie typy są wspierane w dokumentacji.

Mimo to mogę rozwiązać ten problem na dwa inne sposoby: z pomocą konwerterów JSON lub przechodząc przez poszczególne pola. Wybieram tę drugą opcję, bo jest łatwiejsza i nawet osoby bez wiedzy technicznej powinny zrozumieć, jak działa.

Jeśli chcesz dowiedzieć się więcej o konwerterach JSON, sprawdź tę sekcję w dokumentacji.

Źródło: FlutterFlow

Na widoku powyżej widać wile parametrów, które przypominają model TravelPlan, który wcześniej stworzyłem. Odpowiadające im pola zmieniają się, żeby mieć dostęp do tych parametrów, które są widoczne w projekcie UI.

Ostatni krok polega na przekazaniu tych parametrów z mojej akcji do HomePage. Muszę znaleźć tę kartę i przejść do widoku Akcje, który ustawiłem wcześniej, żeby prowadził do strony TravelDetailsPage.

Następnie uzupełniam sekcję z parametrami, wprowadzam przycisk pomiń i dodaję je poprzez items:

Źródło: FlutterFlow

Teraz mogę przetestować aplikację w przeglądarce, żeby zobaczyć, czy wszystko działa zgodnie z zamierzeniem.

Na podglądzie poniżej widać ostateczny efekt. Zastosowano tryb nocny, ponieważ takie mam ustawienia na swoim urządzeniu.

Źródło: FlutterFlow

Jak oceniam to doświadczenie?

​​Narzędzia no-code pozwalają tworzyć aplikacje osobom, które nie mają technicznej wiedzy. To z całą pewnością stanowi ich dużą zaletę.

Nie zmienia to jednak faktu, że tego typu kreatory mają swoje ograniczenia. Zwłaszcza w zakresie personalizacji i skalowalności. Poza tym mogą nie być najlepszym wyborem w projektach, które wymagają złożonej logiki lub stałego utrzymania w środowisku produkcyjnym.

Z drugiej strony rozwiązania no-code w dużym stopniu ewoluowały w ostatnich latach. Teraz udostępniają wyczerpującą dokumentację i wiele tutoriali, które uczą, jak się w nich poruszać i projektować aplikacje.

Co więcej, platformy no-code oferują wiele gotowych integracji. Przykładowo Firebase jest w pełni zintegrowany z funkcjami chmurowymi i powiadomieniami PUSH.

FlutterFlow dodatkowo korzysta z rozwiązań, z którymi programiści od Fluttera są zaznajomieni (np. widżety), więc łatwiej jest nam wykonywać pewne zadania.

Tutaj przedstawiam krótkie podsumowanie moich doświadczeń z tą platformą no-code.

Główne zalety

  • Łatwa w użyciu: Było tu wszystko, czego oczekiwałem po środowisku odworowującym flutterowe. Sposób dodawania widżetów i ich różnorodność sprawiają, że proces ten jest bardzo podobny do tego, do którego jestem przyzwyczajony, gdy pracuję nad aplikacją.
  • Integracje AI: Kiedy trzeba zbudować coś jak najtaniej, często oszczędzamy na designie.  Dzięki AI można jednak szybko stworzyć UI, co sprawia, że można przeznaczyć więcej budżetu na logikę i integracje, a jednocześnie mieć nieźle wyglądający interfejs.
  • Szybko się rozwija: Chociaż nie jestem w 100% zadowolony z moich doświadczeń z tą platformą, ta próba pozwala mi mieć nadzieję, że w przyszłości tworzenie produktów bez pisania kodu będzie możliwe.
  • Wsparcie społeczności: Doceniam fakt, że można dzielić się swoimi projektami z innymi. Można je nawet sprzedawać i traktować jako źródło dodatkowych dochodów.

Główne wady

  • Skalowalność: Uważam, że to największe zastrzeżenie dotyczące kreatorów no-code. Jak poradzą sobie ze złożonym routingiem, deep linkowaniem lub innymi integracjami, które nie są wspierane?
  • Jakość kodu: Jeśli wycofasz aplikację z danej platformy, znalezienie programisty, które będzie chciał pracować na jej kodzie będzie sporym wyzwaniem – przynajmniej obecnie. Może to jednak ulec zmianie. Implementacja opcji dodawania Custom Widgets ze współdzielonym kodem to krok w dobrym kierunku. Być może w przyszłości będzie możliwe także generowanie kodu dostosowanego do możliwości przetwarzania, jakimi dysponują programiści.
  • Zależności od paczek: Podobnie jak w przypadku jakości kodu, można sobie z tym poradzić. Ale jeśli musisz w tym celu pisać kod, lepiej już robić to od samego początku. Inaczej możesz tego żałować, usuwając błędy w kodzie, który napisał ktoś inny!

Wymagania projektowe i długoterminowe cele powinny stanowić wyznaczniki przy wyborze pomiędzy narzędziem no-code a klasycznym podejściem do tworzenia aplikacji. Oba rozwiązania mają swoje zastosowanie w świecie aplikacji mobilnych. Kluczowe jest tylko zdanie sobie sprawy z tego, jakie mają wady i zalety. Dzięki temu możesz dokonać właściwego wyboru, dostosowanego do swoich potrzeb.

Marcel - Flutter Developer

Marcel Kozień

Flutter Developer, którego pasjonuje tworzenie wydajnego oprogramowania. Wierzy, że w przypadku rozwoju aplikacji mniej znaczy więcej. Kiedy nie pisze kodu, ogląda dobre filmy, buduje konstrukcje z Lego do swojej coraz bogatszej kolekcji i odkrywa nowe miejsca dzięki podróżom.

Dowiedz się więcej

Wycena projektu

Opowiedz nam o swoim projekcie i napisz, jak możemy Ci pomóc.

Dlaczego warto rozwijać z nami projekty?

Logo Mobile Trends Awards

Mobile Trends Awards 2021

Wygrana w kategorii
ŻYCIE CODZIENNE

Nagroda Legalnych Bukmacherów

Nagroda Legalnych Bukmacherów 2019

Najlepsza aplikacja mobilna

Mobile Trends Awards logo

Mobile Trends Awards 2023

Wygrana w kategorii
MCOMMERCE ROZWÓJ

23

opinie klientów

Clutch logo