FLUTTER ECOSYSTEM

teqani-org/teqani_rewards

一個強大的 Flutter 套件,用於實現遊戲化功能。包含成就系統、連續打卡追蹤以及時間限制挑戰,支援 SharedPreferences、SQLite、Hive 和 Firebase 儲存選項。內建 Firebase Analytics 以追蹤使用者參與度與行為。

teqani_rewards 專案封面
Stars
4
Forks
5
最近推送(UTC)
2025年4月13日
專案狀態
未封存
Teqani GitHub avatar
GITHUB Organization

Teqani ↗

語言DartC++CMakeSwiftCHTMLKotlinObjective-C

此儲存庫發佈的套件

使用的依賴

依賴清單 17 項

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

展開 / 收合專案 README

🏆 Teqani Rewards for Flutter

The most powerful and flexible gamification system for Flutter applications, developed by Teqani.org.

Pub Flutter Platform License: MIT Buy Me A Coffee

A complete solution for implementing engaging gamification in your Flutter apps with unmatched flexibility, superior performance, and advanced features not available in other packages.

💡 MULTIPLE STORAGE OPTIONS! Unlike other gamification packages, Teqani Rewards supports multiple storage backends (SharedPreferences, SQLite, Hive, Firebase) with zero configuration needed.

☕ Support This Project

If you find this package helpful, consider buying us a coffee to support ongoing development and maintenance!

Buy Me A Coffee

🤝 Need a custom Flutter package? Don't hesitate to reach out! We're passionate about building solutions that help the Flutter community. [Contact us](mailto:contact@teqani.org) to discuss your ideas!


✨ Key Features

  • Multiple Storage Options - Choose from SharedPreferences, SQLite, Hive, or Firebase
  • Achievement System - Track and reward user accomplishments
  • Streak Tracking - Motivate users with daily engagement
  • Time-Limited Challenges - Create urgency and excitement
  • Customizable Themes - Match your app's design perfectly
  • Firebase Analytics - Track user engagement and behavior
  • Pre-built Widgets - Quick integration with beautiful UI
  • Cross-Platform Support - Works flawlessly on iOS, Android, and Web
  • Localization Support - Reach a global audience
  • Dark/Light Mode - Perfect for any app theme
  • Comprehensive API - Full control over all features

🔒 Advanced Security Features

Teqani Rewards ensures your data is always secure and protected!

  • 🔐 Data Encryption - All local data is encrypted using AES-256 encryption
  • 🛡️ Secure Storage - Protected storage implementation for sensitive data
  • 🔑 Key Management - Secure key generation and management system
  • 🔄 Data Integrity - Automatic data validation and integrity checks
  • 🚫 Anti-Tampering - Protection against unauthorized modifications
  • 📱 Platform Security - Leverages platform-specific security features
  • 🔍 Audit Logging - Track all data access and modifications
  • 🧹 Secure Cleanup - Proper data sanitization when removing data

💡 SECURITY FIRST! Unlike other gamification packages, Teqani Rewards implements enterprise-grade security measures to protect your users' data and achievements.

🔑 Zero Configuration Storage

Teqani Rewards works right out of the box with multiple storage options!

This means:

  • No complex database setup
  • No server configuration needed
  • Choose the storage that fits your needs
  • Switch between storage types easily
  • Simple setup without complex configurations

Simply add the package and start implementing gamification in minutes!

🚀 PREMIUM FEATURE: Advanced Analytics Integration

[SPECIAL HIGHLIGHT] Unlike other gamification packages, Teqani Rewards offers built-in analytics capabilities for tracking user engagement!

Our advanced analytics system supports:

  • 📊 User Engagement Tracking - monitor achievement unlocks and streak progress
  • ⏱️ Time-Based Analytics - track user activity patterns
  • 💰 Reward Impact Analysis - measure the effectiveness of your rewards
  • 🎯 Custom Event Tracking - log any user interaction
  • 📱 Cross-Platform Analytics - consistent tracking on all devices
  • 📈 Performance Metrics - monitor system performance

