LoginSignup
27
29

More than 5 years have passed since last update.

iOSアプリ開発用のアプリ内デバッガ作った

Last updated at Posted at 2016-05-30

作ったもの

CocoaPods

Screenshot.gif

@noppefoxwolf のコードを結構参考にして作りました。

用途

iOSアプリを作っていて、現在のUserDefaultsの状態見たり、接続先のサーバ変えたり、DB内のデータみたりしたいこと、あると思います。
そんな時に使いやすいデバッガ作りました。
デバッガと言っても、要するにいつでも押せてどこにでも動かせる、デバッガを開くボタンを簡単に作るやつです。
かつ、その中に表示する物をプラグインで作れるようにしました。

使い方

Exampleと、Recommended Pluginsを見てもらうのが早いと思います。

初期化

AppDelegateで、シングルトンに対して初期化メソッド呼ぶだけです。
引数に使いたいデバッガのクラスを渡します。

ちなみに他の引数では、初期化位置の指定、メニューのソートの有無、デバッガのフッターに出すviewの指定が出来ます。

AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  DebugHead.sharedInstance.prepare(menuClasses: [DebugMenuExit.self, DebugMenuHideDebugHead.self, DebugMenuFooViewController.self])
    return true
}

プラグインの作り方

プロトコルに準拠したクラスを作って初期化メソッドに渡すだけです。

DebugMenu
public class DebugMenuFoo: DebugMenu {
  // tableViewで表示される名前。
  public static let debugMenuTitle = "Title"
  // そのメニューの危険性。メニューの表示色がかわる。sortがtrueだと危険性順にソートされる。
  public static let debugMenuDangerLevel = DebugMenuDangerLevel.[None or Low or High or Extreme] 
  // メニューのところのアクセサリー。
  public static let debugMenuAccessoryType = UITableViewCellAccessoryType.None
  // メニューが選択された時の動作。UIViewControllerのインスタンスを返すと、それが表示される。
  public static func debugMenuSelected(debugHead: UIView, debugMenuTableViewController: UITableViewController) -> UIViewController? {
    // Do something
    return nil
  }
}

以上!
ぜひプラグイン作って公開して下さい!(CoreDataブラウザとかRealmブラウザとか…ほしい)

27
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
29