ペンギン村 Tech Blog

技術をこよなく愛するエンジニア集団が在住するペンギン村から、世界へ役立つ(かもしれない)技術情報を発信する技術系ブログです。某アラレちゃんが済む村とは一切関係ありません。んちゃ!

【SwiftPrettyPrint】クイックスタート・ガイド

SwiftPrettyPrint のクイックスタート・ガイド+応用テクニックを紹介する記事です。

それは何?

Swift 標準の printdump よりもきれいに出力するデバッグ支援ライブラリです。

github.com

以下に比較を載せます。

標準: print

標準: dump

SwiftPrettyPrint

ANSIカラーにも対応しているため、AppCode やターミナルでは色付きの出力も可能です。

クイックスタート

新規作成した Xcode プロジェクトを例に見ていきます。

1. プロジェクトを選択し、Package Dependencies タブから「+」ボタンをクリック。

2. パッケージ追加画面の右上の検索バーに https://github.com/YusukeHosonuma/SwiftPrettyPrint.git と入力し、右下の「Add Package」ボタンをクリック。

3. 追加したいターゲットをプルダウンで選択し、右下の「Add Package」ボタンをクリック。(後から別ターゲットへも追加できます)

4. プロジェクトの任意の Swift ソースに以下を追加。(新規で Debug.swift のようなものを作成しても、一時的な利用であればどこかの既存ソースに追加でも OK)

#if DEBUG // デバッグ時のみ有効
import SwiftPrettyPrint

typealias Debug = SwiftPrettyPrint.Pretty
#endif

5. あとは print と同じ感覚で Debug.prettyPrint で使用できる。

6. デバッグ時に LLDB から使用する際は頭に e をつける。

応用テクニック

比較的、多く利用されるであろう応用テクニックを紹介します。

prettyPrintDebug

デフォルトで型名は省略されますが、それらも出力する prettyPrintDebug も利用可能です。

label

コード中に print を仕込む、いわゆる ”Print デバッグ” では特定のラベルを付けたいケースもあります。

以下のように引数の頭に label: "xxx" で指定できます。

Debug.prettyPrint(label: "🍎", dict)

Xcode でも色付きで見たい

Xcode のコンソールは ANSI カラーをサポートしていないため、AppCode のように色付け出力を行うことはできません。

しかし、シミュレータで実行している場合は、以下にログファイルが出力されているので、ターミナルから以下のコマンドを実行することで、ログを監視することができます。

tail -F /tmp/SwiftPrettyPrint/output-colored.log

おわりに

そんなわけで、SwiftPrettyPrint のクイックスタート的な記事を書いてみました。

最近、OSS 活動にリソースが十分に避けておらず、SwiftPrettyPrint においてはドキュメント整備が最重要の課題になっていました。

そんな状態がずっと続いていたのですが、先日冗談で以下のようなツイートをしたら、ありがたいことにいくらかスターを頂けました。

これは少しでも期待に答えねばならないと、取り急ぎ本記事を執筆した次第です。

この OSS が皆さんの日々の開発のお役に立てば幸いです。(開発者一同)