Hybrydowa moc: zalety i zalety trzepotania

Opublikowany: 2022-03-11

Flutter to hybrydowa platforma do tworzenia aplikacji mobilnych od Google, która pojawiła się w wersji 1.0 pod koniec 2018 roku. Chociaż jest nowszą pozycją na liście hybrydowych frameworków programistycznych, świetne pomysły, które za nią stoją, sprawiły, że szybko zyskała popularność wśród programistów.

Moim celem w tym artykule jest zbadanie tych pomysłów i opisanie moich doświadczeń z Flutterem oraz tego, dlaczego uważam, że jest to przyszłość tworzenia hybrydowych aplikacji mobilnych.

Mimo że na rynku istnieją starsze hybrydowe frameworki aplikacji, rośnie lista znanych firm, które wybierają Flutter do swoich aplikacji mobilnych. Chociaż strona prezentacji Fluttera zawiera wiele z nich, oto kilka godnych uwagi aplikacji, które używają Fluttera dla całej aplikacji lub dla ważnej funkcji:

  • Aplikacja Google Ads
  • Aplikacja GrabMerchant firmy GrabFood
  • Aplikacja Xianyu firmy Alibaba Group, która ma ponad 50 milionów pobrań
  • Nubank
  • Aplikacja eBay Motors

Chociaż framework Flutter jest całkiem zdolny, wciąż jest stosunkowo nowy. Dla zachowania równowagi omówię również pewne ograniczenia, o których powinieneś wiedzieć, zanim zdecydujesz się na Fluttera.

Mam nadzieję, że po przeczytaniu tego artykułu dobrze znasz zalety i wady Fluttera i masz wystarczająco dużo informacji, aby zdecydować, czy powinieneś użyć Fluttera w następnym projekcie aplikacji mobilnej.

Zalety trzepotania (z perspektywy rozwoju)

Jako programista jest to punkt widzenia, który najlepiej znam i mogę podzielić się największą ilością informacji.

Krzywa szybkiego uczenia się

Pierwszą miłą niespodzianką, jaką Flutter ma dla programistów, jest to, jak szybko można zacząć. Zakończenie procesu instalacji i skonfigurowanie działającego środowiska programistycznego zajmuje mniej niż 30 minut. Stamtąd możesz już stworzyć swoją pierwszą aplikację Flutter.

Integracja popularnych edytorów

Flutter ma również świetne integracje z edytorami. Osobiście używam Android Studio, ale dostępne są instrukcje dotyczące konfiguracji IntelliJ, VSCode lub Emacs.

Proces czystego rozwoju

W porównaniu z moimi wcześniejszymi doświadczeniami z hybrydowymi frameworkami aplikacji, proces tworzenia również wydaje się czystszy . Na przykład, kiedy używałem WebViews do wyświetlania list z wieloma elementami (około 100 lub więcej), miałem do czynienia z dużym obciążeniem procesora, zwłaszcza gdy użytkownik przewijał listę. Rozwiązałem je, używając elementów ram Ionic stworzonych specjalnie do tego celu. We Flutterze istnieje jeden akceptowany sposób wyświetlania list, ListView , który po wyjęciu z pudełka ma niesamowitą wydajność.

Przeładuj na żywo

Kolejną rzeczą, która mile mnie zaskoczyła, była funkcja przeładowania na żywo. Jako programista full-stack byłem przyzwyczajony do frameworków, takich jak BrowserWatch, zapewniających przeładowanie na żywo w przeglądarce.

Programowanie natywne nie ma tego (ale myślę, że SwiftUI firmy Apple robi pewne postępy na tym froncie w zakresie rozwoju iOS). Deweloperzy systemów Android i iOS zazwyczaj muszą napisać kod, a następnie poczekać, aż się skompiluje i zostanie załadowany na urządzeniu lub symulatorze, zanim zobaczą zmiany.

Flutter zapewnia (a la React Native) mechanizm ponownego ładowania na żywo, w którym kod aplikacji jest ponownie ładowany na urządzeniu, gdy tylko programiści klikną „zapisz”. Daje to natychmiastową informację zwrotną, znacznie przyspieszając rozwój.

