ちょっと話題の記事

Storyboard Identifier をコード補完するLin-Xcode5ライクなプラグインをつくりました

2014.03.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

StoryboardHelper !

ヤフー vs クラスメソッド「iOS 炎の7番勝負」では負けてしまいましたが、みなさんが「いいね!」してくれた気持ちに応えるべく、StoryboardHelper を公開します!

ソースコードで Storyboard に定義される View Controller や Segue の identifier をコード補完するプラグインを作成しました。その名も StoryboardHelper !(StoryboardIdentifierHelperじゃなくなりましたw)

GitHub hirai-yuki/StoryboardHelper
ライセンス MIT

storyboardidentifier-vc-1

ソースコードや動作は、全俺が感動したプラグイン Lin-Xcode5 を参考に作成しました。

StoryboardHelper の機能がそのまま Lin-Xcode5 インスパイアであることや、ソースコードが非常に綺麗に書かれていること、とくにUI周りが秀逸であることなど本当に参考になりました。

このプラグインの作成にあたり、Lin-Xcode5 のソースコードを見るまでこのプラグインが日本人の方が作成されていることを全然知りませんでしたw

Katsuma Tanaka@questbeatさん、素敵なソースコード、そしてこのプラグインの公開につきまして快く承諾していただき、本当にありがとうございます!

この方が書かれているブログ a.out も合わせてご一読ください!

StoryboardHelper の機能

StoryboardHelper は NSLocalizedString ではなく、以下のメソッドにカーソルがあるときに .storyboard ファイルで定義される identifier をポップアップ表示します。

  • - (id)instantiateViewControllerWithIdentifier:@"<View Controllerのidentifier>";
  • - (void)performSegueWithIdentifier:@"<Segueのidentifier>" sender:(id)sender
  • [segue.identifier isEqualToString:@"<Segueのidentifier>"]

- instantiateViewControllerWithIdentifier: にカーソルがある場合は、View Controller の identifier がポップアップ表示されます。

storyboardidentifier-vc-1

- performSegueWithIdentifier:sender: メソッドや [segue.identifier isEqualToString:@"<Segueのidentifier>"] にカーソルがある場合は、Segue の identifier がポップアップ表示されます。

storyboardidentifier-segue-1

storyboardidentifier-segue-2

Lin-Xcode5 同様、設定画面より有効・無効を設定できます。

storyboardidentifier-1-2

ポップアップ表示から identifier を編集したりはできませんw

要望等ありましたら、お気軽にご連絡ください(期待に応えられるかわかりませんが・・・)。

今後の課題としては、

  • 上述した編集機能
  • 指定に誤りがあった場合にワーニングを出す or 静的チェック機能
  • Storyboard から ViewController のクラスファイルをガッツリ作成する

ってのを余力があるときにやりたいと思ってます。

みなさん是非使ってみてください!