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

패키지 상세v0.0.2

shared_preferences_tvos

tvOS(애플 티비)용 공유된 Preferences Flutter 플러그인 구현, flutter-tvos에서 제공합니다.

30일 다운로드
2.9만
좋아요
0
Pub 점수
140

패키지 설치

flutter pub add shared_preferences_tvos

패키지 개요

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

shared_preferences_tvos 패키지는 Flutter의 shared_preferences 플러그인에 대한 tvOS 전용 구현을 제공하여 Apple TV 장치에서 지속적인 키-값 저장을 가능하게 합니다. tvOS에서 Flutter 프레임워크를 위해 설계된 이 패키지는 사용자 설정, 설정 또는 세션 상태와 같은 간단한 데이터를 앱 재시작 후에도 저장하고 검색할 수 있도록 해줍니다. 이 패키지는 flutter-tvos 생태계의 일부이며, 네이티브 tvOS 스토리지 메커니즘과의 원활한 통합을 보장합니다. setString, getString, remove 등의 기본 연산을 지원하여 tvOS 애플리케이션에서 가벼운 데이터 지속성에 이상적입니다.

사용 사례

  • Apple TV 앱용 사용자 설정 저장
  • 세션 간에 앱 설정 유지
  • 로그인 상태 또는 테마 선택 저장
  • 사용자 데이터를 소량 캐싱하기
  • tvOS 앱에서 세션 토큰 관리

주요 기능

  • 네이티브 tvOS 저장소 통합
  • 간단한 키-값 API
  • 세션 간 데이터 지속성
  • 경량이고 빠른 액세스
  • tvOS에서 Flutter과 호환됩니다

적합한 대상

  • Apple TV를 대상으로 하는 Flutter 개발자
  • 최소한의 로컬 저장소를 필요로 하는 앱
  • shared_preferences 패턴을 사용하는 프로젝트
  • tvOS 전용 또는 tvOS 지원을 포함한 다중 플랫폼 앱
  • flutter-tvos 플러그인 세트를 활용하는 개발자

고려 사항

  • 대규모 데이터 세트에 적합하지 않습니다
  • 기본 데이터 형식에 국한됨
  • 비동기 작업을 명시적으로 처리해야 합니다
  • 내장된 암호화 없음
  • flutter-tvos 생태계에 의존합니다

원본 README

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

FlutterTV Plugins

Flutter plugins with Apple TV (tvOS) support, maintained by the fluttertv.dev organization.

These are companions to flutter-tvos — the Flutter tvOS custom embedder. Most are federated *_tvos implementations of popular pub.dev plugins, produced with the flutter-tvos plugin port tool and finished/verified by hand.

Published on pub.dev under the fluttertv.dev verified publisher. Add them like any other plugin (<name>_tvos: ^0.0.1).

List of plugins

Every plugin below has a tvOS implementation; full details (API coverage, disabled regions, and porting notes) are available in each package's README.md and PORTING_REPORT.md.

Plugin Upstream
shared_preferences_tvos pub shared_preferences
video_player_tvos pub video_player
wakelock_plus_tvos pub wakelock_plus
connectivity_plus_tvos pub connectivity_plus
path_provider_tvos pub path_provider
flutter_secure_storage_tvos pub flutter_secure_storage
device_info_plus_tvos pub device_info_plus
package_info_plus_tvos pub package_info_plus
audioplayers_tvos pub audioplayers
games_services_tvos pub games_services
flutter_tts_tvos pub flutter_tts
sqflite_tvos pub sqflite
firebase_core_tvos pub firebase_core
firebase_remote_config_tvos pub firebase_remote_config
firebase_auth_tvos pub firebase_auth
firebase_app_check_tvos pub firebase_app_check
cloud_firestore_tvos pub cloud_firestore
firebase_performance_tvos pub firebase_performance
firebase_storage_tvos pub firebase_storage
firebase_ai_tvos pub firebase_ai
firebase_messaging_tvos pub firebase_messaging
cloud_functions_tvos pub cloud_functions
firebase_analytics_tvos pub firebase_analytics
firebase_crashlytics_tvos pub firebase_crashlytics
url_launcher_tvos pub url_launcher
Evaluated but not provided

These were assessed and deliberately not shipped — their core capability does not exist on tvOS, so a published package would be misleading:

Plugin Why not on tvOS
google_sign_in No GoogleSignIn tvOS SDK; tvOS uses a different device-pairing flow
geolocator No location services on Apple TV
permission_handler tvOS lacks the permission surfaces (location, camera, photos, …)
in_app_purchase StoreKit2 port has an unresolved protocol-conformance cascade
network_info_plus Wi‑Fi SSID/BSSID APIs do not exist on tvOS
webview_flutter No WebKit on tvOS — there is no web view, in-app browser, or HTML rendering

Usage

The upstream plugins do not endorse a tvOS implementation, so add the *_tvos package to your app explicitly, alongside the upstream plugin:

dependencies:
  shared_preferences: ^2.2.0
  shared_preferences_tvos:
    git:
      url: https://github.com/fluttertv/plugins.git
      path: packages/shared_preferences_tvos

Then use the upstream plugin's API exactly as on iOS — the tvOS implementation registers automatically. Once published these become plain ^version dependencies.

A few packages need a writable directory and therefore also path_provider_tvos: e.g. video_player_tvos (for VideoPlayerController.file) and sqflite_tvos (for the database path). Their READMEs note this.


How this repository was created

