ばーちーぶろぐ

iOS関連の話をざっくりと。

iOSアプリ「スタバで呪文」の中身について

個人的にアプリをリリースしました。

iOSアプリ「スタバで呪文」

スタバで呪文 サポートページ


1日もかからずに、フードカテゴリ有料ランキング1位をとることが出来ました。

皆さん、ありがとうございます。

こっちの個人ブログでは、技術よりの話を書いていこうと思います。

今回、初めてIBやStoryboardを使って開発をしたので、素人感丸出しの作りになっているかも知れないのですが、公開します。

画面構成(Storyboard)

f:id:tochiba:20131123221628p:plain

少し見づらいかもしれませんが。。。

TabBarControllerに3つのNavigationControllerがセットされていて、最終的には共通のViewControllerに遷移する流れになっています。

たまにトリッキー?な遷移もありまして、ハッシュタグから画像を取得出来た場合、その画像をタップすると、その人のTweetをWebViewで表示することが出来ます。

また、通知から起動した場合は、3つのNavigationControllerの末端であるカスタム画面をいきなり起動する仕様なっています。

その時のコードがこちら

ViewControllerのIdentifierを指定して起動。
最初のViewControllerでフラグ判定を行い、次の画面に遷移させています。

- (void)viewWillAppear:(BOOL)animated {
    SCOAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    if (appDelegate.notified == 1) {
        //segueを使って遷移させる
        [self performSegueWithIdentifier:LC_SEGUE_ID_ORDER sender:self];
    }    
}

iOS7の新機能について

今回、スタバで呪文はDeployment TargetをiOS7にしました。

Deployment Targetとは、アプリが動作する最低のOSバージョンのことです。

Deployment TargetをiOS7にした理由は、iOS7の機能に特化したかったからです。

そこで、今回はスタバで呪文で使っているiOS7の機能の実装方法について紹介したいと思います。

UIKit Dynamics

この動きが表現出来ます。

こんな風に、ボタンをタップすると崩れてしまうUIが簡単に作れちゃいます。
コードはこんな感じ

ようは、

タップしたら、決定ボタン、カスタムボタン、広告以外のview

つまり、self.view.subviewをアニメーション登録して、特性を加えたら、いい感じになった!
ということです。
とりあえず、試してみたいなと思って入れてみました。


参考資料

魅せるUIの作り方 | iOS 7エンジニア勉強会


Speech Synthesis

こっちはしゃべります。

このアプリの肝である、呪文の読み上げ機能です。
タップすると、呪文の読み上げが再生されます。

コードはこんな感じ

読み上げの設定を設定するだけで簡単に読み上げてくれる。
Delegateも沢山あったけど、このアプリだと細かい制御もいらないので、超簡単に実装してしまった。

一番大変で、時間をかけたのが、

気持ち悪い声にするためのチューニング

でした
力の入れどころ間違えてるな。。。

もう少しなにか出来そうな予感。


参考
AVSpeechSynthesizer による音声読み上げ


今回はこんな感じで!初ブログでした!