独特的睡前故事集
隆重推出独特的睡前故事集,这款突破性的移动应用程序将改变您在宝贵的睡前时光与孩子建立联系的方式。我们最先进的应用程序通过赋您能够精心制作迷人的睡前故事,这些故事都经过精心设计,以满足您孩子独特的兴趣和偏好,从而重新定义了睡前讲故事的艺术。通过独特的睡前故事集,您将与孩子建立深厚而持久的联系,同时以前所未有的方式激发他们的想象力。
特色图

屏幕截图
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
目录
功能
- 为您的孩子创作量身定制的个性化睡前故事。
- 让您的孩子成为他们独特冒险中的主角。
- 无缝引入孩子喜爱的角色。
- 保存孩子珍贵的睡前故事,供将来欣赏。
项目结构
.
├── app_icon
│ ├── app-icon.yaml
│ └── app_icon.png
├── assets
│ ├── font
│ ├── img
│ └── json
├── bricks
│ └── feature_template
├── bricks_configs
│ └── feature.json
├── lib
│ ├── core
│ │ ├── src
│ │ │ ├── base
│ │ │ │ ├── base.dart
│ │ │ │ ├── base_event.dart
│ │ │ │ ├── base_page_state.dart
│ │ │ │ ├── base_state.dart
│ │ │ │ ├── base_vm.dart
│ │ │ │ ├── base_vm_mixin.dart
│ │ │ │ ├── wrap_state.dart
│ │ │ │ └── wrap_state.freezed.dart
│ │ │ ├── common
│ │ │ │ ├── common.dart
│ │ │ │ ├── common_event.dart
│ │ │ │ ├── common_event.freezed.dart
│ │ │ │ ├── common_state.dart
│ │ │ │ ├── common_state.freezed.dart
│ │ │ │ └── common_vm.dart
│ │ │ ├── config
│ │ │ │ ├── app_config.dart
│ │ │ │ ├── config.dart
│ │ │ │ ├── env.dart
│ │ │ │ └── env.g.dart
│ │ │ ├── constants
│ │ │ │ ├── constants.dart
│ │ │ │ ├── date_time_format_constants.dart
│ │ │ │ ├── device_constants.dart
│ │ │ │ ├── locale_constants.dart
│ │ │ │ ├── log_constants.dart
│ │ │ │ └── ui_constants.dart
│ │ │ ├── dimen
│ │ │ │ ├── app_dimen.dart
│ │ │ │ ├── dimen.dart
│ │ │ │ └── dimens.dart
│ │ │ ├── errors
│ │ │ │ ├── app_error.dart
│ │ │ │ ├── app_error_listener.dart
│ │ │ │ ├── app_error_listener_mixin.dart
│ │ │ │ ├── app_error_mapper.dart
│ │ │ │ ├── app_exception_wrapper.dart
│ │ │ │ ├── app_handle_exception.dart
│ │ │ │ ├── errors.dart
│ │ │ │ └── exceptions.dart
│ │ │ ├── extension
│ │ │ │ ├── extension.dart
│ │ │ │ └── string_extension.dart
│ │ │ ├── hive
│ │ │ │ ├── hive.dart
│ │ │ │ ├── hive_database_manager.dart
│ │ │ │ ├── hive_encryption.dart
│ │ │ │ ├── hive_model.dart
│ │ │ │ ├── hive_model_mixin.dart
│ │ │ │ ├── hive_operation.dart
│ │ │ │ ├── hive_types.dart
│ │ │ │ ├── primitive_database.dart
│ │ │ │ ├── primitive_keys.dart
│ │ │ │ └── secure_database_manager.dart
│ │ │ ├── mixins
│ │ │ │ ├── log_mixin.dart
│ │ │ │ └── mixins.dart
│ │ │ ├── model
│ │ │ │ ├── model.dart
│ │ │ ├── navigation
│ │ │ │ ├── app_navigator.dart
│ │ │ │ ├── app_routes.dart
│ │ │ │ ├── app_routes.gr.dart
│ │ │ │ └── navigation.dart
│ │ │ ├── network
│ │ │ │ ├── base
│ │ │ │ │ ├── base.dart
│ │ │ │ │ ├── dio_builder.dart
│ │ │ │ │ └── network_constants.dart
│ │ │ │ ├── middleware
│ │ │ │ │ ├── access_token_interceptor.dart
│ │ │ │ │ ├── base_interceptor.dart
│ │ │ │ │ ├── custom_log_interceptor.dart
│ │ │ │ │ ├── header_interceptor.dart
│ │ │ │ │ ├── middleware.dart
│ │ │ │ │ ├── network_info.dart
│ │ │ │ │ ├── refresh_token_api_service.dart
│ │ │ │ │ └── refresh_token_interceptor.dart
│ │ │ │ ├── network.dart
│ │ │ │ ├── rest_client.dart
│ │ │ │ ├── rest_client.g.dart
│ │ │ │ ├── rest_non_auth_client.dart
│ │ │ │ └── rest_non_auth_client.g.dart
│ │ │ ├── observer
│ │ │ │ └── observer.dart
│ │ │ ├── preference
│ │ │ │ ├── preference.dart
│ │ │ ├── stream
│ │ │ │ └── stream.dart
│ │ │ ├── theme
│ │ │ │ └── theme.dart
│ │ │ ├── usecases
│ │ │ │ └── usecases.dart
│ │ │ ├── utils
│ │ │ │ ├── utils.dart
│ │ │ └── widgets
│ │ │ └── widgets.dart
│ │ └── core.dart
│ ├── data
│ │ ├── src
│ │ │ ├── data_sources
│ │ │ │ ├── data_sources.dart
│ │ │ ├── mapper
│ │ │ │ ├── mapper.dart
│ │ │ ├── models
│ │ │ │ ├── models.dart
│ │ │ └── repositories
│ │ │ └── repositories.dart
│ │ └── data.dart
│ ├── di
│ │ ├── di.config.dart
│ │ └── di.dart
│ ├── domain
│ │ ├── src
│ │ │ ├── entities
│ │ │ │ ├── entities.dart
│ │ │ ├── repositories
│ │ │ │ └── repositories.dart
│ │ │ └── usecases
│ │ │ └── usecases.dart
│ │ └── domain.dart
│ ├── presentation
│ │ ├── src
│ │ │ ├── define_story
│ │ │ │ ├── define_story.dart
│ │ │ │ ├── define_story_event.dart
│ │ │ │ ├── define_story_page.dart
│ │ │ │ ├── define_story_state.dart
│ │ │ │ └── define_story_vm.dart
│ │ │ └── app.dart
│ │ └── presentation.dart
│ ├── resources
│ │ ├── generated
│ │ │ ├── intl
│ │ │ │ ├── messages_all.dart
│ │ │ │ ├── messages_en.dart
│ │ │ │ └── messages_vi.dart
│ │ │ └── l10n.dart
│ │ ├── src
│ │ │ ├── generated
│ │ │ │ ├── intl
│ │ │ │ │ ├── messages_all.dart
│ │ │ │ │ ├── messages_en.dart
│ │ │ │ │ └── messages_vi.dart
│ │ │ │ └── l10n.dart
│ │ │ └── l10n
│ │ │ ├── intl_en.arb
│ │ │ └── intl_vi.arb
│ │ └── resources.dart
│ └── main.dart
├── splash
│ ├── ic_splash.png
│ └── splash.yaml
├── test
│ └── widget_test.dart
├── Makefile
├── analysis_options.yaml
├── mason-lock.json
├── mason.yaml
└── pubspec.yaml
使用的库
- retrofit: 一个类型安全的 Dart HTTP 客户端,使用 Retrofit 包。
- freezed: 一个用于联合/模式匹配/复制的生成器。
- dartz: Dart 中的函数式编程。
- lottie: 一个在 Flutter 中使用 Lottie 动画的库。
- hooks_riverpod: 一个在 Flutter 应用程序中管理状态的简单方法。
- mockito: Dart 的 Mock 库。
- hive: Hive 是一个用纯 Dart 编写的轻量级且极速的键值数据库。
- get_it: 这是 Dart 和 Flutter 项目的一个简单的服务定位器,具有一些额外的功能,很大程度上受到 Splat 的启发。
- share_plus: 一个 Flutter 插件,可以通过平台共享对话框从您的 Flutter 应用共享内容。
- flutter_tts: 一个 Flutter 文本转语音插件 (Swift, Kotlin)
- …
安装
1 开始使用
确保您的计算机上已安装 Flutter 和 Dart。您可以通过遵循 官方 Flutter 文档中的说明进行安装。
2 克隆此仓库
git clone https://github.com/olololoe110399/bedtime_stories.git
3 导航到项目目录
cd bedtime_stories
4 安装依赖项
make sync
用法
在模拟器或设备上运行应用程序
flutter run
应用程序应该会启动,您可以探索 Valorant 英雄。
测试
该项目包含单元测试、集成测试和 widget 测试,以确保代码质量和功能。要运行测试,请使用以下命令:
- 运行测试
flutter test
贡献
欢迎贡献!如果您发现任何错误或想添加新功能,请随时打开一个 issue 或提交一个 pull request。对于重大更改,请先打开一个 issue 讨论您想更改的内容。
请确保根据需要更新测试。
许可证
本项目根据 MIT 许可证 获得许可。