Występ

Wydajność aplikacji to kolejny wskaźnik, w którym Flutter powoli wyłania się jako zwycięzca.

Ponieważ framework Flutter jest aktywnie rozwijany, istnieje wiele miejsc, w których można dokonać optymalizacji wydajności. Jest to widoczne na przykład w Flutter 1.17, który zwiększył wydajność renderowania nawet o 50% na nowszych urządzeniach z systemem iOS i zmniejszył zużycie pamięci nawet o 70% w przypadku niektórych rodzajów obciążeń.

Spójność między platformami

Prawdziwie spójne interfejsy użytkownika na obu platformach mobilnych to kolejna niezwykła funkcja Fluttera. Ponieważ Flutter używa własnego silnika renderującego – o czym później – interfejs użytkownika jest dokładnie taki sam w systemach iOS i Android. Deweloperzy nie muszą już zmagać się z problemami związanymi ze stylizacją specyficzną dla platformy, aby wszystko wyglądało dokładnie tak, jak projekt: ta gwarancja jest częścią frameworka.

Język, narzędzia i rozszerzenia

Trzy inne mniejsze, ale nadal ważne aspekty, które moim zdaniem powinny zostać tutaj wymienione, to:

  • Dart, język, w którym programowane są aplikacje Flutter, jest bardzo prosty do rozpoczęcia. Ale jest to również dość potężny język, pierwotnie przeznaczony przez Google do zastąpienia JavaScript. Jeśli programiści mają jakiekolwiek doświadczenie z JavaScript lub innymi językami podobnymi do C, nie będą mieli problemu z odebraniem Darta w ciągu dnia lub dwóch.
  • Istnieje solidny menedżer wtyczek (pub) zawarty w domyślnym łańcuchu narzędzi i ogromna biblioteka wtyczek dostępnych za pośrednictwem repozytorium wtyczek pub.dev.
  • Tworzenie wtyczek w celu wykorzystania natywnych możliwości platformy jest dość łatwe, więc jeśli programiści potrzebują dostępu do funkcji platformy, dla której żadna wtyczka już nie istnieje, zakodowanie jej nie jest zbyt trudne.

Zalety Fluttera (z perspektywy biznesowej)

Największą korzyścią, o której myśli większość firm, jest zatrudnienie tylko jednego zespołu dla platform iOS i Android. Jednak ważniejszą korzyścią, którą wiele firm pomija, jest szybszy czas wprowadzania produktów na rynek . Wykorzystując zalety programistyczne opisane w poprzedniej sekcji, mniejszy zespół programistów może znacznie szybciej zbudować piękną aplikację o natywnej wydajności, która zapewnia takie same wrażenia użytkownika na obu platformach, korzystając z Fluttera.

Flutter pozwala programistom na tworzenie naprawdę pięknych interfejsów użytkownika . Przyjrzyj się niedawnemu wyzwaniu ze strony Google i Lenovo, które polegało na zbudowaniu pięknego interfejsu z tarczą zegara dla Lenovo Smart Clock. Zwycięzca, Zegar cząstek autorstwa Mickela Anderssona, jest nie tylko wyjątkowo elegancki, ale także pokazuje , jak wydajne są animacje we Flutterze.

W przypadku firm rozważających Flutter, ale niepewnych, czy jest to właściwa droga, Flutter może być wykorzystany stopniowo: istniejące aplikacje mobilne mogą integrować Flutter pojedynczą część na raz. W rzeczywistości w ten sposób większość dużych firm zaczyna od Fluttera, budując niewielką część swojej istniejącej aplikacji we Flutterze, a następnie powoli wymieniając inne części, gdy zauważą korzyści.

Ograniczenia do rozważenia przed użyciem Flutter

Szczerze mówiąc, Flutter, jako nowszy, nie jest tak dobrze przetestowany, jak inne hybrydowe frameworki aplikacji mobilnych, takie jak React Native — w końcu zasięg React Native obejmuje aplikacje mobilne Facebook, Instagram, Skype i Discord.

