v0.1.0teqani_rewards
게임화 기능을 구현하기 위한 강력한 Flutter 패키지입니다. 성취 시스템, 스티크 추적, 시간 제한 도전과제를 포함하며 SharedPreferences, SQLite, Hive 및 Firebase 저장소 옵션을 지원합니다. 사용자 참여도와 행동을 추적하기 위한 내장된 Firebase Analytics를 제공합니다.
게임화 기능을 구현하기 위한 강력한 Flutter 패키지입니다. 성취 시스템, 스티크 추적, 시간 제한 도전과제를 포함하며 SharedPreferences, SQLite, Hive 및 Firebase 저장소 옵션을 지원합니다. 사용자 참여도와 행동을 추적하기 위한 내장된 Firebase Analytics를 제공합니다.
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
The most powerful and flexible gamification system for Flutter applications, developed by Teqani.org.
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.
If you find this package helpful, consider buying us a coffee to support ongoing development and maintenance!
🤝 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!
Teqani Rewards ensures your data is always secure and protected!
💡 SECURITY FIRST! Unlike other gamification packages, Teqani Rewards implements enterprise-grade security measures to protect your users' data and achievements.
Teqani Rewards works right out of the box with multiple storage options!
This means:
Simply add the package and start implementing gamification in minutes!
[SPECIAL HIGHLIGHT] Unlike other gamification packages, Teqani Rewards offers built-in analytics capabilities for tracking user engagement!
Our advanced analytics system supports:
No other Flutter gamification package offers such comprehensive analytics capabilities!
Add this top-rated package to your pubspec.yaml file:
dependencies:
teqani_rewards: ^0.1.0
Then run:
flutter pub get
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());
}
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);
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();
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();
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
],
),
);
}
}

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,
),
],
);

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,
),
],
);

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,
),
],
);

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

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

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

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

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

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

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);

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
},
);
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.
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright © 2025 Teqani.org. All rights reserved.
의존성 목록 17 개
{"sdk":"flutter"}^2.2.2^2.3.0^1.8.3^2.2.3^1.1.0^4.13.6^2.24.2^4.15.3^10.7.4^6.1.1^0.19.0{"sdk":"flutter"}^5.0.3^3.0.3{"sdk":"flutter"}^3.0.1사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