SwiftPrettyPrint のクイックスタート・ガイド+応用テクニックを紹介する記事です。
それは何?
Swift 標準の print
や dump
よりもきれいに出力するデバッグ支援ライブラリです。
以下に比較を載せます。
標準: 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 においてはドキュメント整備が最重要の課題になっていました。
そんな状態がずっと続いていたのですが、先日冗談で以下のようなツイートをしたら、ありがたいことにいくらかスターを頂けました。
GitHub Copilot が無料じゃなかったので、皆さん SwiftPrettyPrint にもっと愛のスターを恵んであげて下さい。https://t.co/CEE87phkON
— トビ (@tobi462) 2022年6月22日
同情するならスターくれ。(これが言いたかっただけだろ
これは少しでも期待に答えねばならないと、取り急ぎ本記事を執筆した次第です。
この OSS が皆さんの日々の開発のお役に立てば幸いです。(開発者一同)