Domyślna odpowiedź na „czy powinienem używać Fluttera?” jest na razie ostrożnym „tak ”. Dzieje się tak, ponieważ kierownicy projektów nadal muszą rozważyć, które zaawansowane funkcje będą im potrzebne, i upewnić się, że są one dostępne we Flutterze , zanim zdecydują się go użyć. W szczególności warto zapytać, jakich bibliotek i wtyczek może potrzebować zespół do zbudowania konkretnej aplikacji. Jako nowszy wpis w frameworkach aplikacji mobilnych, Flutter nie ma tak szerokiego zakresu bibliotek i wtyczek jak React Native.

Na przykład obsługa aparatu we Flutter nie jest jeszcze kompletna, a sterowanie zoomem i lampą błyskową nie jest jeszcze częścią oficjalnej wtyczki aparatu. Dla mnie to nie był przełom, ponieważ udało mi się znaleźć wtyczkę innej firmy, gdy potrzebowałem zintegrować funkcje foto/wideo w aplikacji, którą budowałem.

Kolejną ważną wtyczką, której możesz przegapić, są Mapy Google. Nie ma natywnych wtyczek Map Google dla Darta i chociaż istnieje wtyczka umożliwiająca integrację Map Google z kodem Flutter, wykorzystuje ona funkcje Flutter (widoki platformy), które nadal są w stanie podglądu programistów.

Jeszcze jedna rzecz, która nie wpłynie na wiele projektów, ale powinieneś wiedzieć, że na razie Flutter nie obsługuje żadnych funkcji 3D. Zespół skupia się na razie tylko na 2D. Jednak większość aplikacji nie korzysta z żadnej funkcji 3D, więc nie powinno to stanowić przełomu dla większości programistów.

Kilka rad z mojego doświadczenia z Flutter

Po wydaniu trzech aplikacji Flutter w ciągu ostatnich dwóch lat nauczyłem się wielu rzeczy, o których żałuję, że nie powiedziano mi, kiedy zaczynałem. Wymienię je tutaj w nadziei, że pomogą ci w twojej podróży rozwoju Fluttera.

Rozpoczęcie pracy z Flutterem jest bardzo łatwe. Zacząłem od wspaniałego kursu na App Brewery. Jednak po ukończeniu kilku pierwszych modułów pomyślałem, że nauczyłem się wystarczająco dużo i zacząłem budować pierwszą uruchomioną aplikację.

Z powodu mojej niecierpliwości pominąłem kilka modułów w tym kursie, które okazały się ważne i musiałem wyciągnąć z nich lekcje na własnej skórze, popełniając błędy. W szczególności wykonałbym znacznie lepszą robotę przy moim pierwszym użyciu Fluttera do tworzenia aplikacji, gdybym nauczył się kilku najlepszych praktyk Fluttera:

  • Jak zmodularyzować i ustrukturyzować kod aplikacji Flutter.
  • Jak działa zarządzanie państwem.
  • Jak uwierzytelniać użytkowników i śledzić status uwierzytelniania na różnych stronach mojej aplikacji Flutter.
  • Jak zintegrować powiadomienia za pomocą pakietu Firebase Messaging.

Skończyło się na tym, że nauczyłem się wszystkich tych rzeczy, ale najpierw musiałem popełnić wiele błędów. Przepisałem znaczne fragmenty pierwszej zbudowanej przeze mnie aplikacji. Jednak dzięki mojej drugiej aplikacji Flutter nauczyłem się na swoich błędach i skończyłem, wykonując lepszą i szybszą pracę.

Istnieje wiele zasobów, które można łatwo znaleźć, przeszukując Google, aby poznać pojęcia, które wymieniłem powyżej. Możesz zacząć, patrząc na linki na stronie Dowiedz się więcej w witrynie Flutter.

Inną rzeczą, którą odkryłem, jest to, że ze względu na to, jak nowy jest Flutter, nie ma jednego wzorca struktury aplikacji. Pochodząc z kariery programistycznej głównie opartej na Django, jestem przyzwyczajony do wiedzy, że MVC jest wzorcem do użycia w moich aplikacjach Django. iOS ma również wyraźnego zwycięzcę we wzorcu MVVM, który podąża. Android ma swój zestaw wskazówek, jak najlepiej zaprojektować aplikację.

