这周终于和女儿一起完成了她的第二个编程项目,一个简单的存钱罐APP。这次之所以选择这个APP主要有两个原因。第一,之前的游戏项目有点过于复杂,导致小布丁在后期兴趣下降。我希望做一个简单的APP让她从始至终都会感兴趣并参与其中。第二,我希望做一个她平时可以使用的APP,这样可以增加她的成就感从而增强她学习编程的积极性。
存钱罐APP的基本功能
这个项目主要是来模拟一个小朋友的存钱罐,有两个简单的核心功能,存入硬币和取出硬币。为了练习之前学过的分支语句,我还增加了一个选择硬币种类功能。
Coin或Food
当我们设计这个App时,小布丁不喜欢在APP中显示Coin和Money的字样。因为她认为Piggy不应该吃“Coin”,而是应该吃“Food”。这是为什么这个APP叫做“Hungry Piggy”的原因。
我很喜欢这个idea。虽然我希望小布丁尽早学习管理自己的金钱,但平时我又不太愿意在她面前提钱,因为我不想让她过早地将注意力集中在钱上面。我觉得对于一个小朋友来说,与其让他/她每天来数自己有多少硬币,不如让他/她来数数小猪肚子里有多少食物。
编程练习
可能是之前几次的编程概念学习帮助小布丁对编程语句有了一些基本的理解,她很顺利地完成了这个项目中的编程任务。这次她主要实现了两个逻辑:
1. 针对存钱和取钱的两简单的负值运算
foodNumber = foodNumber + foodBox;
foodNumber = foodNumber - foodBox;
2. 根据食物的类型来更新UI和运算单位的分支判断
if (foodType.text == "BIG")
{
foodType.text = "MID";
foodBox = 0.1f;
}
else if (foodType.text == "MID")
{
foodType.text = "SMALL";
foodBox = 0.01f;
}
else if(foodType.text == "SMALL")
{
foodType.text = "BIG";
foodBox = 1.0f;
}
美工设计
这次美工上花了不少时间。一开始我计划主要关注于编程,用一个单色界面加两个Button就好了,不打算花时间来美化。结果小布丁觉得很丑,于是做了两天就没兴趣了。这也是为什么我之前开始练习画画。
这个项目有两个地方需要一些美工设计。一是APP的整体主题,小布丁很喜欢紫色,所以主题使用了渐变紫色调。二是APP的图标。小布丁设计了第一个版本,图标是一只绅士小猪,带着复古的单片眼镜,背上拖着一张印有女皇头像的钞票。经过反复协商,最后我们将其化简为一只存钱罐小猪,上面有一个下落的苹果。



Ship it!把项目做完
这段时间我一直在和小布丁强调我们的目标是要完成这个项目。我希望让她明白,在现实世界中完成比完美更重要。为此,我除了让她参与编程外,还让她时常充当项目经理(PM)的角色。比如告诉她,我今天有半个小时和她来做这个项目,并让她来决定我们应该去优先做什么,不去做什么。
为了最终让她理解什么才是完成项目,我还带着她做了一个简单的页面来介绍这个APP,并把它上传到了苹果的App Store上(还在等待App Review)。我希望她能够体会到,对于工程项目来说,做出一个Prototype只是第一步,而把这个Prototype变成用户手中的产品,还需要花费更多的时间和精力。
复盘思考
1. 我感觉小布丁开始对使用编程来解决问题有了一些基本的理解。这种通过找到一个她感兴趣的项目,将其分解成她可以上手的子问题,带着她针对每一个问题单独练习编程,最后再合起来完成项目的学习效果很好。
2. 我发现自己很Enjoy和小布丁讨论游戏APP的功能和设计。因为她的想法非常的天马行空,有很多新奇有趣的Idea。
3. 看小布丁打字太痛苦了。我打算在开始下一个项目前让她加紧练习一下盲打,这样可以大大加快编程练习的效率。
4. 虽然这次我练习画画对设计图标有些帮助,但感觉实际上用不到很专业的技能。我只需要一些基本的美工能力,可以实现出小布丁设计出的样式就好了。
小布丁上周的零花钱余额为£26.01,昨天刚用了自己的零花钱给我和小丸子买了圣诞礼物。现在她还有£17.01,很开心看到她在使用我们做的APP来Track她的零花钱。

留下评论