No other Flutter gamification package offers such comprehensive analytics capabilities!

📦 Installation

Add this top-rated package to your pubspec.yaml file:

dependencies:
  teqani_rewards: ^0.1.0

Then run:

flutter pub get

🔍 Basic Usage

Get started quickly with this simple implementation:

import 'package:flutter/material.dart';
import 'package:teqani_rewards/teqani_rewards.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Initialize Teqani Rewards
  await TeqaniRewards.init(
    theme: TeqaniRewardsTheme.defaultTheme,
    storageType: StorageType.firebase,
    enableAnalytics: true,
  );
  
  runApp(MyApp());
}

⚙️ Advanced Configuration Options

Storage Configuration

Choose and configure your preferred storage:

// SharedPreferences
final storage = StorageManager(type: StorageType.sharedPreferences);

// SQLite
final storage = StorageManager(type: StorageType.sqlite);

// Hive
final storage = StorageManager(type: StorageType.hive);

// Firebase
final storage = StorageManager(type: StorageType.firebase);
Achievement System

Create and manage achievements:

// Save achievements
await storage.saveAchievements([
  Achievement(
    id: '1',
    title: 'First Login',
    description: 'Logged in for the first time',
    points: 100,
  ),
]);

// Get achievements
final achievements = await storage.getAchievements();
Streak Management

Track and update user streaks:

// Save streaks
await storage.saveStreaks([
  Streak(
    id: '1',
    currentStreak: 5,
    longestStreak: 10,
    lastActivityDate: DateTime.now(),
  ),
]);

// Get streaks
final streaks = await storage.getStreaks();

📱 Complete Implementation Example

Create a fully-featured gamification system with just a few lines of code:

import 'package:flutter/material.dart';
import 'package:teqani_rewards/teqani_rewards.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await TeqaniRewards.init(
    theme: TeqaniRewardsTheme.defaultTheme,
    storageType: StorageType.firebase,
    enableAnalytics: true,
  );
  
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Teqani Rewards Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: RewardsDemo(),
    );
  }
}

class RewardsDemo extends StatefulWidget {
  @override
  _RewardsDemoState createState() => _RewardsDemoState();
}

class _RewardsDemoState extends State<RewardsDemo> {
  late StorageManager _storage;
  
  @override
  void initState() {
    super.initState();
    _storage = StorageManager(type: StorageType.firebase);
    _initializeStorage();
  }
  
  Future<void> _initializeStorage() async {
    await _storage.initialize();
    await _loadData();
  }
  
  Future<void> _loadData() async {
    final achievements = await _storage.getAchievements();
    final streaks = await _storage.getStreaks();
    // Update UI with loaded data
  }
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Teqani Rewards'),
      ),
      body: Column(
        children: [
          // Add your widgets here
        ],
      ),
    );
  }
}

🎨 Widget Examples

🎯 Onboarding Widgets
Gamified Onboarding

Gamified Onboarding Demo

GamifiedOnboardingDialog.showGamifiedOnboarding(
  context,
  title: 'Welcome to Teqani Rewards',
  subtitle: 'Your journey to success begins here',
  onComplete: () {},
  steps: [
    const OnboardingStep(
      title: 'Welcome to Teqani Rewards',
      description: 'Track your progress and earn rewards',
      icon: Icons.star,
    ),
    const OnboardingStep(
      title: 'Streaks',
      description: 'Maintain your daily streaks',
      icon: Icons.local_fire_department,
    ),
    const OnboardingStep(
      title: 'Achievements',
      description: 'Unlock achievements as you progress',
      icon: Icons.emoji_events,
    ),
    const OnboardingStep(
      title: 'Challenges',
      description: 'Complete challenges to earn rewards',
      icon: Icons.flag,
    ),
  ],
);
Quest Onboarding

Quest Onboarding Demo

