Google Flutter - używacie? Jak oceniacie?

Google Flutter - używacie? Jak oceniacie?
A1
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 lata
  • Postów:311
0

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?

edytowany 1x, ostatnio: adriano1995
viader
  • Rejestracja:około 12 lat
  • Ostatnio:około miesiąc
  • Postów:167
1

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.

HE
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Kraków
  • Postów:269
0

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.

DE
Pewnie będzie tak jak z Angularem :P
Silv
@Desu: A co z Angularem?
DC
  • Rejestracja:około 12 lat
  • Ostatnio:około 2 godziny
  • Postów:409
0

Moze cos z tego Fluttera bedzie a moze...
https://imgs.xkcd.com/comics/standards.png

Michał Sikora
Michał Sikora
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
0

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.

edytowany 2x, ostatnio: Michał Sikora
CH
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 2 lata
1

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.
LE
  • Rejestracja:około 8 lat
  • Ostatnio:5 miesięcy
  • Postów:30
0

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.

ajgoron
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Rzeszów
  • Postów:91
0

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ę?


"Jedna robótka - miesiąc wódka" - Ojciec Pijo
Silv
Górnictwo. ;)
DE
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 2 lata
  • Postów:7
0

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

M4
  • Rejestracja:około 5 lat
  • Ostatnio:około 5 lat
  • Postów:9
0

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?

P2
Dokładnie, Java umiera, tak od ok 25lat już
SO
No nie do końca od 25, bo 25 lat temu jeszcze nie istniała. Umiera od jakichś 5-10 ;)
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
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


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
M4
No dobrze, ale jak ktoś nie ma studiów informatyczny i chce trochę dorobić, to skazany jest na Kotlin i PHP?
KamilAdam
A gdzie ja tak powiedziałem? Nie rozumiem niestety o co Ci chodzi
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
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.

Zobacz pozostałe 2 komentarze
KamilAdam
Właśnie o to porównanie mi chodzi. Jeśli dobrze Cię zrozumiałem napisałeś że Xamarina jest lepsza od Fluttera bo używa C# zamiast Kotlina. Nie znam Xamarina ani Fluttera. Ale trochę znam C# i Kotlina. Dlatego chciałbym wiedzieć w czym C# jest lepszy od Kotlina. Lepsze wsparcie? Więcej tutoriali? Jakieś dobre feature'y w języku? Istnieje oczywiście możliwość że zrozumiałem Cię totalnie źle :D
ME
Eee, źle coś rozumiesz. Po pierwsze, to nie napisałem, że Xamarin jest lepszy, tylko że jedną z zalet (pewnie jedyną) w porównaniu do Fluttera, jest język C# zamiast Darta, a poza tym, Xamarin jest pod każdym względem gorszy. Do Kotlina C# nie porównuję, chociaż jestem pewny że C# jest bardziej zaawansowany.
KamilAdam
AAA, bo Fluter używa Darta. Pomroczność miałem. Dzięki za wyjaśnienie
Roman Mokrzan
C# ma tę zaletę że jest masa robotników którzy ten język znają i mogą ci zrobić apkę, to samo tyczy się Javy; tego nie ma Kotlin - ludzi którzy go znają i wskakują i robią na już; uwaga - robotnicy lubią się nazywać rzemieślnikami, albo programistami, albo nie daj Boże artystami od kodowania
KamilAdam
@Roman Mokrzan: średnio ogarnięty programista Javy jest w stanie nauczyć się Kotlina w 15-30 minut
BI
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:47
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.

edytowany 2x, ostatnio: bilborrd
LP
  • Rejestracja:około 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:365
0

Ja się przesiadam na fluttera.

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
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ł

Michał Sikora
Michał Sikora
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
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ć.

edytowany 2x, ostatnio: Michał Sikora
BI
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:47
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.

Michał Sikora
Michał Sikora
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
0

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

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
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/plugins/tree/master/packages/shared_preferences/shared_preferences/ios a tu dla Androida: https://github.com/flutter/plugins/tree/master/packages/shared_preferences/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ć

edytowany 1x, ostatnio: Meini
DC
  • Rejestracja:około 12 lat
  • Ostatnio:około 2 godziny
  • Postów:409
2

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

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
1

Prawdopodobnie chcą mieć pełną kontrolę. Swój język i pełna swoboda w realizacji swojej wizji. Dart jest coraz lepszy, chociaż faktycznie niektóre założenia mogą wyglądać dziwnie.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)