Flutter nie ma takiego wzorca architektury, który „wygrał” nad wieloma możliwościami. To było coś, co początkowo sprawiało mi trudność. W końcu, po opracowaniu wielu aplikacji Fluttera, myślę, że najlepiej jest po prostu wybrać architekturę i trzymać się jej.

Osobiście używam pakietu provider zarówno jako wstrzykiwania zależności, jak i struktury zarządzania zmianą. Aplikacje My Flutter są również z grubsza podzielone na trzy linie:

  1. Widoki , czyli widżety tworzące aplikację, w tym ekrany. Wstrzykuję usługi i modele za pomocą widżetu Consumer z pakietu Provider do moich widoków, dzięki czemu mogę zbudować interfejs użytkownika na podstawie dostępnych danych. Widżet Consumer również odbudowuje widok, gdy stan się zmienia, co jest sposobem, w jaki moje aplikacje reagują na zmiany stanu.
  2. Modele , które są zwykłymi starymi obiektami, których używam do przechowywania uporządkowanych danych.
  3. Usługi/kontrolery , gdzie idzie większość logiki biznesowej. Kodowane są tutaj również interfejsy API, które mogą pobierać i wysyłać dane do API. Te interfejsy API udostępniają i akceptują modele do przekazywania danych.

Biblioteka bloc jest również warta rozważenia jako alternatywa dla pakietu provider . Ma nieco inną architekturę i wykorzystuje strumienie zdarzeń i stanów do łączenia widoków i modeli.

Powiązane: Jak wykorzystać BLoC do udostępniania kodu w Flutter i AngularDart

Jest to nieco bardziej złożony sposób zarządzania stanem niż korzystanie z biblioteki provider , ale opłaca się, jeśli masz złożoną aplikację, w której wprowadzasz zmiany w tych samych danych z wielu źródeł i musisz reagować na te zmiany z wielu miejsc.

Jeśli w końcu nie będziesz używać BLoC lub provider , będziesz musiał wymyślić jakąś metodę zarządzania stanem w Twojej aplikacji, szczególnie w przypadku powiadomień.

Jak Flutter wypada w porównaniu z innymi frameworkami hybrydowymi

Reaguj natywnie

React Native jest jak dotąd najpopularniejszym i odnoszącym sukcesy frameworkiem hybrydowych aplikacji mobilnych i nie bez powodu. Wymagało to popularnego i dobrze wykonanego front-endowego frameworka internetowego, React, i pozwoliło milionom programistów front-endowych zacząć pisać również aplikacje mobilne. Jestem przekonany, że wiele wspaniałych aplikacji mobilnych, które mamy dzisiaj, nigdy nie powstałoby, gdyby programiści musieli znaleźć czas i motywację, aby nauczyć się natywnych SDK dla systemów iOS i Android.

W tym kontekście jestem przekonany, że Flutter ostatecznie zwycięży jako wiodący hybrydowy framework aplikacji mobilnych. Powodów jest kilka.

Komponenty React Native są opisane w kodzie JavaScript i przetłumaczone na kontrolki natywne. Oznacza to, że użytkownicy otrzymują inny interfejs użytkownika w wersjach aplikacji na iOS i Androida. Jeśli programiści starają się zapewnić swoim użytkownikom natywne wrażenia, to świetnie.

Oznacza to jednak również, że jeśli programiści chcą mieć ten sam, spójny interfejs użytkownika na obu platformach mobilnych, muszą ciężko pracować, aby stylizować komponenty natywne tak, aby wyglądały tak samo lub używać różnych komponentów, które zapewniają ten sam wygląd i działanie na obu platformy.