QuestOnboardingDialog.showQuestOnboarding(
  context,
  title: 'Your Quest Begins',
  subtitle: 'Embark on an adventure of achievement',
  onComplete: () {},
  steps: [
    const OnboardingStep(
      title: 'Begin Your Journey',
      description: 'Start your path to greatness',
      icon: Icons.map,
    ),
    const OnboardingStep(
      title: 'Track Your Progress',
      description: 'Watch your streaks grow',
      icon: Icons.trending_up,
    ),
    const OnboardingStep(
      title: 'Collect Achievements',
      description: 'Unlock badges and rewards',
      icon: Icons.workspace_premium,
    ),
    const OnboardingStep(
      title: 'Complete Challenges',
      description: 'Test your dedication',
      icon: Icons.flag,
    ),
  ],
);
Pulse Onboarding

Pulse Onboarding Demo

PulseOnboardingDialog.showPulseOnboarding(
  context,
  title: 'Get Started with Teqani',
  subtitle: 'Experience the power of consistent progress',
  onComplete: () {},
  steps: [
    const OnboardingStep(
      title: 'Welcome to Teqani',
      description: 'Your journey begins here',
      icon: Icons.rocket_launch,
    ),
    const OnboardingStep(
      title: 'Build Your Streak',
      description: 'Consistency is key to success',
      icon: Icons.local_fire_department,
    ),
    const OnboardingStep(
      title: 'Earn Achievements',
      description: 'Reach milestones and unlock rewards',
      icon: Icons.emoji_events,
    ),
    const OnboardingStep(
      title: 'Take on Challenges',
      description: 'Push yourself to new heights',
      icon: Icons.flag,
    ),
  ],
);
🔥 Streak Widgets
Floating Streak

Floating Streak Demo

