Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev4.1.0

selector

Seletor de plataforma com suporte a múltiplos tipos para escrever programação funcional.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
58
Curtidas
22
Pontos Pub
160

Instalar pacote

flutter pub add selector

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote de seleção independente de plataforma que suporta múltiplos tipos de dados, projetado para habilitar padrões de programação funcional em aplicativos Flutter. Oferece uma maneira limpa e componível de gerenciar estado e derivar valores entre plataformas, melhorando a legibilidade e manutenibilidade do código. Construído com Dart, integra-se perfeitamente em projetos Flutter e oferece suporte a todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. O pacote enfatiza segurança de tipo e paradigmas funcionais para um gerenciamento eficiente de estado.

Casos de uso

  • Derivação de estado em interfaces complexas
  • Programação reativa funcional
  • Gerenciamento de estado multiplataforma
  • Reutilização da lógica de seleção
  • Simplificando cálculos de estado derivado
  • Seleção de valor baseada em fluxo

Principais recursos

  • Suporte a múltiplos tipos
  • Estilo de programação funcional
  • Design independente de plataforma
  • Seleções seguras por tipo
  • seletores compostos
  • Compatibilidade de plataforma embutida

Indicado para

  • Desenvolvedores usando padrões funcionais
  • Equipes procurando lógica de estado reutilizável
  • Aplicativos cross-platform do Flutter
  • Aplicativos que exigem derivações de estado complexas
  • Projetos que enfatizam código limpo e testável

Considerações

  • Requer entendimento de programação funcional
  • Pode introduzir uma curva de aprendizado para iniciantes
  • Melhor usado com soluções de gerenciamento de estado
  • Limitado ao ecossistema Dart/Flutter
  • Não destinado ao armazenamento simples de estado

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Selector

Multi-type support Platform Selector for Flutter. This library helps you write platform-specific code in a clean and functional way.

Features

  • Basic Selector (selector): Choose a value based on the current platform (Android, iOS, macOS, Windows, Linux, Fuchsia, Web). All platform parameters are required. Throws UnsupportedError if the platform is not identified.
  • Optional Selector (optionalSelector): Similar to selector, but platform parameters are optional. Returns null if the current platform's value is not provided or if the platform is unidentified.
  • Device Selector (deviceSelector): Select a value based on device type (mobile, desktop, web). All device type parameters are required. Throws UnsupportedError if the device type is not identified.
  • Optional Device Selector (optionalDeviceSelector): Similar to deviceSelector, but device type parameters are optional. Returns null if the current device type's value is not provided or if the device type is unidentified.
  • OrElse Selector (selectOrElse): Provides a fallback orElse value if the current platform's value is not provided.
  • Query (isMobile, isDesktop): Convenient getters to check if the current device is mobile or desktop.

Usage

Basic selector (selector)

Use selector when you need to provide a value for every supported platform.

import 'package:selector/selector.dart';

String message = selector(
      web: 'Hello Web!',
      android: 'Hello Android!',
      ios: 'Hello iOS!',
      fuchsia: 'Hello Fuchsia!',
      linux: 'Hello Linux!',
      macos: 'Hello macOS!',
      windows: 'Hello Windows!',
);
print(message); // e.g., "Hello Android!" on an Android device
Optional selector (optionalSelector)

Use optionalSelector when you only need to provide values for a subset of platforms. If the current platform's value is not provided, it returns null.

import 'package:selector/selector.dart';

String? specialMessage = optionalSelector(
      android: 'Special message for Android!',
      ios: 'Special message for iOS!',
);
print(specialMessage); // "Special message for Android!" on Android, null on macOS
Device selector (deviceSelector)

Use deviceSelector to differentiate between mobile, desktop, and web environments.

import 'package:selector/selector.dart';

String deviceType = deviceSelector(
      mobile: 'This is a mobile device.',
      desktop: 'This is a desktop device.',
      web: 'This is a web browser.',
);
print(deviceType); // e.g., "This is a mobile device." on an iOS phone
Optional Device selector (optionalDeviceSelector)

Similar to deviceSelector, but device type parameters are optional. Returns null if the current device type's value is not provided.

import 'package:selector/selector.dart';

String? specificDeviceMessage = optionalDeviceSelector(
      mobile: 'Mobile specific UI.',
      web: 'Web specific UI.',
);
print(specificDeviceMessage); // "Mobile specific UI." on Android, null on Windows desktop
OrElse selector (androidOrElse, iosOrElse, etc.)

Use these platform-specific orElse functions for direct, explicit choices.

import 'package:selector/selector.dart';

String admobKey = androidOrElse('android-key', 'iOS-key');
String iosPreferredKey = iosOrElse('iOS-key', 'android-key');
String mobileSpecific = mobileOrElse('mobile_value', 'default_value');
String desktopSpecific = desktopOrElse('desktop_value', 'default_value');
String webSpecific = webOrElse('web_value', 'default_value');

Alternatively, use the more flexible selectOrElse for multiple platform options:

import 'package:selector/selector.dart

String apiKey = selectOrElse(
      android: 'YOUR_ANDROID_API_KEY',
      ios: 'YOUR_IOS_API_KEY',
      orElse: 'DEFAULT_API_KEY', // Used if platform is not Android or iOS
);
print(apiKey); // "YOUR_ANDROID_API_KEY" on Android, "DEFAULT_API_KEY" on Windows
Query

Convenient getters to check the device type.

import 'package:selector/selector.dart';

print('isDesktop: $isDesktop'); // true if on Windows, Linux, macOS
print('isMobile: $isMobile');   // true if on Android, iOS, Fuchsia

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.