These packages were not hand-written from scratch. They were produced with the flutter-tvos plugin port tool (part of flutter-tvos) and then verified — and where needed finished — by hand. This is the exact, reproducible workflow.

For the full porter reference — every flag, what the transformer does and doesn't do, and how to read the generated PORTING_REPORT.md — see Porting an existing plugin in the flutter-tvos docs. The summary below is the recipe we used to produce this repo.

0. Prerequisites

# the flutter-tvos CLI (custom embedder + tooling)
git clone https://github.com/fluttertv/flutter-tvos.git
export TVOS=$PWD/flutter-tvos/bin/flutter-tvos

1. Port an upstream plugin

flutter-tvos plugin port takes an existing Apple plugin (the iOS or macOS implementation package) and emits a federated *_tvos package.

# from a published pub.dev package (what we used):
$TVOS plugin port --from-pub video_player_avfoundation \
  --output plugins/packages/video_player_tvos --include-example

# or from git, or from a local path:
$TVOS plugin port --from-git https://github.com/foo/bar.git --ref main --output ...
$TVOS plugin port ../some_plugin_ios --output ...

The exact upstream source for each package is recorded at the top of its PORTING_REPORT.md (e.g. video_player_tvos ← video_player_avfoundation, shared_preferences_tvos ← shared_preferences_foundation, audioplayers_tvos ← audioplayers_darwin).

What the porter does automatically:

  • Copies the upstream Dart lib/ (rewriting package: self-imports) and federates through the upstream *_platform_interface.
  • Copies the native Swift/Objective-C into tvos/Classes/ and generates a tvOS *.podspec (no dependency on the Flutter CocoaPod — tvOS resolves Flutter.framework via search paths).
  • Makes tvOS follow the iOS code paths: widens #if os(iOS) → (os(iOS) || os(tvOS)), ObjC #if TARGET_OS_IOS → (TARGET_OS_IOS || TARGET_OS_TV), and @available / #available / API_AVAILABLE iOS <v> → also tvOS <v>.
  • Collapses modern multi-target / include/-modular SwiftPM packages into one CocoaPods module (drops the macOS-only target).
  • Sets FLTAssetsPath so plugin asset lookup resolves on a real Apple TV; sanitizes example pub-workspace / dependency_overrides wiring.
  • Graceful partial port: an API that genuinely doesn't exist on tvOS, used at type/top-level scope, is wrapped in #if !os(tvOS) / #if !TARGET_OS_TV so the package still compiles with that feature disabled, and every such region is listed in PORTING_REPORT.md under "Disabled on tvOS". A compatibility database (WebKit, SafariServices, CoreLocation, CoreTelephony, AVAudioSession routing options, …) drives this.

2. Read the porting report

Every package gets a PORTING_REPORT.md: the source + version, the tvOS build outlook, methods ported/stubbed, every disabled region with the reason, and a checklist. Read it before trusting a port.

3. Verify

cd plugins/packages/<pkg>/example
flutter pub get
$TVOS build tvos --simulator --debug          # must be green
$TVOS test integration_test/<plugin>_test.dart -d <sim-udid>
# on a physical Apple TV (set your signing team):
DEVELOPMENT_TEAM=XXXXXXXXXX $TVOS run -d <device-udid>

Only a green simulator build (and, ideally, passing integration tests on a real Apple TV) qualifies a package for this list.

4. Hand-finish where the porter can't

The porter is honest about its limits; some packages needed manual work, all of it documented in their PORTING_REPORT.md:

  • path_provider_tvos — path_provider_foundation is a dart:ffi/native-assets plugin the tvOS toolchain can't build, so the porter only emits a skeleton. A real native implementation (NSSearchPathForDirectoriesInDomains / NSTemporaryDirectory) was written by hand.
  • flutter_secure_storage_tvos — Keychain works on tvOS; the optional LAContext / .biometryAny / Secure-Enclave biometric path (which tvOS lacks) was guarded out by hand.
  • audioplayers_tvos, flutter_tts_tvos — AVAudioSession category options that don't exist on tvOS (allowBluetooth, defaultToSpeaker, …) were mapped to no-ops.
  • sqflite_tvos — re-ported once the porter learned to collapse single-target include/-modular SwiftPM packages.

5. Curate

Packages whose primary purpose can't work on tvOS, or that don't build after best-effort, are removed rather than published broken (see Evaluated but not provided).

See AUTHORING.md for the deeper per-plugin recipe.

Repository layout

plugins/
├── packages/<plugin>_tvos/    # one directory per plugin
│   ├── lib/                   # Dart (federated impl)
│   ├── tvos/Classes/          # native Swift/ObjC
│   ├── tvos/<plugin>.podspec  # CocoaPods spec, tvOS 13+
│   ├── example/               # runnable tvOS example
│   ├── PORTING_REPORT.md      # port detail + checklist
│   ├── README.md  CHANGELOG.md  LICENSE
└── AUTHORING.md               # how to add a new one

Contributing

  • Federate via the upstream *_platform_interface; suffix _tvos.
  • Target tvOS 13.0+; guard shared iOS code with #if os(tvOS).
  • Document API support and any disabled regions in the package README.md and PORTING_REPORT.md so users can assess compatibility.
  • A package only ships if it builds green on tvOS.

License

BSD-3-Clause (see LICENSE). Ported packages retain their upstream copyright; tvOS additions are © The FlutterTV Authors.

카테고리

의존성

의존성 목록 1 개

  • shared_preferences_platform_interface^2.4.0

소스 저장소

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

순위