作者说
大家好,我是本期作者柴玉泽!今天就和大家分享一下我之前做项目的经历和经验,当然每个人都有每个人的思路,所做出来的东西也必定不同(我甚至喜欢从一串代码的中间做起),我在这里分享肯定也不是最好的完成方式,就仅供参考吧。
Part1 学习助手
它当然不可能帮你写完今天的作业。
这大概是我最开(丢)始(人)的作品了,它就像看上去的那么简单,一个精确到分的计时器,时间到了会提示、会震动,一个记事本,一个会加减乘除平方开方和sin、cos、tan的计算器,还有一个可以绘制函数的函数助手。
大概就是这样。
Part 2 互动平台
与人斗其乐无穷,但和空气斗智斗勇也是个不错的选择。
千万不要做问卷类型的app!
千万不要做问卷类型的app!
千万不要做问卷类型的app!
做问卷类型的app是真的累人,光是输入问卷就要费好长的时间。而且与其他类型的app相比,问卷类型的app是最没有成就感的。虽然做这类app的目的就是为了帮助用户节省回答问卷填写和自我算分的时间,但你辛苦了好久做出来的东西人家十几分钟就可以做完然后再也不会点进去的感觉还是让人很难受的。
以我这个为例子,卡特尔16种人格测试有接近两百道题目,十几种不同的得分,每道题的得分类型没有规律,得分多少没有规律,在保证了答题者不会发现其中的规律的同时,也保证了我在输入的时候完全没有偷懒的空间,只能一个一个的打。
这就是一道题的代码,其中数字项是得分,E是得分类型,第2,3,4项的第一项是答案选择的文本。
输入问卷大概使用了3000个代码块,而回答结束后得分的计算也差不多是这个数字。整个卡特尔16种人格测试大概花了我两个的时间,而使用者做完这套问卷大概需要
十五分钟。
另一个部分就是一个平台的互动部分,注册登录后就可以在上面发言或者回复,主要也是运用的是网络数据的整合与处理能力,就不再过多叙述了。
值得一提的是,在我做这个项目的时候,出现了项目不能打包成apk的问题。起初以为是某个地方的代码出现了错误,但是并没有检查出来。为此我项目一度暂停了两个月。
两个月后的某一天,我进行了这么一个检查。
删除问卷,保留得分计算,打包成功。
删除得分计算,保留问卷,打包成功。
删除问卷的一半,保留得分计算,打包不成功。
这哪是出现问题了啊,这不会是代码太多不能导出了吧。于是我将得分计算迁移到新建的一个屏幕,用本地数据库的方式进行数据迁移,隔屏运算。
导出成功。
Part3 想说的一些什么
如果不说的话字数看起来真的太少了
(编辑:what?哪里少了?1891个字哪里少了!)
关于part2中列表的使用
大家可能会注意到,我在问卷的写入中使用了列表(问卷总体)套列表(单项题目)套列表(回答文本和计算元素)套列表(得分类型和得分)的方式,而没有使用简单的一个列表把所有的元素放进去。
后者方式看起来的样子
的确后者所需要的代码块没有我这种这么多,使用起来也不会太麻烦(比如说第121题的第一个选项得分就可以写作列表的(121*10+4)项),但是这样子做的好处一个是提供了一个单元化的思想,而且它更加容易维护。当面对数量比较大而且种类复杂的数据时,将它们分门别类的放好是一个很好的选择,就像整理你一个学期的试卷一样。也许你的手机的确可以在一瞬间完成,但你不行。在appinventor2这种可视化编程的环境下,当出现错误时,寻找一个列表的第121项的第2项的第2项的第2项肯定是比寻找一个列表的第1214项要令人愉快得多的。
寻找第1214项
寻找第121项的第2项的第2项的第2项(奈斯!)
总而言之,在做项目时,尤其是项目比较大的时候,你不但要把需求做出来,还要留给自己能够更改它的余地。项目有bug十之八九,没bug的项目要增加需求十之八九。除非有人拿枪指着你,或者你下一分钟就要交了,不然我还是建议你多花一点时间将自己的东西摆放整齐。
关于组件的批量处理(任意组件的正确食用方式)
编程界面右边最下就是有十分冷门的“任意组件”,其实这是一个很不错的东西,只不过一般用不着罢了....
一般的要在屏幕上显示不定数量的数据的时候,为了整齐美观,一般会使用一个标签显示一个值的方式。但是如果显示的数值数量不定的时候,就会出现后面的标签没有数值显示的情况。这时就需要用很多的判断结构来判断数据的数量以保证不会出现请求列表之外的项数,但是如果我们这样子
很美观,很舒服,很简单。
Part4 结尾
的确appinventor2是一个并不怎么高端的编程平台,但是基础的东西都还是有的,所以这并不影响我们在上面进行各种各样的花式操作。所以有梦想的各位要抱着一种我上我也行的心态,大胆地开始自己的策划,万一成功了呢。
文稿:柴玉泽
编辑:张芷菲
审校:张芷菲 马涛
领取专属 10元无门槛券
私享最新 技术干货