TeqaniStreakWidgets.floating(
  streak: Streak(
    id: 'floating_streak',
    currentStreak: 5,
    longestStreak: 10,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
Modern Streak

Modern Streak Demo

TeqaniStreakWidgets.modern(
  streak: Streak(
    id: 'modern_streak',
    currentStreak: 3,
    longestStreak: 7,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
Circular Progress Streak

Circular Progress Streak Demo

TeqaniStreakWidgets.circularProgress(
  streak: Streak(
    id: 'circular_streak',
    currentStreak: 7,
    longestStreak: 14,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
Calendar View Streak

Calendar View Streak Demo

TeqaniStreakWidgets.calendar(
  streak: Streak(
    id: 'calendar_streak',
    currentStreak: 2,
    longestStreak: 5,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
Pulsating Streak

Pulsating Streak Demo

TeqaniStreakWidgets.pulsating(
  streak: Streak(
    id: 'pulsating_streak',
    currentStreak: 10,
    longestStreak: 15,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
Count Up Streak

Count Up Streak Demo

TeqaniStreakWidgets.countUp(
  streak: Streak(
    id: 'count_up_streak',
    currentStreak: 1,
    longestStreak: 3,
    lastActivityDate: DateTime.now(),
    streakType: 'daily',
  ),
  onUpdate: () {
    // Handle streak update
  },
);
🏆 Achievement Widgets
Cube Achievement

Cube Achievement Demo

CubeAchievementCard(
  achievement: Achievement(
    id: 'first_streak',
    title: 'First Streak',
    description: 'Complete your first streak',
    points: 100,
    isUnlocked: true,
    unlockedAt: DateTime.now(),
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
Prism Achievement

Prism Achievement Demo

PrismAchievementCard(
  achievement: Achievement(
    id: 'seven_day_streak',
    title: '7 Day Streak',
    description: 'Maintain a streak for 7 days',
    points: 200,
    isUnlocked: false,
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
Pyramid Achievement

Pyramid Achievement Demo

PyramidAchievementCard(
  achievement: Achievement(
    id: 'fourteen_day_streak',
    title: '14 Day Streak',
    description: 'Maintain a streak for 14 days',
    points: 300,
    isUnlocked: false,
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
Modern Achievement

Modern Achievement Demo

ModernAchievementCard(
  achievement: Achievement(
    id: 'twenty_one_day_streak',
    title: '21 Day Streak',
    description: 'Maintain a streak for 21 days',
    points: 400,
    isUnlocked: false,
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
Minimalist Achievement

Minimalist Achievement Demo

MinimalistAchievementCard(
  achievement: Achievement(
    id: 'twenty_eight_day_streak',
    title: '28 Day Streak',
    description: 'Maintain a streak for 28 days',
    points: 500,
    isUnlocked: false,
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
Gradient Achievement

Gradient Achievement Demo

GradientAchievementCard(
  achievement: Achievement(
    id: 'thirty_day_streak',
    title: '30 Day Streak',
    description: 'Maintain a streak for 30 days',
    points: 600,
    isUnlocked: false,
  ),
  onComplete: () {
    // Handle achievement completion
  },
);
🎯 Challenge Widgets
Circular Challenge

Circular Challenge Demo

CircularChallengeCard(
  challenge: Challenge(
    id: 'daily_login',
    title: 'Daily Login',
    description: 'Log in every day for a week',
    points: 100,
    type: 'daily',
    progress: 0.5,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 7)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);
Timeline Challenge

Timeline Challenge Demo

TimelineChallengeCard(
  challenge: Challenge(
    id: 'two_week_streak',
    title: 'Two Week Streak',
    description: 'Maintain your streak for 14 days',
    points: 200,
    type: 'streak',
    progress: 0.3,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 14)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);
Flip Challenge

Flip Challenge Demo

FlipChallengeCard(
  challenge: Challenge(
    id: 'three_week_streak',
    title: 'Three Week Streak',
    description: 'Maintain your streak for 21 days',
    points: 300,
    type: 'streak',
    progress: 0.2,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 21)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);
Pulse Challenge

Pulse Challenge Demo

PulseChallengeCard(
  challenge: Challenge(
    id: 'four_week_streak',
    title: 'Four Week Streak',
    description: 'Maintain your streak for 28 days',
    points: 400,
    type: 'streak',
    progress: 0.1,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 28)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);
Wave Challenge

Wave Challenge Demo

WaveChallengeCard(
  challenge: Challenge(
    id: 'monthly_master',
    title: 'Monthly Master',
    description: 'Complete a 30-day streak',
    points: 500,
    type: 'streak',
    progress: 0.05,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 30)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);
Gradient Challenge

Gradient Challenge Demo

GradientChallengeCard(
  challenge: Challenge(
    id: 'ultimate_streak',
    title: 'Ultimate Streak',
    description: 'Complete a 100-day streak',
    points: 1000,
    type: 'streak',
    progress: 0.01,
    startDate: DateTime.now(),
    endDate: DateTime.now().add(const Duration(days: 100)),
    isCompleted: false,
    lastUpdated: DateTime.now(),
  ),
  onComplete: () {
    // Handle challenge completion
  },
);

📋 System Requirements

  • Flutter: >=3.0.0
  • Dart: >=3.0.0
  • Android: minSdkVersion 17 or higher
  • iOS: iOS 9.0 or higher

🏢 About Teqani.org

This premium package is developed and maintained by Teqani.org, a leading company specializing in innovative digital solutions and advanced Flutter applications. With years of experience creating high-performance gamification systems, our team ensures you get the best user engagement tools possible.

📢 Why Choose Teqani Rewards?

  • Multiple Storage Options: Choose the perfect storage for your needs
  • Superior Performance: Optimized for smooth operation on all devices
  • Advanced Features: More capabilities than any other gamification package
  • Analytics Ready: Built-in tracking for user engagement
  • Professional Support: Backed by Teqani.org's expert team
  • Regular Updates: Continuous improvements and new features

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2025 Teqani.org. All rights reserved.