패키지, 저장소 및 앱 카테고리 검색

패키지 상세v4.1.0

selector

기능 프로그래밍을 작성하기 위한 다중 유형 지원 플랫폼 선택기.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
58
좋아요
22
Pub 점수
160

패키지 설치

flutter pub add selector

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

플랫폼에 관계없이 작동하는 선택자 패키지로, 다양한 데이터 유형을 지원하며, 플러터 애플리케이션에서 함수형 프로그래밍 패턴을 가능하게 하도록 설계되었습니다. 상태를 관리하고 값들을 도출하는 데 깔끔하고 조합 가능한 방식을 제공하여, 다양한 플랫폼 간 코드의 가독성과 유지보수성을 향상시킵니다. Dart로 작성되었으며, 플러터 프로젝트에 원활하게 통합되며, Android, iOS, Web, macOS, Windows, Linux 등 주요 모든 플랫폼을 지원합니다. 이 패키지는 효율적인 상태 처리를 위해 타입 안전성과 함수형 패러다임을 강조합니다.

사용 사례

  • 복잡한 UI에서 상태 유도
  • 기능 반응형 프로그래밍
  • 크로스 플랫폼 상태 관리
  • 선택 로직의 재사용성
  • 파생 상태 계산 간소화
  • 스트림 기반 값 선택

주요 기능

  • 다중 유형 지원
  • 함수형 프로그래밍 스타일
  • 플랫폼 독립적 설계
  • 타입 안전한 선택
  • 조합 가능한 선택자
  • 내장 플랫폼 호환성

적합한 대상

  • 함수형 패턴을 사용하는 개발자
  • 재사용 가능한 상태 로직을 찾는 팀
  • 크로스 플랫폼 플러터 앱
  • 복잡한 상태 유도를 필요로 하는 앱
  • 정결하고 테스트 가능한 코드를 중시하는 프로젝트

고려 사항

  • 함수형 프로그래밍에 대한 이해가 필요합니다
  • 초보자에게 학습 곡선을 도입할 수 있습니다
  • 상태 관리 솔루션과 함께 사용하는 것이 가장 좋습니다
  • Dart/Flutter 생태계에 제한됨
  • 간단한 상태 저장을 위한 것이 아님

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

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

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.