注意:iOS音乐理论库

几年前,我写了一个应用程序来帮助我学习如何弹奏低音吉他。 您可以在此较早的帖子中找到有关它的更多信息。 最近,我的一个朋友叫凯克·潘托西·达玛托(Kaique Pantosi D’amato)决定以几乎相同的野心开始一个新项目,以帮助他学习吉他。 在这个过程中,我受到了启发,并决定恢复我以前的项目,但是这次变成了一个快速的开源库。 以图书馆的形式发布它可能具有使具有类似想法的其他人受益的潜力,并吸引合作者改进该项目。 在本文中,我想谈谈创建此音乐理论库的一些挑战,以及单元测试的重要性。

初始要求

从一开始,我希望该库同时支持Cocoapods和Carthage。 为了做到这一点,我使用了iOS Cookie Cutter项目模板,该模板使过程更简单,您可以在我的另一篇文章中找到它的工作方式。

Notes库将需要具有以下功能,以支持我朋友的应用程序和我的旧应用程序( 如果我决定将其恢复为现实* ):

  • 笔记
  • 和弦
  • 声调和声
  • 谐音当量
  • 测试,测试和更多测试……

在这个发展过程中,测试必不可少的原因是音乐理论有许多细微的差别和变化。 默认情况下,测试在所有项目中都是至关重要的,它们表明了代码的专业程度。 除此之外,在变体和测试条件的数量如此之大以至于手动测试根本不是可选的情况下,它们甚至更为重要。

只是为了提供一些背景信息,这是我测试主要规模的文件。 每个密钥(包括意外事故)对于每个键都有十二种不同的变体。