Witam, dopiero ostatnio dowiedziałem się o istnieniu narzędzia jakim jest Google Flutter (dla niewiedzących w skrócie: Flutter to narzędzie programistyczne, ułatwiające pisanie aplikacji jednocześnie na systemy Android i iOS).
Używacie tego narzędzia w pracy, a może swoich prywatnych projektach? Jak ludzie oceniają to narzędzie? Gdybym miał do napisania większą apkę w ograniczonym czasie to lepiej uczyć się Javy do napisania jej tylko na Androida, czy warto dodatkowo poświęcić troszkę czasu na Flutter-a i "za darmo" mieć także wersję na iOS?
Ucz się Kotlina i pisania aplikacji natywnych na Androida, próg wejścia jest mniejszy i więcej materiałów w sieci. Później pewne koncepcje będą dla Ciebie bardziej przyjazne gdy spróbujesz pisać w Flutterze.
Flutter póki co to jedna wielka niewiadoma, więc obstawianie wszystkiego na tę kartę może być mało rozsądne.
Rozwój ww. narzędzia zależy głównie od Googla i tego czy faktycznie za X lat namaszczą go jako główny sposób rozwoju oprogramowania na ichniejszy OS.
Moze cos z tego Fluttera bedzie a moze...
https://imgs.xkcd.com/comics/standards.png
Bawiłem się kilka razy Flutterem. Jest o tyle fajny, że szybko można uzyskać ładne efekty, ale nie interesuje mnie z dwóch powodów. Po pierwsze lepszym rozwiązaniem do wielu platform jest moim zdaniem natywne współdzielenie kodu albo aplikacja webowa. Po drugie to dopóki Flutter nie będzie wspierał na Androidzie zapisania stanu aplikacji wraz ze śmiercią procesu, dopóty nie jestem w stanie go traktować bez rezerwy.
Używam Fluttera w pracy i polecam. Porównam z pisaniem w natywnym iOSie:
- Dobrze przemyślana architektura: flutter renderuje każdy piksel więc tworząc UI mamy pełną kontrolę, można robić różne dziwne animacje na poziomie natywnych.
- System widgetów: Podoba mi się o wiele bardziej niż edytowanie storyboardów. Zamiast bawić się z NSLayoutConstraint mamy widżet do marginesów, centrowania, układania w wiersze i kolumny, itp. Jest to bardziej czytelne, kod można ocenić podczas code review, reużywanie widoków jest łatwiejsze.
- Hot reload: Twórcy fluttera oficjalnie to wspierają, dlatego działa to całkiem nieźle. Edytujemy kod i po zapisaniu zmiany są nanoszone bez zabijania aplikacji. Bez tego tworzenie widoków w kodzie byłoby męczarnią.
- Dobra integracja z IDE: używam VSCode i działa to świetnie, lepiej niż Xcode. Podpowiadanie składni, refactoring, autoformatowanie.
- Wydajność: UI działa płynnie, nie zacina się.
- Narzędzia: We flutterze wszystko można robić z linii poleceń: stworzyć projekt, uruchomić go, odpalić testy, włączyć symulator, zainstalować pakiety.
Oczywiście nie jest to jakaś idealna techologia:
- Dart: dosyć lipny język z prymitywnym systemem typów, połączenie Javy z JavaScriptem, Parsowanie jsonów to po prostu mordęga. Chociaż przyznam że ma też ciekawe rzeczy: mixiny, async/await, składnia konstruktorów.
- Google: firma znana z ubijania technologii
- Brakujące funkcjonalności: wspomniany przez poprzednika brak wznawiania stanu aplikacji, nie do końca natywna obsługa klawiatury, itp.
- Integracja z natywnymi komponentami: chcąc np. mieć czytnik kodów kreskowych zmuszeni jesteśmy do korzystania z lipnej jakości pluginów, albo forkowania ich.
Dopiero co wyszła wersja 1.0 więc jeszcze dużo rzeczy brakuje w flutterze. O ile google tego nie ubije, to jeszcze dużo czasu upłynie zanim będzie można w tym pisać aplikacje dla klientów. Nie wspominam tu o dużych projektach których pisanie w takich technologiach jak flutter, react native czy xamarian to samobójstwo. Co innego małe projekt czy g**no apki.
Hej hej! Wybaczcie górnictwo ale chciałbym podbić temat i nie zakładać nowego wątku. Jak Waszym zdaniem ma się Flutter na początku '20? Czy po ponad roku od zadania pytania przez OP'a poszlibyście w tę technologię?
Osobiście nie korzystałem ale robiłem kilka dni temu ofertowanie w imieniu swojego klienta pośród dostawców aplikacji mobilnych i 6 z 14 firm zasugerowało wykonanie jej we Flutterze, 2 w RN a pozostali natywnie. Większość tych firm to były dość duże softearehausy, a sama aplikacja dość złożona. Kilka firm pytałem o Fluttera i słyszałem same pozytywy, jednak osobiście wole RN z uwagi na większą dojrzałość i community, pozdrawiam
Ciekawi mnie co z Javą pod Androidem? Uczę się teraz Javy i widzę, że pisanie aplikacji pod Android to teraz Flutter i Kotlin. Poza backendem gdzie jeszcze czysta Java ma zastosowanie? Czy ten język pomału umiera?