Porównajmy to z Flutterem, gdzie framework udostępnia własne widżety na wszystkich obsługiwanych platformach. Nie ma tłumaczenia, ponieważ Flutter nie polega na natywnych kontrolkach do malowania interfejsu użytkownika. Zamiast tego używa własnej biblioteki kontrolek. Biblioteka widżetów Fluttera zapewnia widżety, które wyglądają jak natywne kontrolki, ale są całkowicie opcjonalne.

Takie podejście ma swoje plusy i minusy. Największym plusem jest to, że masz teraz dokładnie tę samą aplikację na obu platformach. Ale rezygnujesz z niektórych rzeczy, aby to osiągnąć.

Ponieważ Flutter używa własnych widżetów zamiast natywnych, nie możesz używać mnóstwa istniejących bibliotek zapewniających niestandardowe kontrolki, tak jak możesz, przy minimalnym nakładzie pracy w React Native. W React Native dość łatwo jest napisać małe opakowanie wokół dowolnej istniejącej kontrolki natywnej i sprawić, by działała. Właśnie dlatego w tej chwili nie ma stabilnej implementacji Map Google dla Fluttera.

Jednak obecnie trwają prace nad możliwością osadzania natywnych kontrolek i jest ona dostępna w wersji zapoznawczej dla programistów, co oznacza, że ​​można jej używać, ale może być konieczne zmaganie się z błędami. Po wydaniu zamknie tę dość dużą lukę w funkcjonalności w Flutter w porównaniu z React Native.

Ta sama funkcja Flutter — wykorzystująca własną bibliotekę widżetów zamiast natywnych — zapewnia ogromną korzyść, gdy chcesz stworzyć całkowicie nowy komponent. W React Native musiałbyś zbudować komponent natywny dla platformy i zaimportować go do swojej aplikacji za pomocą powiązań.

Dzięki Flutter możesz tworzyć niestandardowe komponenty bezpośrednio w kodzie Dart. Masz pełną kontrolę nad interfejsem użytkownika dzięki widżetom, takim jak CustomPainter , które pozwalają rysować, czego potrzebujesz, i masz dostępną bibliotekę widżetów, które umożliwiają implementację niestandardowych animacji. Aby zbudować te niestandardowe widżety, nigdy nie musisz wychodzić poza bazę kodów Dart.

Myślę, że to jedna z największych zalet Fluttera. Masz pełną kontrolę nad swoim interfejsem użytkownika z kodu Dart i nie musisz się już martwić o naukę natywnego pakietu SDK dla platform, dla których tworzysz.

Apache Cordova

Apache Cordova to nie tyle framework, co wrapper przeglądarki. Dzięki Cordova budujesz swoją aplikację przy użyciu technologii internetowych: HTML, CSS i JavaScript. Cordova umożliwia uruchamianie tej aplikacji internetowej na platformach mobilnych i udostępnia natywne interfejsy API platformy w języku JavaScript, dzięki czemu aplikacja może wchodzić w interakcje z platformą.

Istnieje wiele różnych frameworków stworzonych dla Cordova. Jednym ze słynnych, z których korzystałem w przeszłości, jest framework Ionic. Zapewnia zestaw komponentów interfejsu użytkownika, które wyglądają i działają podobnie do natywnych komponentów platformy. Jednak te komponenty są implementowane przy użyciu HTML/CSS/JavaScript.

Doświadczenie programistyczne z Cordova i Ionic jest naprawdę przyjemne, a rozpoczęcie pracy jest bardzo szybkie, jeśli jesteś już programistą internetowym. Ponieważ tworzysz aplikacje przy użyciu technologii internetowych, masz do dyspozycji cały ekosystem sieciowy. Pomyśl o setkach tysięcy małych komponentów i bibliotek opartych na HTML/CSS/JavaScript, a możesz użyć większości – jeśli nie wszystkich – z nich. Oznacza to, że większość „widżetów”, których potrzebujesz, jest już dostępna online.

Jest to jednak również minus. Ponieważ do tworzenia aplikacji używasz technologii internetowych, należy bardzo zadbać o to, aby aplikacja wyglądała i działała jak aplikacja mobilna, a nie tylko witryna internetowa, która została zmniejszona do pracy na urządzeniach mobilnych.

