jiu_jitsu_para_todos

一个用 flutter 制作的柔术应用。

此存储库的目的是展示和记录我创建应用程序的首次体验

我接受任何建设性的批评或贡献。首先,我想说有些文件没有放在存储库中,因为它们包含敏感信息,然而,所有受限的代码都与 admob 或 Google Play 商店设置中的广告有关,但其中仍然包含了我构建应用程序所需的所有内容。

主屏幕

1

MVC 架构

注意:MVC 代表模型、视图和控制器,它是一种代码架构,将代码分为三个层

  • 用户交互层(视图)。
  • 数据操作层(模型)。
  • 控制层(控制器)。

整个应用程序都是使用 MVC 架构制作的,模型用于存储所有测验问题以及未来将在应用程序中使用的壁纸。我打算建立一个服务器来处理这些数据并提高应用程序的质量,但起初我想从本地存储开始,因为数据量不大,而且更容易上手。控制器负责模型和视图之间的数据控制,在测验中,它会随机打乱每个问题的顺序和选项。我还有一个控制器来处理广告和每个广告的 ID。视图是我应用程序的所有视觉部分,但在我的视图中间也包含了一些业务规则,这是我选择使用 Setstate 作为响应式组件的结果。我不认为这是一个坏事,但我确实希望将来学习如何以其他方式管理状态,并在应用程序中进行更改。

MVC 结构

mvc

单元测试

对我来说,做单元测试是一件新事物,虽然我一开始搞砸了很多,但我也很享受这个过程。我为测验做了单元测试,以检查它是否随机带来了正确的问题,以及另一个测试来查看壁纸控制器是否正确返回了路径。

要运行测试,只需使用 -> flutter test

test

声音

应用中的所有声音都是我在网站上自己制作的 -> Song Maker




以下是回答正确问题时声音的制作过程


right_answer




制作完声音后,我需要剪切并减小文件大小,我在网站上完成了 -> MP3cut



right_answer_edit




在此之后,我已经拥有 MP3 格式的声音,并且只需要在不损失质量的情况下进一步减小其大小以优化应用程序,这是在网站上完成的 -> MP3Smaller



som_right_answer_edit_size



这样,声音就轻了 79.95%,声音就准备好使用了,这个过程对应用程序中的所有声音都一样。


图片

所有应用程序图标均来自网站 -> Flaticon

像主图标这样的一些图标我需要使用 GIMP 来调整一些东西,还有白色和蓝色的条形图标。壁纸是从一些提供免费图片的网站(如 pixabay、unsplash 等)获取的。

我还通过在网站上减小其尺寸来优化每张图片 -> Imagemaller



imagem_edit_size



在此截图中,图片尺寸减小了 75.03%,质量没有损失,这对于优化非常有帮助,所有图片都经过了此过程。


清除媒体

最后,为了使用每张图片或声音,我删除了文件中的所有元数据以进行优化,即使只是多一点点。
claenfiles

GitHub

https://github.com/viniciusddrft/Jiu-jitsu_para_todos