• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Flutter - działanie, wydajność

VPS Starter Arubacloud
0 głosów
961 wizyt
pytanie zadane 25 września 2019 w Inne języki przez BT101 Stary wyjadacz (12,540 p.)
edycja 25 września 2019 przez BT101

https://flutter.dev/docs/resources/faq 

Flutter is Google's portable UI toolkit for crafting beautiful, natively compiled applications for mobileweb, and desktop from a single codebase.

Czy to oznacza, że z jednej aplikacji można zbudować apke na ios, android, macos, windows, linux i jeszcze dodatkowo web?

Jeśli tak to: w jaki sposób to jest w ogóle możliwe? Bo np taki electron działa na chromium i to zrozumiałe, że jest cross-platform bo działa mniej więcej jak zwykła apka web + przeglądarka. A tutaj jak to się dzieje, że to nie tyle, że jest cross platform to jeszcze na różne urządzenia?

Co z wydajnością takiego rozwiązania? Czy to nie będzie wielka kobyła, która będzie się ścinała na każdym smartfonie oprócz flagowców?

komentarz 25 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Generalnie Flutter służy do aplikacji mobilnych i tu działa to dobrze. Aplikacje webowe są w fazie rozwojowej, jeszcze trochę czasu minie zanim to będzie się nadawać do praktycznego wykorzystania. Choć dla Darta jest coś jak DAngular, a w samym Dartcie od dawna się pisze appki webowe (choć nie jest to popularne), nie wiem jak będzie to wyglądać w połączeniu z Flutterem. Co do appek desktopowych, to nie mam pojęcia jak to wygląda, ale czytałem że aplikacje dla nowego systemu Google (Fuchsia OS) mają powstawać w Dart i Flutter.

2 odpowiedzi

+3 głosów
odpowiedź 25 września 2019 przez KubenQPL Maniak (62,820 p.)
wybrane 25 września 2019 przez BT101
 
Najlepsza

Właśnie flutter był od początku projektowany pod wieloplatformowość i wydajność i całkiem nieźle im się to udało dodatkowo bardzo dobrze ogarnęli hot reload który rzeczywiście działa.

Multiplatformowość - Taka multiplatformowość jest możliwa bo flutter sam w sobie jest tylko od UI, renderer jest tak jakby interfacem a zaimplementować go można pod każdą platformę, więc żeby umożliwić działanie na nowej platformie wystarczy zrobić renderer pod nią - oczywiście jest to uproszczenie, ale mniej więcej tak to wygląda.

Wydajność - Flutter jest wydajny bo jest kompilowany do kodu natywnego, tylko w wersji debugowej dla umożliwienia hot reloadów i przyspieszenia kompilacji aplikacje działają na dartowej VM (tak jak javowe programy działają na JVM)

Framework UI? Co z Rest API, Bluetooth itp?? - Flutter sam w sobie umożliwia tworzenie interfejsów, reszta to albo standardowe biblioteki Darta (o tym później), biblioteki społeczności oraz własny kod natywny i method/event channel'e. Więc można w tym zrobić pełnoprawną aplikację, jeśli się nie mylę to jaką tylko byśmy chcieli ale nie zawsze będzie to najlepszym rozwiązaniem. Biblioteki społeczności zwykle są we wczesnych wersjach więc mogą działać kiepsko. Własny kod natywny robimy w osobnych folderach dla ios i androida a potem z poziomu fluttera wywołujemy kod natywny bridgem w postaci MethodChannel'a lub nasłuchujemy wydarzeń EventChannelem.

Rozmiar aplikacji - aplikacje flutterowe są nieco większe bo minimalnie zajmować będzie około 4.5MB - jest tak ze względu na brak VM - nasza aplikacja musi posiadać biblioteki standardowe w sobie.

Architektura - Flutter jako że jest jeszcze młodym frameworkiem raczej nie ma jeszcze dojrzałej architektury, jednak dosyć dużym powodzeniem cieszy się BLoC, jednak jak mówiłem nie jest jeszcze dojrzały albo przynajmniej wspomniana implementacja nie jest w pełni przemyślana i ma parę niedopatrzeń.

Mimo tych wszystkich udogodnień uważam że ciężko by było zrobić aplikację na wszystkie wymienione powyżej platformy, a przynajmniej nie z totalnie jednym code base, ale na pewno wiele można by było uwspólnić. Jednak tworzenie aplikacji multiplatformowych ios+android da się bardzo dobrze zorganizować i to ma jak najbardziej sens ponieważ większość bibliotek wspiera właśnie te dwie platformy.

 

komentarz 25 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Dobra wypowiedź, wreszcie ktoś sensownie podsumował Fluttera.