Chociaż Cordova to świetny sposób na stworzenie MVP lub nawet kilku pierwszych wersji Twojej aplikacji, pierwsza aplikacja, którą zbudowałem we Flutterze, była portem aplikacji Ionic. Ulepszenia wydajności, które uzyskaliśmy, szczególnie w widokach, które zawierały dużo treści do przewijania, były zauważalne od pierwszej interakcji.

Xamarin

Nie mam żadnego doświadczenia z Xamarianem, więc nie mogę uczciwie porównać tych dwóch. Jednak podczas moich badań natknąłem się na świetny artykuł, który jest uczciwym porównaniem.

Choć artykuł kończy się remisem między Flutterem i Xamarianem, mogę śmiało powiedzieć, że gdybym go czytał i musiał dokonać wyboru między dwoma frameworkami, wybrałbym Fluttera, ponieważ to, w czym błyszczy, to rzeczy że cenię więcej.

Przegląd techniczny Fluttera

Flutter: „Silnik gry” hybrydowych frameworków aplikacji

Wśród hybrydowych frameworków aplikacji mobilnych Flutter ma wyjątkowe podejście. Nie deleguje interfejsu użytkownika do platformy natywnej ani nie używa widoku internetowego. Zamiast tego Flutter używa własnego silnika renderującego do malowania interfejsu użytkownika. Jest to podobne do tego, w jaki sposób gry wykorzystują silnik gry, który generuje wszystkie części ich interfejsów użytkownika, zamiast używać natywnych kontrolek.

Flutter używa wysokowydajnego, sprawdzonego w boju silnika graficznego Skia, aby narysować wszystko w Twojej aplikacji mobilnej. Korzystanie ze Skia zapewnia dwie główne korzyści, o których mogę pomyśleć, chociaż jestem pewien, że inżynierowie Google stojący za Flutterem mieli na uwadze o wiele więcej:

  1. Twoja aplikacja będzie wyglądać dokładnie tak samo na wszystkich platformach, bez konieczności dostosowywania do każdej z nich.
  2. Twoja aplikacja uzyska świetną wydajność, podobną do aplikacji natywnych, ponieważ nie ma warstwy pośredniej, która musiałaby przetłumaczyć Twój kod na kod platformy natywnej, aby narysować widżety.

Wszystko jest widżetem

Dokumentacja Fluttera mówi o Flutterze jako „strukturze w stylu React”. Jest to widoczne w sposobie budowania aplikacji poprzez łączenie mniejszych widżetów ( komponentów w terminologii React).

Jednak Flutter przenosi podejście wszystko jest widżetem o krok dalej niż jakikolwiek inny framework, z którym pracowałem.

Prostym przykładem jest dopełnienie. W większości frameworków dopełnienie jest atrybutem elementów interfejsu użytkownika. We Flutter, Padding to widżet, który może zawijać w siebie inne widżety i dodawać dopełnienie wokół widżetu podrzędnego.

Co więcej, InheritedWidget nie ma interfejsu użytkownika i nie zapewnia interakcji z użytkownikiem. Jego jedynym zadaniem jest dodanie informacji do drzewa widżetów, dzięki czemu w pewnym momencie głęboko w drzewie można je wyciągnąć.

Na przykład katalog główny aplikacji — widżet MaterialApp — może wstrzyknąć usługę uwierzytelniania do drzewa widżetów przy użyciu InheritedWidget . Teraz, głęboko w drzewie na innej stronie, na przykład na stronie profilu użytkownika, możesz użyć metody, aby wyodrębnić tę usługę uwierzytelniania i użyć jej.

To podejście „ wszystko jest widżetem ”, do którego trzeba się przyzwyczaić. Ale kiedy już się z nim zapoznasz, staje się potężnym sposobem budowania funkcjonalności w twoich aplikacjach.

Trzepotanie, strzałka i kopanie w źródle

Flutter jest blisko związany z Dartem. Chociaż silnik renderowania rdzenia jest zbudowany w C/C++, to tylko niewielka część Fluttera.

