搜尋套件、儲存庫與 APP 分類

套件詳情v1.2.2

dart_gsheet_remote_config

一個允許您使用 Google Sheets 作為遠端設定的套件,以在不更新應用程式的情況下變更您的 Dart/Flutter 應用行為、設定等。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
77
喜歡數
7
Pub 分數
160

安裝套件

flutter pub add dart_gsheet_remote_config

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

dart_gsheet_remote_config 允許 Flutter 和 Dart 應用程式即時從 Google Sheets 取得設定值,讓應用行為可在不需新版本發布的情況下動態更新。透過將 Google 試算表視為遠端設定來源,開發者可隨時調整功能、旗標或設定。此套件支援 Android、iOS、Web、macOS、Windows 和 Linux 等多個平台,非常適合彈性且可擴展的應用管理。

適用情境

  • 動態功能切換
  • 即時 UI 主題變更
  • 環境特定的設定
  • A/B 測試設定
  • 遠端除錯與監控
  • 無需部署即可即時更新應用

主要特色

  • Google Sheets 作為設定來源
  • 即時設定更新
  • 多平台支援
  • 與 Flutter/Dart 的簡單整合
  • 透過 Google Sheets API 實現安全存取
  • 自動快取處理

適合對象

  • 需要頻繁配置變更的應用程式
  • 管理多個環境的團隊
  • 使用 A/B 測試的專案
  • 開發者為避免應用商店提交小修改
  • 需要快速迭代的產品

使用建議

  • 需要 Google Cloud 項目設定
  • 需要適當的認證(OAuth 2.0)
  • 依賴網路連接
  • 初始載入的潛在延遲
  • Google Sheets API 的速率限制
  • 敏感資料應加密

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Dart Google Sheet Remote Config

pub package

This is a package that allows you to use Google Sheets as a remote config for changing your Dart/Flutter app's behaviors, settings,.. without updating. It is inspired by @theapache64's blog.

How it works

MUST READ before use

  • If you have some configs (API key, token,...) related to security, please DO NOT use this package, because it is PUBLIC and NOT SECURE.

Setup

Google Sheet
  • Create a Google Sheet document, make it PUBLIC & READ ONLY (If not you will get 401, in the future I will find the way to inject auth token for private sheeet) and put an easy to remember document name.

image

  • Add your data to sheet in format:
    • First column will be keys
    • Second column will be values

image_2

  • MUST READ: Every values in sheet is marked as String. For int, doube, bool, we should convert it to String, use TO_TEXT fomular to convert value to String type:

image_3

  • You can create more than 1 worksheet to manage your config better and it can be selected to get correct data.

image_4

Dart
dart pub add dart_gsheet_remote_config
Flutter
flutter pub add dart_gsheet_remote_config

How to use

Create your SheetRemoteConfig instance.

import 'package:dart_gsheet_remote_config/dart_gsheet_remote_config.dart';

final remoteConfig = SheetRemoteConfig();

SheetRemoteConfig has a param Client from http package so you can pass your custom Client object when create SheetRemoteConfig instance.

import 'package:dart_gsheet_remote_config/dart_gsheet_remote_config.dart';
import 'package:http/http.dart' as http;

final client = http.Client();

final remoteConfig = SheetRemoteConfig(client: client);
Fetch remote config data

SheetRemoteConfig provides initilize function and you must pass id and sheetName to initilize remote config:

  • Document id you can find it in your Google Sheet document Url. For example your Sheet url is https://docs.google.com/spreadsheets/d/123456789, id will be 123456789.

  • sheetName is worksheet name, nullable, first worksheet will be used if null or passed value is not found.

import 'package:dart_gsheet_remote_config/dart_gsheet_remote_config.dart';

final remoteConfig = SheetRemoteConfig();

await remoteConfig.initilize(id: '123456789'); // First worksheet will be used

await remoteConfig.initilize(id: '123456789', sheetName: 'Sheet1'); // Use specific worksheet name

MUST READ: id mustn't be hardcode if you don't want others to use your remote config. You can use id as .env field or via dart-define and pass it to your app via environment variable. You can use some packages like flutter_dotenv, envied to load .env file.

Get data from remote

SheetRemoteConfig fetchs data in CSV format, data is returned in key-value format, you can key to get value via get functions, currently SheetRemoteConfig supports String, int, double, bool.

Example response:

"key1","TRUE"
"key2","10"
"key3","value from key 3"
"key4,"1.0"

And get data:

final valueKey1 = remoteConfig.getBool('key1');
print(valueKey1); // true

final valueKey2 = remoteConfig.getInt('key2');
print(valueKey2); // 10

final valueKey3 = remoteConfig.getString('key3');
print(valueKey3); // value from key 3

final valueKey4 = remoteConfig.getDouble('key4');
print(valueKey4); // 1.0

If provided key is not found or provided T is incorrect, get functions will return null.

final valueKey5 = remoteConfig.getString('key5');
print(valueKey5); // null

You can pass defaultValue when get functions returns null.

final valueKey5 = remoteConfig.getString('key5', defaultValue: 'this is default value');
print(valueKey5); // this is default value

Get all data from remote

SheetRemoteConfig provides getAll function to get all data from remote.

final allData = remoteConfig.getAll();
print(allData); // {key1: true, key2: 10, key3: value from key 3, key4: 1.0}

Happy coding

That's all for now! Want a feature? Found a bug? Create an issue!

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。