Nasza strona internetowa wykorzystuje pliki cookie, aby zapewnić najlepszą jakość i personalizację treści. Jeśli zaakceptujesz te warunki lub będziesz nadal korzystać z tej strony, będzie to oznaczać, że zgadzasz się z nasząPolityką Prywatności.

post

Kod specyficzny dla platformy we Flutterze

Mateusz
Mateusz, Flutter Developer
08.08.2022

Rozwój aplikacji międzyplatformowych jest głównym celem zestawu narzędzi Flutter (znanego również jako Flutter SDK). Przy użyciu jednej bazy kodu, w prosty sposób można tworzyć aplikacje na Androida, iOS i Web . Nie ma potrzeby rozwijania kodu specyficznego dla platformy podczas realizacji prostych projektów. Możesz łatwo zaprojektować swoją aplikację, korzystając z pakietów stworzonych przez społeczność deweloperów.

Ale co powinieneś zrobić, jeśli twoja aplikacja wymaga kodu związanego z konkretną platformą?

Wtyczki

Aby programiści mogli korzystać i budować aplikacje, istnieje niezliczona ilość wtyczek dostępnych na stronie https://pub.dev/. Ponieważ developer nie musi wkładać wiele wysiłku, aby odpowiednio wykorzystać wtyczki do ich maksymalnych możliwości, korzystanie z nich jest proste i wygodne.

Musisz dodać wtyczkę do pliku pubspec.yaml, aby użyć jej w swoim projekcie, na przykład:
share_plus: ^4.0.10

Zanim zaczniesz pracować nad danym rozwiązaniem, upewnij się, że nie zostało zrobione to wcześniej. Unikaj odkrywania koła na nowo. Możesz podłączyć urządzenia Bluetooth, korzystać z funkcji typowych dla platformy, takich jak udostępnianie treści za pomocą okna dialogowego udostępniania, i wiele więcej, korzystając z wielu wtyczek dostępnych na pub.dev. Przejrzyj dostępne wtyczki, aby zobaczyć, czy możesz znaleźć to, czego potrzebujesz.

Niestandardowy kod

Programiści czasami muszą wymyślić rozwiązania problemów, które nie są obecnie obsługiwane przez wtyczki lub wymagają indywidualnego podejścia. W tym celu należy używać kanałów platformy (ang. platform channels), aby dodać dostosowane do niej rozwiązania.

Komunikaty są przesyłane z hosta (platformy) do klienta (UI) za pomocą kanałów platformy. Wiadomości i odpowiedzi są wymieniane asynchronicznie, aby zachować responsywność interfejsu użytkownika. MethodChannel umożliwia wysyłanie wiadomości po stronie klienta, które odpowiadają wywołaniom metod. Metody specyficzne dla platformy pozwalają na odbieranie zapytań i zwracanie wyników.

Programiści mogą wysyłać i akceptować wartości takie jak booleans, integers i Strings, które są prostymi wartościami dostępnymi w standardzie JSON.

Jak stworzyć kod specyficzny do platformy?

Należy zacząć od stworzenia podstawowej aplikacji Flutter lub wykorzystać projekt, nad którym aktualnie pracujemy. Następnie należy otworzyć folder platformy, dla której chcemy zaimplementować kod (/android, /ios/, itd.). Dla naszego przykładu użyjemy kodu specyficznego dla platformy Android.

  • W pliku MainActivity.kt utwórz zmienną, która będzie przechowywała nazwę Twojego kanału.
  • Zainicjuj MethodChannel, a następnie użyj funkcji setMethodCallHandler wewnątrz metody configureFlutterEngine. 
  • Tam można zaimplementować natywną funkcjonalność i uzyskać dostęp do nazw wywoływanych metod, aby określić, która metoda powinna zostać wykonana. 
  • Po uzyskaniu wymaganych danych możesz je odesłać, przekazując argument do funkcji result.success(data).
  • Możesz użyć natywnej funkcjonalności wewnątrz swojej aplikacji Flutter po jej zaimplementowaniu. 
  • Użyj nazwy kanału, którą zadeklarowałeś w MainActivity.kt, aby utworzyć MethodChannel. 
  • Uzyskaj wyniki za pomocą invokeMethod(name) na skonstruowanym wcześniej MethodChannel. 
  • Nazwa argumentu powinna być taka sama jak nazwa funkcji specyficznej dla platformy, która została zaimplementowana.

Te same procesy są konieczne dla systemu Windows i iOS, jak również innych platform. Aby uzyskać dodatkowe szczegóły, zapoznaj się z wytycznymi zawartymi na stronie https://docs.flutter.dev/development/platform-integration/platform-channels.

Wniosek

Deweloperzy nie są ograniczeni przez możliwości Fluttera, ponieważ oferuje on opcje integracji natywnych funkcjonalności. PlatformChannels mogą być używane do implementacji wszystkiego, co można zrobić tylko na iOS lub Android dla Flutter.

Wszystko, co jest możliwe na platformach natywnych, może być zawarte w aplikacji Flutter.

Szukasz wsparcia dla swojego projektu?

Napisz do nas na adres contact@softnauts.com a ktoś z naszego zespołu odezwie się do Ciebie tak szybko, jak to możliwe.

newsletter

Bądź na bieżąco z nowymi wpisami

Otrzymuj powiadomienia, gdy zostaną opublikowane nowe artykuły. Zawsze możesz wypisać się z listy.

Firma Softnauts zobowiązuje się do przetwarzania powyższych informacji. Przeczytaj Politykę Prywatności

Subskrybuj