Flutter for OpenHarmony 外语单词背诵与听力训练APP

欢迎来到开源鸿蒙跨平台开发社区:https://gitee.com/openharmony-sig/flutter_flutter


📖 项目概述

哈喽各位鸿蒙开发者们!👋 今天带大家搞一个超实用的外语学习 APP!是不是经常遇到这些痛点:

  • 😫 背单词太枯燥,背了就忘

  • 🎧 听力练不动,没有真人发音

  • 📅 复习没规律,艾宾浩斯太难坚持

  • ✍️ 只会看不会写,听写能力为零

别担心!今天这款 APP 一次性解决所有问题!✨ 我们用 Flutter for OpenHarmony 打造一款集滑动卡片背单词、真人发音听力、艾宾浩斯智能复习、听力听写训练于一体的全能外语学习神器!让背单词像刷抖音一样上瘾~🎮

在这里插入图片描述


🎯 核心功能

功能模块 能力描述 体验亮点 ✨
🃏 滑动卡片背单词 左右滑动切换单词,认识右滑,不认识左滑 像刷交友软件一样背单词,停不下来!
🔊 真人发音听力 TTS 实时朗读,支持英美音切换 地道发音,磨耳朵神器
🧠 艾宾浩斯复习 智能算法安排复习时间,科学记忆 再也不用手动算复习日期了
📝 听力听写训练 听发音写单词,强化拼写能力 听说读写全面提升

💡 第三方库选择理由

这次我们精选了 4 个专为 OpenHarmony 优化的宝藏库,每个都有独门绝技!

1. audioplayers_ohos 🎵

鸿蒙适配优势

  • ✅ 原生支持 OpenHarmony 音频框架

  • ✅ 低延迟播放,无卡顿

  • ✅ 支持后台播放,锁屏也能听

  • ✅ 音量控制、进度监听一应俱全

2. flutter_tts_ohos 🗣️

鸿蒙适配优势

  • ✅ 对接鸿蒙系统 TTS 引擎,发音超自然

  • ✅ 支持多语言、多音色切换

  • ✅ 语速音调自由调节

  • ✅ 离线也能正常使用!

3. flutter_swipe_card 🃏

鸿蒙适配优势

  • ✅ 60fps 流畅滑动动画

  • ✅ 完美适配鸿蒙手势系统

  • ✅ 左右滑回调精准

  • ✅ 自定义卡片样式超灵活

4. shared_preferences 💾

鸿蒙适配优势

  • ✅ 基于鸿蒙 Preferences 实现

  • ✅ 数据持久化安全可靠

  • ✅ 读写速度飞快

  • ✅ 无需额外权限配置


📦 环境配置

pubspec.yaml 依赖配置

dependencies:
  flutter:
    sdk: flutter
  audioplayers_ohos: ^1.0.0      # 音频播放
  flutter_tts_ohos: ^1.0.0       # TTS发音
  flutter_swipe_card: ^0.1.0     # 滑动卡片
  shared_preferences: ^2.2.0     # 数据存储

OpenHarmony 权限配置(module.json5)

"requestPermissions": [
  {
    "name": "ohos.permission.MICROPHONE",
    "reason": "用于听力训练音频录制"
  },
  {
    "name": "ohos.permission.INTERNET",
    "reason": "获取在线单词数据"
  }
]

🧩 分模块详解

1. 数据模型层 📊

先定义单词数据结构,干净利落!

class Word {
  final String id;
  final String word;
  final String phonetic;
  final String meaning;
  final String audioUrl;
  final int reviewLevel;
  final DateTime nextReviewTime;
  
  Word({required this.id, required this.word, 
    required this.phonetic, required this.meaning,
    required this.audioUrl, this.reviewLevel = 0, 
    DateTime? nextReviewTime})
    : nextReviewTime = nextReviewTime ?? DateTime.now();
}

2. 滑动卡片组件 🃏

核心交互来了!左右滑动背单词

SwipeCard(
  cards: words.map((word) => WordCard(word: word)).toList(),
  onSwipeLeft: (index) => markAsUnknown(words[index]),
  onSwipeRight: (index) => markAsKnown(words[index]),
  cardWidth: 320, cardHeight: 400,
  swipeThreshold: 0.3,
)

3. 音频播放模块 🔊

播放单词发音,超简单!

final player = AudioPlayer();
Future playWordAudio(String url) async {
  await player.setSourceUrl(url);
  await player.setVolume(1.0);
  await player.resume();
}
// 播放完成回调
player.onPlayerComplete.listen((_) => debugPrint('播放完成!'));

4. TTS 发音模块 🗣️

实时朗读,想读就读!

final FlutterTts tts = FlutterTts();
Future speakWord(String word) async {
  await tts.setLanguage('en-US');
  await tts.setSpeechRate(0.5);
  await tts.setPitch(1.0);
  await tts.speak(word);
}
// 支持英美音切换哦~

在这里插入图片描述

5. 听力听写训练 📝

听发音写单词,强化记忆!

TextField(
  controller: _inputController,
  decoration: InputDecoration(hintText: '请输入听到的单词'),
  onSubmitted: (input) {
    if (input.toLowerCase() == currentWord.word.toLowerCase()) {
      showCorrectAnimation();
    } else {
      showWrongHint();
    }
  }
)

6. 艾宾浩斯复习算法 🧠

智能安排复习,科学记忆!

List<int> intervals = [1, 2, 4, 7, 15, 30]; // 间隔天数
DateTime calculateNextReview(int level) {
  int days = intervals[level.clamp(0, intervals.length-1)];
  return DateTime.now().add(Duration(days: days));
}
// 认识就升级,不认识就降级重学

7. 数据统计模块 📈

学习数据可视化,成就感满满!

Future saveStudyRecord(bool isCorrect) async {
  final prefs = await SharedPreferences.getInstance();
  int total = prefs.getInt('total_words') ?? 0;
  int correct = prefs.getInt('correct_words') ?? 0;
  await prefs.setInt('total_words', total + 1);
  await prefs.setInt('correct_words', correct + (isCorrect ? 1 : 0));
}

在这里插入图片描述


🏆 完整实现总结

📁 项目结构

lib/
├── models/          # 数据模型
├── widgets/         # UI组件(卡片、播放器)
├── services/        # 业务服务(音频、TTS、存储)
├── screens/         # 页面(首页、听力、统计)
├── utils/           # 工具类(艾宾浩斯算法)
└── main.dart        # 入口

✨ 核心亮点

  1. 交互创新 🃏:滑动卡片背单词,学习娱乐化

  2. 听觉强化 👂:双音频系统(真人音频 + TTS)

  3. 科学记忆 🧠:艾宾浩斯算法自动安排复习

  4. 全面训练 ✍️:听说读写四维一体

  5. 鸿蒙原生 💙:深度适配 OpenHarmony 系统特性

🎮 运行效果

  • 单词卡片丝滑滑动,60fps 不掉帧

  • TTS 发音清晰自然,英美音自由切换

  • 复习提醒智能推送,不漏掉任何单词

  • 学习数据实时统计,进步看得见


🎉 写在最后

怎么样?这款 APP 是不是功能满满又好玩!😎 整个项目完全基于 Flutter for OpenHarmony 开发,所有库都完美适配鸿蒙系统,运行流畅得飞起~

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