弊社の 20%ルールを活用して 14:30〜18:00 の3.5時間という時間内で Swift を使用してひとつアプリを作る事になりました。
18:00 までの段階で出来たものを発表 & github で公開です!!!!
圧倒的プログラミングのためにレッドブルと八つ橋を補給する pic.twitter.com/F0h9FTHN3S
— みろなる@年内は節約生活 (@mironal) 2014, 10月 15
作ろうとしたもの
「どうよ?」 ってアプリを作ろうとしました。
機能としては
- ◯◯ってどうよ? という質問が作れる
- その質問に対して Good! or Bad の投票が出来る
- 1つの iPhone をその場にいる人に回して1人づつ投票してもらう
- 最後にその集計が見れる
という感じです。
出来たもの
一応の機能を実装したものは作れました。
https://github.com/covelline/Douyo
質問を入力する画面
投票をする画面
集計結果を見る画面
工夫した所
Swift を使ってアプリを一本作るのは初めてでしたのでとりあえず大変でしたが気を使ったところを書きます。
値が更新されると同時に再描画
didSet
を使用してこんな感じに書きました。 これが良い方法なのかは謎ですが、 UI の更新忘れは無くなりそう.
/// ViewController or View var positiveCount: Int = 0 { didSet { if let label = positiveCountLabel { label.text = "\(positiveCount)" } } }
Storyboard から ViewController のインスタンスを簡単に習得
1 ViewController, 1 Storyboard の方針をとっているので値の設定忘れが内容にコンビニエンスイニシャライザ的なものを extension で用意した.
extension DouyoViewController { class func instanceateFromStoryboardWithQuestion(question: String?) -> DouyoViewController { let sb = UIStoryboard(name: "DouyoStoryboard", bundle: nil) let vc: DouyoViewController = sb.instantiateInitialViewController() as DouyoViewController vc.question = question return vc } }
今後の課題
- lock の解除にパスワードを設定する
- 結果を保存
- 結果を Twitter とかに公開
- その他便利な機能...