Większość kodu Fluttera jest napisana w Dart i istnieją doskonałe powody, dla których zespół Fluttera go wybrał. Ale największą korzyścią dla mnie było to, że mogłem z łatwością spojrzeć na kod źródłowy frameworka — i wszystkie różne widżety, które zapewnia — i uczyć się z nich.

Jest to potężniejsza zaleta, niż wielu programistów zdaje sobie z tego sprawę. Zalecam, aby większość programistów próbowała znaleźć odpowiedzi w kodzie ich frameworków/bibliotek, ponieważ nie tylko pomaga im to zrozumieć, co dzieje się pod okładkami, ale także wystawia ich na wysokiej jakości, dobrze zaprojektowany kod, co jest pewnym sposobem rozwoju jako deweloper.

Interoperacyjność platform natywnych

Podczas gdy Flutter zapewnia warstwę interfejsu użytkownika, a logikę biznesową można łatwo obsługiwać za pomocą czystych pakietów Dart, aby uzyskać dostęp do możliwości natywnej platformy, takich jak geolokalizacja i sterowanie kamerą, najłatwiejszą strategią jest użycie zewnętrznych pakietów pub.dev.

Jeśli jednak potrzebujesz funkcjonalności, która nie jest dostępna w istniejącym pakiecie, napisanie jej samodzielnie nie jest zbyt trudne. Sam nie budowałem żadnych pakietów natywnych dla platformy, ale z ciekawości przyjrzałem się kodowi źródłowemu wielu.

Mimo że nie jestem natywnym programistą aplikacji, byłem w stanie w większości zrozumieć natywne części tych wtyczek i zobaczyć, jak łączą się ze środowiskiem wykonawczym Dart poprzez przekazywanie wiadomości. Dla doświadczonych programistów platform natywnych tworzenie nowego pakietu w celu wykorzystania natywnej możliwości będzie bardzo łatwe.

Czy powinieneś używać Fluttera w swoim następnym projekcie?

Mamy nadzieję, że ten artykuł dostarczył Ci wystarczających informacji, aby zdecydować, czy możesz używać Fluttera w swoim projekcie aplikacji mobilnej. Próbowałem przedstawić zrównoważony obraz Fluttera, wymieniając zarówno zalety, jak i wady.

Choć nikt nie może podjąć za Ciebie decyzji, mogę udzielić Ci pożegnalnej rady, jak podejść do kwestii wykorzystania Fluttera w kolejnej aplikacji mobilnej. Jeśli zalety Fluttera mogą zapewnić wszystkie możliwości, których potrzebuje aplikacja, wybrałbym ją w mgnieniu oka.

Dzieje się tak dlatego, że poza kilkoma obszarami, w których obecnie brakuje Fluttera, wszystkie inne jego aspekty są tymi, które podziwiam i na których polegam przy opracowywaniu i uruchamianiu pięciu różnych aplikacji Flutter w zeszłym roku:

  • Łatwość rozpoczęcia pracy przez Flutter
  • Przyrost prędkości, który można uzyskać dzięki użyciu frameworka, który został zaprojektowany od podstaw, aby skupić się na szybkości rozwoju
  • Bogaty ekosystem łatwo dostępnych bibliotek Dart i pakietów stron trzecich
  • Inny, ale niezwykle produktywny sposób tworzenia aplikacji przy użyciu podejścia „ wszystko jest widżetem

Ci, którzy oferują usługi tworzenia aplikacji mobilnych, powinni poważnie przyjrzeć się Flutterowi, jeśli jeszcze tego nie zrobili.

Zakończę, odnotowując ostatnią zaletę Fluttera: ma jedną z najlepszych dokumentacji dowolnej biblioteki lub frameworka, z którymi pracowałem. Rzadko wyszukuję pytanie Fluttera, na które nie odpowiada strona z własnej witryny Fluttera.

Powiązane: samouczek Flutter: Jak stworzyć swoją pierwszą aplikację Flutter

Status Partnera Google Cloud.

Jako Partner Google Cloud, certyfikowani przez Google eksperci Toptal są dostępni dla firm na żądanie w ich najważniejszych projektach.