Swift アプリ一本勝負 [20% Project!!!!!][山口] #Swift

弊社の 20%ルールを活用して 14:30〜18:00 の3.5時間という時間内で Swift を使用してひとつアプリを作る事になりました。

18:00 までの段階で出来たものを発表 & github で公開です!!!!

亀山の方

作ろうとしたもの

「どうよ?」 ってアプリを作ろうとしました。

機能としては

  • ◯◯ってどうよ? という質問が作れる
  • その質問に対して Good! or Bad の投票が出来る
  • 1つの iPhone をその場にいる人に回して1人づつ投票してもらう
  • 最後にその集計が見れる

という感じです。

出来たもの

一応の機能を実装したものは作れました。

https://github.com/covelline/Douyo

質問を入力する画面

iOS Simulator Screen Shot 2014.10.15 18.06.38

投票をする画面

iOS Simulator Screen Shot 2014.10.15 18.06.41

集計結果を見る画面

iOS Simulator Screen Shot 2014.10.15 18.06.48

工夫した所

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 とかに公開
  • その他便利な機能...