Google Flutter - używacie? Jak oceniacie?

1

Java na chwilę miała flirt z mobilkami. Straciła to i od razu krzyk że umiera. Od ponad 10 lat Java to głównie aplikacje serwerowe. Wielu ją atakuje z każdej strony, ale managerowie projektów aplikacji webowych są staroświeccy i będą chcieć żeby używać Javy przez kolejne 10 czy więcej lat

2

Ale nikt nie zabrania pisać w Javie na Androida. Jak chcesz w Javie, to pisz w Javie. Nic tu nie umiera, w Javie zrobisz wszystko to, co i w Kotlinie. Nikt Javy nie wycofał z Androida i nie wycofa.

Co do Fluttera, to według mnie warto się uczyć, bo to może być przyszłościowe. To będzie funkcjonalnie (bo nie ze względu na architekturę i sposób działania) taki lepszy odpowiednik Electrona - na wszystkie platformy - desktop, Android, iOS, ale też web i na nowy system Fuchsja (o którym na razie niewiele wiadomo). Według mnie, za daleko to już zaszło, żeby Google to teraz zaorał.

Wersja na Androida i iOS jest już gotowa do zastosowań produkcyjnych i wyprzedza o kilka długości ReactNative i Xamarina pod każdym względem. A zwłaszcza pod względem wydajności, czyli to, co w końcu najbardziej się liczy dla użytkowników końcowych. No, może zaletą Xamarina jest język C#, tylko co z tego, skoro wynik pracy to powolna, niestabilna kobyła?

Niektórzy wieszają psy na języku Dart, bo brak im tam ficzerów z C#, czy Scali. Ale imo to przesadzone, Dart jest za to prosty do nauki i najważniejsze rzeczy ułatwiające życie posiada. Zwłaszcza przejście z ReactNative powinno być proste, bo to mniej więcej podobny paradygmat.

0

Trochę odkopię wątek bo właśnie rozpocząłem swoją przygodę z Flutterem:)

Jako programista C++, poczułem się wypalony zawodowo i postanowiłem spróbować języka, który nie wypluwa pierdyliarda błędów linkera przy próbie dołączenia obsługi socketów. Z racji zapotrzebowania na rynku chciałem też żeby to był język typowo mobilkowy.

Tworzyłem już apki w Qt i w Xamarinie i crossplatform który sugerują producenci jest grubo przesadzony. Dla mnie prawdziwy cross jest wtedy kiedy w ogóle nie musimy tworzyć oddzielnego kodu dla specyficznej platformy. Co z tego, że część kodu jest współdzielona, jeśli i tak musimy przeglądać dokumentację dla każdego systemu jeśli chcemy np. włączyć wifi. W Xamarinie chociaż wszystko da się napisać w jednym kodzie (C#) bo w Qt niektórych rzeczy bez kodu Javy zwyczajnie nie zrobisz i koniec.

Co prawda we Flutterze nie miałem jeszcze okazji pisać bardziej skomplikowanych apek ale wygląda na to, że wreszcie jest to prawdziwy crossplatform. Swoją apke sprawdziłem na iOSie dopiero kiedy całkowicie skończyłem ją na Androidzie i ku mojemu ogromnemu zdziwieniu odpaliła od pierwszego kopa :) Dodatkowo na Antku schodziłem do najniższej wersji na jaką miałem emulatory i zawsze bez problemu. Jak dla mnie działa to naprawdę dobrze.

0

Ja się przesiadam na fluttera.

0

@bilborrd: ale musisz sobie uświadomić, że to i tak polega na końcu na kompilowaniu kodu innego dla każdej platformy w wielu przypadkach. Tyle, że jest to opakowane we wtyczki i nie musisz o to dbać, do czasu aż trafisz na coś, na co nikt wtyczki żadnej nie zrobił

0

Dokładnie tak jak napisał @Meini. Kod specyficzny dla platform będzie zawsze wymagał osobnego kodu dla każdej z nich + w języku docelowym. Niezależnie od tego co to będzie. Flutter ma tu jedyną przewagę, że Google pompuje w niego od groma pieniędzy, dzięki czemu rozwija się szybko społeczność i powstaje dużo pluginów, których w innych niszowych rozwiązaniach jeszcze może nie być.

0
Michał Sikora napisał(a):

Dokładnie tak jak napisał @Meini. Kod specyficzny dla platform będzie zawsze wymagał osobnego kodu dla każdej z nich + w języku docelowym. Niezależnie od tego co to będzie.

No właśnie Google twierdzi, że programy flutter kompilowane są do kodu maszynowego, więc język będzie zawsze ten sam.

0

Ale jakie to ma znaczenie, jeśli do napisania aplikacji jest potrzebny różny kod źródłowy?

1

Ale czego nie zrozumiałeś? Dostajesz standardowe paczki zawierające kod dla wszystkich platform. Używasz ich i nie musisz do nich zaglądać.

Np obsługa shared preferences. Tu kod dla iOS: https://github.com/flutter/pl[...]rences/shared_preferences/ios a tu dla Androida: https://github.com/flutter/pl[...]es/shared_preferences/android

Jeżeli teraz użyjesz shared preferences w swoim programie, to na Androidzie dołączany i kompilowany jest kod dla Androida w Javie lub Kotlinie, a na iOS kod przeznaczony na iOS w Swift. Nie musisz o tym wiedzieć jeżeli jest paczka, która robi co chcesz, ale jeżeli zechcesz kiedyś obsłużyć coś, na co nie ma wtyczki, to będziesz i tak musiał pisać kod na wszystkie platformy, które chcesz obsłużyć

2

Tylko po co ten Dart... Po Kotlinie ciężko się na to przestawić. A właściwie to "cofnąć".

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0