Może te appki "desktopowe" będą na zasadzie jak Electron w świecie JS?
komentarz 25 września 2019 przez BT101 Stary wyjadacz (12,540 p.)

 uważam że ciężko by było zrobić aplikację na wszystkie wymienione powyżej platformy, a przynajmniej nie z totalnie jednym code base

Google tak to reklamuje więc może do tego dążą? Tutaj ktoś jeszcze napisał, że z tymi apkami web są na wstępnym etapie ale pracują nad tym więc może faktycznie taki jest ich cel.

Min 4.5 mb to i tak nie dużo w porównaniu do electrona, gdzie chromium waży z 50 mb.

komentarz 25 września 2019 przez KubenQPL Maniak (62,820 p.)
No dążą do pełnej multiplatformowści ale web jest w tym momencie jako tech preview, flutter desktop też gdzieś tam jest na jakichś alpha/beta channelach na ich githubie ale na razie nie ma nawet podstrony. Ale w końcu to dojdzie do release :D największy interes mieli w mobilkach bo to w sumie największy rynek pod multiplatformowość to na tym się skupili
komentarz 25 września 2019 przez BT101 Stary wyjadacz (12,540 p.)
edycja 25 września 2019 przez BT101

Spróbuje stworzyć hello worlda apke, która by działała i na mobile i na desktop i na web. Z tego całego Darta (nigdy nie widziałem 1 linii kodu tego) można oczywiście robić http requesty? nevermind, użyłem google 

komentarz 25 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Można API w Dart, robi się strony internetowe w Dart. Ale tak jak pisałem, rzadko kto w tym siedzi. Jest moduł do wykonywania żądań http o nazwie http :)

https://blogprogramisty.pl/blog/optymalizacja-zadan-asynchronicznych-w-dart-i-flutter-future-wait
komentarz 25 września 2019 przez KubenQPL Maniak (62,820 p.)
i tak odpowiem - można i to dosyć łatwo z użyciem standardowej biblioteki. JSa dużo nie używałem ale dart wydaje się podobny, a asynchroniczność chyba jest zrobiona identycznie
komentarz 25 września 2019 przez BT101 Stary wyjadacz (12,540 p.)

 JSa dużo nie używałem ale dart wydaje się podobny, a asynchroniczność chyba jest zrobiona identycznie

To dużo ułatwi :).

Myśl o 1 apce, którą można by było zbuildować na wszystkie te systemy jest dla mnie ekscytująca. Dużo by to usprawniło tworzenie apek szczególnie dla startupów technologicznych gdzie trzeba ciąć koszta a fajnie mieć od początku apke na wszystkie systemy.

komentarz 26 września 2019 przez reaktywny Nałogowiec (40,650 p.)

Jest więcej takich możliwości: JS+Vue+Quasar ( https://quasar.dev/introduction-to-quasar ), Python+Kivy otrzymasz kod na kilka platform (bez Web) i pewnie inne.

komentarz 26 września 2019 przez BT101 Stary wyjadacz (12,540 p.)
Quasara znam ale on buduje desktop do electrona, którego nie lubie ze względu na wielkość :/
komentarz 27 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Większość rozwiązań JS-owych bazuje na Electronie.
0 głosów
odpowiedź 25 września 2019 przez vodnik Obywatel (1,270 p.)
Na logikę apka napisana w samej Javie, Kotlinie czy Swift będzie wydajniejsza. Google ma zwyczaj porzucania swoich technologii.
komentarz 25 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Szanse że porzucą nie są duże, ze względu na system Fuchsia OS.
komentarz 25 września 2019 przez vodnik Obywatel (1,270 p.)
Ale kiedy się pojawi ten FuchsiaOS i czy w ogóle się pojawi? Za 10- 15 lat?
komentarz 25 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Kilka lat (~2-4?), ponoć prace są zaawansowane.
komentarz 25 września 2019 przez vodnik Obywatel (1,270 p.)
HarmonyOS od Huawei niby już się pojawił, ale mało na niego aplikacji. Tak samo było z Tizen i WebOS od Samsunga i LG.
komentarz 26 września 2019 przez reaktywny Nałogowiec (40,650 p.)
Ale Google to potęga, mają znacznie większą siłę przebicia.

Podobne pytania

+1 głos
0 odpowiedzi 202 wizyt
pytanie zadane 10 listopada 2022 w Inne języki przez reaktywny Nałogowiec (40,650 p.)
0 głosów
0 odpowiedzi 162 wizyt
pytanie zadane 15 grudnia 2021 w Inne języki przez MatiZeb Obywatel (1,160 p.)
0 głosów
0 odpowiedzi 340 wizyt
pytanie zadane 4 sierpnia 2021 w Inne języki przez assassin Gaduła (3,260 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...