Firma Google udostępniła aktualizacje pakietów SDK Flutter i Dart, wprowadzając cały szereg ulepszeń umożliwiających ujednolicony rozwój na wielu platformach. Czytaj dalej, aby uzyskać więcej!
Trzepotanie jest wieloplatformowy framework programowania, którego celem jest rozwiązanie problemów związanych z tworzeniem aplikacji wieloplatformowych bez bałaganu związanego z nienatywnym kodem. Dzięki znajomości języka programowania Dart programista może tworzyć aplikacje na Androida, iOS, internetowe i komputerowe z ujednoliconym wyglądem interfejsu użytkownika. Trzepotanie 1.9 wprowadził obsługę macOS i Cataliny w stanie alfa, natomiast W wersji 1.12 wsparcie przekroczyło stan przedalfa. Teraz Google wypuściło nową wersję Fluttera v1.17 i Darta v2.8, co oznacza, że będą to pierwsze stabilne wydania Fluttera i Darta w 2020 roku.
Trzepotanie 1.17
W zeszłym miesiącu Google to zrobił ogłosił zmiany w procesie wydawania. We wcześniejszym procesie firmy brakowało jasności co do tego, kiedy będą tworzone wydania, jaki kod będzie w nich zawarty i tak dalej. Obecnie Google planuje dostarczać stabilne wydania mniej więcej w cyklu kwartalnym. To samo w sobie stwarzało kilka wyzwań, ponieważ infrastruktura wydawnicza musiała zostać przezbrojona na potrzeby procesu nowego wydania. Teraz Flutter 1.17 jest wypuszczany na stabilny kanał dla programistów. Od czasu poprzedniej wersji Flutter 1.12 firma Google zamknęła 6339 problemów i zamknęła więcej błędów niż została otwarta w tym roku, co doprowadziło do spadku netto o ~800 problemów.
Oprócz poprawek błędów, Flutter 1.17 wprowadza znaczną poprawę wydajności, lepszą obsługę Metal na iOS i zawiera nowe widżety Material.
Ulepszenia w wydajności
Aplikacje zbudowane przy użyciu Flutter 1.17 w porównaniu ze starszymi wersjami odnotują przyspieszenie o 20–37% w domyślnym przypadku nawigacji, w którym istnieją nieprzejrzyste i pozbawione przezroczystości trasy. Istnieje również znaczna poprawa rozmiarów aplikacji zbudowanych w Flutter 1.17. Na przykład próbka Flutter Gallery ma obecnie 8,1 MB w 2020 r. w porównaniu z 9,6 MB na koniec 2019 r. Jeśli chodzi o wykorzystanie pamięci, wersja 1.17 zapewnia 70% redukcję pamięci podczas szybkiego przewijania dużych obrazów.
Metal to niskopoziomowy interfejs API grafiki firmy Apple, który zapewnia niemal bezpośredni dostęp do bazowego procesora graficznego urządzeń z systemem iOS. Flutter domyślnie używa teraz Metalu podczas tworzenia aplikacji dla obsługiwanych urządzeń z systemem iOS, dzięki czemu aplikacje Flutter działają szybciej. Ulepszona obsługa Metalu zwiększa prędkość renderowania aplikacji na iOS średnio o około 50%. Na urządzeniach iOS, które nie obsługują w pełni Metal, a mianowicie urządzeniach z wersją iOS niższą niż 10 i wydaną przed procesorem A7, Flutter wraca do OpenGL.
Flutter 1.17 dodaje obsługę nowych widżetów Material. Istnieją również aktualizacje istniejących widżetów. Na przykład NawigacjaRail pomaga programistom dodawać responsywne modele nawigacji aplikacji do aplikacji i doskonale nadaje się do aplikacji, które mogą przełączać się między obudowami mobilnymi i stacjonarnymi. Zaktualizowano także widżety przepełnienia DatePicker i TextSelection: nowe elementy wizualne DatePicker odpowiadają zaktualizowanym wytycznym dotyczącym materiałów i dodają nowy tryb wprowadzania tekstu, podczas gdy TextSelection poprawiło teraz wierność w systemach iOS i Android, gdy przyciski są dłuższe, niż można wyświetlić bez nich wezbrany. Wreszcie Google udostępnia także nowy pakiet animacji, który zawiera gotowe animacje wdrażające nową funkcję Ruch materialny specyfikacja.
Inne zmiany w Flutter 1.17
- Firma Google zakończyła wdrażanie Typ Skala część specyfikacji Material Design 2018 bez psucia istniejących aplikacji Flutter.
- Czcionki Google dla Flutter v1.0 jest już również dostępny. Dzięki temu programiści mogą eksperymentować z dowolną czcionką i używać jej czcionki.google.com w ich aplikacji. Programista może zdecydować, czy powiązać czcionkę z plikiem APK, czy też użytkownik otrzyma czcionkę, pobierając ją z interfejsu API.
- Google poprawiło dostępność aplikacji Flutter, wprowadzając poprawki dotyczące przewijania, pól tekstowych i innych widżetów wejściowych.
- Google przygotowuje się także do zamiany aktualnej wersji Dart DevTools na nową wersję Flutter. Programiści mogą przetestować tę nową wersję, uruchamiając DevTools, a następnie klikając ikonę „breaker” w prawym górnym rogu DevTools. Największym ulepszeniem nowej wersji Flutter Dart DevTools jest nowa zakładka Sieć, która pokazuje ruch sieciowy dla Twojej aplikacji Flutter po naciśnięciu przycisku „Nagraj”.
- Kolejnym ulepszeniem jest eksperymentalna opcja „szybkiego startu”, która umożliwia rozpoczęcie debugowania aplikacji Flutter nawet o 70% szybciej podczas tworzenia aplikacji na Androida.
Google dziękuje także zespołowi Superformula za przerobienie całości Aplikacja MGM Resorts na Androida we Flutterze.
Dart 2.8
Dart to język programowania używany do tworzenia aplikacji we Flutterze. Wraz z wydaniem pakietu SDK Dart 2.8 Google wprowadza kilka zmian:
- Ulepszenia w pub narzędzie klienckie, które służy do zarządzania pakietami pobranymi z repozytorium pakietów pub.dev.
- Google poprawiło wydajność pub dostać dodając obsługę równoległego pobierania pakietów i opóźniania bieg pubowy prekompilacja.
- Google dodało także nowe narzędzie (pub przestarzały) w celu zapewnienia aktualności zależności pakietów.
- Przygotowanie do bezpiecznego stosowania wartości null, ponieważ referencje o wartości null są częstym źródłem awarii aplikacji, które mają miejsce, gdy kod próbuje odczytać zmienną o wartości null.
- Google przygotowuje się do dodania obsługi dźwięku zerowego w Dart, co zapewni, że wszystkie wyrażone zmienne będą miały wartości inne niż null.
- Wdrożenie systemu Sound Null Safety to ogromne przedsięwzięcie, które początkowo spowoduje przerwy w języku Dart i bibliotekach. Google chce, aby programiści byli tego świadomi te przełomowe zmiany i zgłaszaj wszelkie problemy na ich temat Lista problemow.
Więcej informacji na temat tych i innych zmian można znaleźć w postach ogłaszających Flutter 1.17 i Dart 2.8.