wtorek, 19 lipca 2022

Kr贸tka opinia na temat Fluttera

Poprogramowa艂em ostatnio troch臋 we Flutterze i chcia艂em si臋 z wami podzieli膰 opini膮 na temat tej technologii. Z perspektywy osoby zajmuj膮cej si臋 webem - rewelacji nie ma.

W programowaniu zwykle trudno jest wymy艣li膰 co艣 zupe艂nie nowego. Dotyczy to te偶 GUI. Tworzenie interfejs贸w u偶ytkownika z perspektywy kodu, podzieli艂bym na dwa podej艣cia. 

  • Rozdzielanie warstwy wizualnej od j臋zyka programowania za pomoc膮 XML lub HTML
  • Tworzenie GUI za pomoc膮 samego j臋zyka programowania

Pierwsze podej艣cie jest dla mnie bardziej zrozumia艂e. Przyk艂adowo - w HTML tworzymy poszczeg贸lne elementy, dodajemy formularz i za pomoc膮 drzewa DOM pobieramy jego warto艣膰. Ca艂o艣膰 stylujemy za pomoc膮 CSS. Jedno spojrzenie na warstw臋 prezentacji i od razu widzimy, gdzie znajduj膮 si臋 poszczeg贸lne elementy GUI. Mo偶na je 艂atwo przenosi膰 czy usuwa膰.


W drugim podej艣ciu, ca艂o艣膰 komponentu tworzymy jako kod w j臋zyku programowania. Np. w Javie w Swingu wszystko tworzymy w kodzie, nie jest potrzebna warstwa "szkieletu". Te podej艣cie przyj膮艂 te偶 Flutter.

Kt贸re rozwi膮zanie jest lepsze? Moim zdaniem, to pierwsze, poniewa偶 rozdziela warstw臋 prezentacji danych od styl贸w i zachowania. Webowy React oferuje mo偶liwo艣膰 "r臋cznego" generowania HTML, kt贸re mo偶e przypomina膰 nieco Fluttera. Rozwi膮zanie to jest traktowane dzi艣 jako ciekawostka, poniewa偶 JSX jest znacznie prostszy.

Wydaje mi si臋, 偶e we Flutterze b臋dzie trzeba rozwi膮zywa膰 problemy, kt贸re w innych frameworkach GUI zosta艂y rozwi膮zane ju偶 dawno. Sp贸jrzmy na kod:

https://docs.flutter.dev/get-started/codelab

Mamy tutaj kilka linijek kodu, a ju偶 mo偶na dopatrze膰 si臋:

  • Pe艂nego powi膮zania 3 warstw (stylowanie, wy艣wietlanie, zachowanie)
  • Mo偶liwego problemu z osobnym stylowaniem r贸偶nych komponent贸w kt贸re powinny mie膰 wsp贸lne style (paddingi w pierwszej linii w builder)
  • Mo偶liwych problem贸w z podmian膮 styl贸w w p贸藕niejszym czasie

Tooling dla Fluttera jest niez艂y, w Android Studio czasem pojawiaj膮 si臋 b艂臋dy przy pokazywaniu hierarchii element贸w, ale stanowi to jedynie niewielk膮 niedogodno艣膰. Dokumentacja Fluttera jest wzorowa. Sam framework czerpie pe艂nymi gar艣ciami z koncepcji Reacta i Reduxa, udost臋pniaj膮c na przyk艂ad stan jako element wbudowany. By膰 mo偶e technologia jeszcze dojrzeje i zmieni si臋, a mo偶e - z czasem to podej艣cie zostanie uznane za lepsze. Moim zdaniem 艂atwiej jest zrobi膰 prost膮 aplikacj臋 w React lub Angular.

Dajcie zna膰 w  komentarzach co s膮dzicie o Flutterze.

Brak komentarzy:

Prze艣lij komentarz