小学一年生の冬休みの宿題で、算数の繰り上がり/繰り下がりのカードがある。
これを毎日やるのが宿題なのだけど、
- 親がカードが捲って
- 子供が答える
- 間違えていたら、後でもう一度やり直し。
という手順になっている。
2の「親が捲る」のが面倒なので、数を足す練習ぐらいならば「自分でできる」ほうが良かろう、と思って iPhone アプリを作ってみた。
例によって、プロトタイプの画面はひどくチープです。
そして、ロジックは、ばかばかしいほど簡単に。
#import "KidCalcViewController.h" @implementation KidCalcViewController - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } #pragma mark - View lifecycle int num1, num2, ans; void nextQuest() { num1 = rand() % 9 + 1; num2 = rand() % num1 + (10-num1); ans = num1 + num2; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. srand(time(NULL)); nextQuest(); labelCalc.text = [NSString stringWithFormat:@"%d + %d = ", num1, num2 ]; labelAns.text = [NSString stringWithFormat:@"%d", ans ]; labelAns.hidden = YES; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } else { return YES; } } -(IBAction)buttonCalcClick:(id)sender { labelAns.hidden = NO; } -(IBAction)buttonNextClick:(id)sender { nextQuest(); labelCalc.text = [NSString stringWithFormat:@"%d + %d = ", num1, num2 ]; labelAns.text = [NSString stringWithFormat:@"%d", ans ]; labelAns.hidden = YES; } @end
娘に見せて、まぁ評判が良かったら、画像なり色なりを付けてリリースすれば、この冬「相手をしなくてよいか」と画策したのだが、娘曰く
「自分でやって、自分で答えをみると、『ああ、そうか』だけで詰まらない」
「親とやりとりしているのが楽しい」
のだそうだ。
まぁ、そりゃそうだろうな。自分でやってみても「ひどく面白くなかった」ので。IT が埋められないもの(かな?)が其処にある、という話。
親としては、iPhone プログラミングをしている間は「楽しい」のだが、いざ使ってみると「詰まらない」という具合。製作者の楽しみは、利用者の楽しみとイコールではない。かつ、製作者の利便性と、利用者の利便性もイコールではないという話。
当然、少しでもイコールに近づけたいのが「アジャイルだ」と思いたい。