Flutter for OpenHarmony 外语单词背诵与听力训练APP
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:flutteraudioplayers_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. 数据模型层 📊
先定义单词数据结构,干净利落!
classWord{finalStringid;finalStringword;finalStringphonetic;finalStringmeaning;finalStringaudioUrl;finalint reviewLevel;finalDateTimenextReviewTime;Word({requiredthis.id,requiredthis.word,requiredthis.phonetic,requiredthis.meaning,requiredthis.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. 音频播放模块 🔊
播放单词发音,超简单!
finalplayer=AudioPlayer();FutureplayWordAudio(Stringurl)async{awaitplayer.setSourceUrl(url);awaitplayer.setVolume(1.0);awaitplayer.resume();}// 播放完成回调player.onPlayerComplete.listen((_)=>debugPrint('播放完成!'));4. TTS 发音模块 🗣️
实时朗读,想读就读!
finalFlutterTtstts=FlutterTts();FuturespeakWord(Stringword)async{awaittts.setLanguage('en-US');awaittts.setSpeechRate(0.5);awaittts.setPitch(1.0);awaittts.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];// 间隔天数DateTimecalculateNextReview(int level){int days=intervals[level.clamp(0,intervals.length-1)];returnDateTime.now().add(Duration(days:days));}// 认识就升级,不认识就降级重学7. 数据统计模块 📈
学习数据可视化,成就感满满!
FuturesaveStudyRecord(bool isCorrect)async{finalprefs=awaitSharedPreferences.getInstance();int total=prefs.getInt('total_words')??0;int correct=prefs.getInt('correct_words')??0;awaitprefs.setInt('total_words',total+1);awaitprefs.setInt('correct_words',correct+(isCorrect?1:0));}🏆 完整实现总结
📁 项目结构
lib/ ├── models/ # 数据模型 ├── widgets/ # UI组件(卡片、播放器) ├── services/ # 业务服务(音频、TTS、存储) ├── screens/ # 页面(首页、听力、统计) ├── utils/ # 工具类(艾宾浩斯算法) └── main.dart # 入口✨ 核心亮点
交互创新🃏:滑动卡片背单词,学习娱乐化
听觉强化👂:双音频系统(真人音频 + TTS)
科学记忆🧠:艾宾浩斯算法自动安排复习
全面训练✍️:听说读写四维一体
鸿蒙原生💙:深度适配 OpenHarmony 系统特性
🎮 运行效果
单词卡片丝滑滑动,60fps 不掉帧
TTS 发音清晰自然,英美音自由切换
复习提醒智能推送,不漏掉任何单词
学习数据实时统计,进步看得见
🎉 写在最后
怎么样?这款 APP 是不是功能满满又好玩!😎 整个项目完全基于 Flutter for OpenHarmony 开发,所有库都完美适配鸿蒙系统,运行流畅得飞起~
